Create hand gesture bus
create_hand_gesture_busCreates a component that transforms hand landmarks into debounced gesture channels for controlling palm holograms, lasers, audio, and other hand-reactive visuals in TouchDesigner.
Instructions
Create a TouchDesigner Base COMP that converts hand landmarks into a stable gesture-control Null CHOP for palm holograms, lasers, audio controls, and other hand-reactive visuals. It creates helper nodes under parent_path, returns the component/output paths and created-node report, and exposes debounced channels such as palm_open, float_x/y, palm_size, pinch_active, pinch_power, scale_target, light_gain, and audio_level. Use source='synthetic' for camera-free previews, source='mediapipe' to build/use setup_hand_tracking, or source='existing_chop' with hand_chop_path when a hand landmark CHOP already exists.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| mirror | No | Mirror X coordinates for front-facing camera interaction and synthetic previews. | |
| source | No | Input source: synthetic preview data, a new MediaPipe adapter, or an existing hand CHOP. | synthetic |
| tox_path | No | Optional MediaPipe adapter .tox path passed through when source='mediapipe'. | |
| comp_name | No | Name for the created gesture-bus Base COMP under parent_path. | hand_gesture_bus |
| max_hands | No | Number of hands to track or synthesize; the gesture bus supports one or two hands. | |
| smoothing | No | Slow smoothing factor for stable palm/float channels; higher values move more slowly. | |
| parent_path | No | Parent COMP where the gesture-bus component and helper nodes are created. | /project1 |
| adapter_name | No | Name for the setup_hand_tracking adapter when source='mediapipe'. | mp_hand_adapter |
| hold_seconds | No | Seconds a disappearing/open palm is held before channels fall back. | |
| pinch_radius | No | Palm-local radius around the pinch point used to estimate pinch_power. | |
| fast_smoothing | No | Fast smoothing factor for responsive pinch/power channels; higher values move more slowly. | |
| hand_chop_path | No | Required only when source='existing_chop'; path to a CHOP with hand landmark channels. | |
| expose_controls | No | Create custom parameters on the component for tuning smoothing, pinch, and lock behavior. | |
| pinch_open_dist | No | Thumb-index distance at or above which a pinch opens; must be greater than pinch_close_dist. | |
| pinch_threshold | No | Normalized pinch_power threshold used to expose binary pinch_active channels. | |
| active_hand_lock | No | Keep the first active hand as the control hand until it is lost, reducing hand switching. | |
| coordinate_space | No | Coordinate family expected from the hand source: normalized image space or world space. | world |
| pinch_close_dist | No | Thumb-index distance at or below which a pinch closes; must be less than pinch_open_dist. | |
| pinch_arm_seconds | No | Seconds pinch_active must remain close before it is considered armed. | |
| pinch_radius_scale | No | Multiplier applied to pinch_radius when converting distance into pinch_power. |