Thermal State — tdlidar_thermal

Drop TouchDesigner’s render load before the phone overheats and silently throttles your frame rate.

Category: Device · Tier: Free · Needs: any iPhone (no special hardware)

What it does

Streams the phone’s thermal state as a single number from 0 (cool) to 3 (critical). iOS quietly slows the camera and CPU as the device heats up, which sandbags your sensor rates without warning. By watching this channel you can pre-emptively degrade quality in TD — fewer instances, lower-res TOPs — so the show stays smooth instead of stuttering when the phone finally throttles.

OSC in

| address | type | range | rate | |—|—|—|—| | /tdlidar/device/thermal | float | 0 nominal, 1 fair, 2 serious, 3 critical | on change + 2 Hz |

Outputs

  • out1 (CHOP) — one channel: tdlidar/device/thermal (0–3).

Parameters

| par | default | what it does | |—|—|—| | OSC Port | 9000 | UDP port to listen on (match the app) |

Quick start (beginner)

  1. Enable the device sensors in the app (thermal rides the device bundle).
  2. Drop tdlidar_thermal.
  3. Watch out1: it sits at 0 when the phone is cool and climbs as it warms during a long session.
  4. Wire it into a Text TOP so you can literally see “Thermal: 2” on a monitoring page.

Advanced patterns

  • Auto-degrade ladder (the main use): run out1 through a chain of Logic CHOP thresholds — ≥1, ≥2, ≥3 — each output enabling a cheaper variant of your scene. At 1 drop bloom, at 2 halve instance count, at 3 cut to a static fallback. Switch between variants with a Switch TOP/SOP driven by those logic channels.
  • Hysteresis: thermal can hover on a boundary and chatter. Put a Lag CHOP (slow rise, slow fall) before the Logic CHOP, or add a Trigger CHOP with separate on/off thresholds so you don’t flap between quality tiers.
  • One master “quality” value: Math/Range CHOP map 0–3 → 1.0–0.4 to get a single multiplier you can pipe into resolution, particle count, and FFT band gains at once.
  • Combine with Low Power: OR this with tdlidar_lowpower so either an overheating or a power-saving phone drops you a tier.

Gotchas

  • The value is a float but only ever lands on 0/1/2/3 — always compare with Logic CHOP, never test for exact equality after doing arithmetic on it.
  • Updates are coarse (on-change + 2 Hz). It is a trend signal, not a per-frame value; don’t try to animate anything fast from it.
  • Thermal lags reality — by the time it reads 2, the phone has already started slowing the camera. Build your degrade ladder to react at 1, not 3.