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)
- In the app, enable Hands and show one hand to the rear camera.
- Drop the Gesture op — internally an OSC In CHOP → Select CHOP →
out1carrying the four gesture channels. - Make a fist: the
fistchannel jumps to 1, the rest read 0. Open your hand andopentakes over. - 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
…/countif that matters.