Gesture — tdlidar_gesture

Hold up an open hand, a fist, a peace sign or a point and snap between presets, scenes or states.

Category: Camera & Vision · Tier: Free · Needs: rear camera (hand-derived; no LiDAR required)

What it does

Recognizes four static hand shapes — open hand, fist, peace sign and point — and reports each as an on/off flag. Show the shape to the rear camera and its channel reads 1; drop the shape and it reads 0. These are discrete switches: perfect for jumping between presets, arming a mode, or flipping a layer without touching anything.

OSC in

address type range rate
/tdlidar/gesture/open float 0/1 per frame
/tdlidar/gesture/fist float 0/1 per frame
/tdlidar/gesture/peace float 0/1 per frame
/tdlidar/gesture/point float 0/1 per frame

The four are one-hot-ish — normally only one reads 1 at a time, briefly none during a transition.

Outputs

out1 (CHOP) — four channels: tdlidar/gesture/open, …/fist, …/peace, …/point. 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. In the app, enable Hands and show one hand to the rear camera.
  2. Drop the Gesture op — internally an OSC In CHOP → Select CHOP → out1 carrying the four gesture channels.
  3. Make a fist: the fist channel jumps to 1, the rest read 0. Open your hand and open takes over.
  4. Wire one channel (say fist) into a Switch TOP index or an op’s Activate toggle to flip a state with that shape.

Advanced patterns

  • Preset selector: the four channels are a ready-made one-hot. Use a Select CHOP ordering them and an Index/Trigger to convert “which gesture” into a single 0–3 index that drives a Switch TOP between four looks.
  • Clean one-shots: feed a channel through a Trigger CHOP so holding a fist fires exactly one bang on entry (advance a slide, reset a sim) instead of a held 1.
  • De-bounce flicker: at gesture boundaries the flags can flicker. A short Lag CHOP + threshold, or a Trigger with a small Re-Trigger Delay, stops a wobbly transition from double-firing.
  • Combine with Pinch: use Gesture to pick which parameter is live and Pinch as the continuous fader for it — gesture selects, pinch adjusts.

Gotchas

  • These are held states, not momentary pulses. A channel stays at 1 the whole time you hold the shape. If you want a single event, pass it through a Trigger CHOP rather than reading the raw 1.
  • Transitions briefly read all-zero. Moving from one shape to another can leave a frame or two where nothing is 1 — don’t treat “no gesture” as its own command without a small debounce.
  • First hand only, same as Pinch. With two hands up it follows whichever the app classifies first.
  • Channels go stale (hold last value) when no hand is detected; gate on the Hand op’s …/count if that matters.