Apple Watch — tdlidar_watch

Make visuals pulse to a live heartbeat, or use the Digital Crown as a fader — the wearer becomes the controller.

Category: External · Tier: Free · Needs: Apple Watch (watchOS 10+) running the companion TDLiDAR Watch app, paired to the phone

What it does

Bridges sensor data from a paired Apple Watch into TouchDesigner: heart rate, the watch’s own accelerometer and rotation, and the Digital Crown position. The headline is heart rate — a real, live BPM you can map straight onto colour, scale or tempo so the visuals breathe with the performer (or an audience member). The accel/rotation channels give wrist movement, and the Crown is a precise physical knob on the wearer’s arm. Everything routes through the phone, so it lands on the same /tdlidar/… OSC stream as every other sensor.

OSC in

address type range rate
/tdlidar/motion/watch/* float heart rate, accel, rotation, Digital Crown watch rate

The watch publishes a bundle under /tdlidar/motion/watch/… (e.g. heart rate, accel x/y/z, rotation, crown). The op grabs /tdlidar/motion/watch/* generically; check out1’s channel list to see exactly what the current Watch app emits.

Outputs

out1 (CHOP) — every /tdlidar/motion/watch/* channel, named after its address without the leading slash (e.g. tdlidar/motion/watch/…). The node tile previews out1.

Parameters

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

Quick start (beginner)

  1. Install the TDLiDAR Watch app on a paired Apple Watch, open it, and enable the Watch bridge in the iPhone app.
  2. Drop the Apple Watch op. Within a few seconds the heart-rate channel under out1 settles on a BPM.
  3. Pipe the heart-rate channel through a Math/Range CHOP (e.g. 50–160 BPM → 0–1) and export that onto an emission rate, a hue, or a pulse scale.
  4. Twist the Digital Crown and watch its channel sweep — export it as a fader onto any parameter.

Advanced patterns

  • Heartbeat pulse: range-map BPM to a beat period, drive an LFO CHOP or Beat CHOP so the scene actually throbs once per beat — far more visceral than mapping BPM to a static value. A slow Lag CHOP keeps the BPM number from jumping between readings.
  • Crown as a precision fader: the Crown is smooth and absolute — export it straight to a parameter, or Slope CHOP it for a relative jog wheel. Pair with Range CHOP to scope it to a useful span.
  • Wrist gestures: Slope/Trigger CHOP on the watch accel detects a flick or a raise-to-trigger, freeing a hand that’s holding an instrument.
  • Biofeedback mapping: combine heart rate with the phone’s Audio RMS so the show responds to both the music and the performer’s exertion.

Gotchas

  • Requires the companion Watch app actively running — without it the /tdlidar/motion/watch/* channels never arrive. A backgrounded or sleeping watch app stops the stream.
  • Heart rate updates slowly (every few seconds, not per-frame) and can briefly read 0 while the optical sensor re-locks — Lag it and gate out the 0s with a Logic CHOP so a dropout doesn’t black out your mapping.
  • Watch → phone → TD adds a little latency; treat watch channels as expressive trend signals, not frame-tight triggers.
  • These channels live under the Motion bundle (/tdlidar/motion/watch/…), not a /tdlidar/watch/… path — match the address exactly.