Skip to main content
Glama

Create hand gesture bus

create_hand_gesture_bus

Creates 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

TableJSON Schema
NameRequiredDescriptionDefault
mirrorNoMirror X coordinates for front-facing camera interaction and synthetic previews.
sourceNoInput source: synthetic preview data, a new MediaPipe adapter, or an existing hand CHOP.synthetic
tox_pathNoOptional MediaPipe adapter .tox path passed through when source='mediapipe'.
comp_nameNoName for the created gesture-bus Base COMP under parent_path.hand_gesture_bus
max_handsNoNumber of hands to track or synthesize; the gesture bus supports one or two hands.
smoothingNoSlow smoothing factor for stable palm/float channels; higher values move more slowly.
parent_pathNoParent COMP where the gesture-bus component and helper nodes are created./project1
adapter_nameNoName for the setup_hand_tracking adapter when source='mediapipe'.mp_hand_adapter
hold_secondsNoSeconds a disappearing/open palm is held before channels fall back.
pinch_radiusNoPalm-local radius around the pinch point used to estimate pinch_power.
fast_smoothingNoFast smoothing factor for responsive pinch/power channels; higher values move more slowly.
hand_chop_pathNoRequired only when source='existing_chop'; path to a CHOP with hand landmark channels.
expose_controlsNoCreate custom parameters on the component for tuning smoothing, pinch, and lock behavior.
pinch_open_distNoThumb-index distance at or above which a pinch opens; must be greater than pinch_close_dist.
pinch_thresholdNoNormalized pinch_power threshold used to expose binary pinch_active channels.
active_hand_lockNoKeep the first active hand as the control hand until it is lost, reducing hand switching.
coordinate_spaceNoCoordinate family expected from the hand source: normalized image space or world space.world
pinch_close_distNoThumb-index distance at or below which a pinch closes; must be less than pinch_open_dist.
pinch_arm_secondsNoSeconds pinch_active must remain close before it is considered armed.
pinch_radius_scaleNoMultiplier applied to pinch_radius when converting distance into pinch_power.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses that it creates helper nodes under parent_path and returns component/output paths and a created-node report. It lists debounced channels. Annotations (readOnlyHint=false, openWorldHint=true) align, and no contradiction. Could mention if nodes can be overwritten.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise with three sentences, front-loading the main purpose, then detailing debounced channels and source options. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 20 parameters and no output schema, the description covers overall purpose and source options but lacks details on the return value format and behavior of the created component. This leaves gaps for an agent to fully understand the tool's output.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3. The description does not elaborate on individual parameters beyond the schema; it focuses on overall purpose and output channels, not adding significant parameter semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool creates a TouchDesigner Base COMP converting hand landmarks into stable gesture-control Null CHOP. It specifies the purpose for palm holograms, lasers, audio controls, etc., distinguishing it from many sibling create_* tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear guidance on when to use each source option (synthetic, mediapipe, existing_chop), suitable for different scenarios. However, it does not explicitly mention when not to use the tool or compare with sibling tools like create_hand_hologram.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Pantani/tdmcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server