Skip to main content
Glama

Create Kinect wall harp

create_kinect_wall_harp

Build a projected wall harp with Kinect depth sensing: hand entry triggers plucked tones and vibrating string visuals, with synthetic fallback for offline use.

Instructions

Build a synthetic-safe Kinect v2 / FreenectTD projected wall harp in an isolated Base COMP. The network can create a FreenectTOP depth path when explicitly enabled, listen to an external OSC Kinect bridge with source='osc_kinect', or build a synthetic fallback. It extracts left/right hand centroids, divides the projection into configurable musical zones, triggers short electronic plucks on zone entry, renders a denser vibrating curtain of projected strings, and exposes depth/mask/hands/audio plus bridge-status diagnostics. If FreenectTD or Kinect hardware is unavailable, the tool returns warnings instead of throwing, so the visual/audio/trigger chain can still be tested offline.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
glowNoVisual glow multiplier for active strings.
nameNoName for the generated Base COMP under parent_path.kinect_wall_harp
decayNoElectronic pluck decay in seconds.
sourceNoInput source. 'freenect' tries the FreenectTD FreenectTOP Kinect v2 path; 'synthetic' builds a device-free wall-touch simulator; 'osc_kinect' listens for normalized Kinect hand points from an external OSC bridge.freenect
crop_topNo
osc_portNoUDP port for OSC Kinect hand input when source='osc_kinect'.
crop_leftNo
hit_colorNoTouched string color as #RRGGBB.#FFB000
input_topNoRaw normalized Kinect Y that maps to the projector's top edge.
smoothingNoHand centroid smoothing amount used by the tracking Script CHOP.
base_colorNoIdle projected string color as #RRGGBB.#050505
brightnessNoVery subtle harmonic color for the generated sine pluck tone.
crop_rightNo
input_leftNoRaw normalized Kinect X that maps to the projector's left edge.
reverb_mixNoWet reverb mix for the internal pluck synth.
show_debugNoWhen true, the visual Script TOP draws hand dots and zone guides.
cooldown_msNoPer-string retrigger guard in milliseconds.
crop_bottomNo
frequenciesNoPluck frequencies for the musical trigger zones.
input_rightNoRaw normalized Kinect X that maps to the projector's right edge.
parent_pathNoParent COMP path where the isolated kinect_wall_harp Base COMP is created./project1
sensitivityNoBlob threshold / cleanup aggressiveness for the wall-touch mask.
audio_deviceNoOptional Audio Device Out device name. Leave empty to keep TouchDesigner's default device.
input_bottomNoRaw normalized Kinect Y that maps to the projector's bottom edge.
output_widthNoWidth for generated debug and projected output TOPs.
reverb_decayNoFeedback decay for the internal algorithmic reverb.
string_countNoNumber of musical trigger zones across the projected wall harp.
master_volumeNoOverall gain for the internal pluck Script CHOP.
output_heightNoHeight for generated debug and projected output TOPs.
curtain_followNoHow strongly nearby visual lines bend around tracked wall-touch hands.
curtain_spreadNoHow many neighboring visual lines share vibration from each musical zone.
depth_polarityNoWhich side of the wall-depth band should count as touch candidates.near
input_mirror_xNoMirror normalized hand X after OSC input, before projector-space calibration.
reverb_dampingNoHigh-frequency damping for the internal algorithmic reverb.
expose_controlsNoExpose calibration, harp, audio, and visual controls on the generated COMP.
touch_thicknessNoAccepted depth band around wall_depth_center.
vibration_decayNoVisual vibration decay in seconds.
background_levelNoNeutral projected background brightness; 0.0 leaves the wall unlit behind the laser lines.
vibration_amountNoMaximum horizontal string vibration in pixels.
activate_freenectNoSafety gate for actually creating/activating FreenectTOP. Default false because FreenectTD Kinect v2 initialization is unstable on the validated macOS setup; leave false for crash-safe synthetic fallback.
audio_sample_rateNoScript CHOP audio sample rate. Set to 192000 when using UMC202HD at 192k.
visual_line_countNoNumber of visible projected laser lines. Can exceed string_count for curtain behavior.
wall_depth_centerNoNormalized depth value representing the calibrated wall/touch plane.
bridge_status_jsonNoJSON status path written by scripts/kinect-wall-harp-bridge.mjs --status-json and read by the generated bridge_status DAT._workspace/kinect-wall-harp/bridge-status.json
calibration_hold_msNoMilliseconds a hand must remain stable on a calibration target before auto-capture.
fallback_to_syntheticNoWhen true, missing FreenectTD/Kinect hardware still creates a playable synthetic fallback with warnings.
deactivate_existing_freenectNoDeactivate existing FreenectTOP nodes under parent_path before starting the new Kinect source. Kinect v2 is a single-device path, so this avoids multiple active FreenectTD nodes competing for the same sensor.
Behavior5/5

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

The description adds significant behavioral context beyond annotations: it explains the tool's ability to create FreenectTOP when enabled, extract hand centroids, divide into musical zones, trigger plucks, render curtain visuals, and expose diagnostics. It also warns about hardware unavailability and fallback behavior, which is not covered by annotations.

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

Conciseness4/5

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

The description is relatively long but well-structured, starting with the main purpose and then detailing features. While every sentence adds useful information, it could be condensed slightly without losing meaning.

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

Completeness4/5

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

Given the tool's complexity (47 parameters, no output schema), the description covers the tool's behavior, input sources, fallback mechanism, and diagnostics adequately. However, it does not explicitly describe the output of the tool (e.g., what the generated Base COMP contains), which is a minor gap.

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

Parameters4/5

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

With 91% schema description coverage, the schema already provides good parameter explanations. The description adds value by explaining the purpose of parameters like 'activate_freenect' regarding macOS instability and 'fallback_to_synthetic' for safety. This slightly exceeds the baseline of 3.

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 explicitly states the tool builds a 'synthetic-safe Kinect v2 / FreenectTD projected wall harp in an isolated Base COMP', specifying the verb 'build', the resource 'wall harp', and key details about source options. It clearly distinguishes this from sibling creation tools by its unique functionality.

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 advises when the tool can be used offline via synthetic fallback and mentions alternatives for input sources (freenect, synthetic, osc_kinect). It doesn't explicitly state when not to use it, but the context is clear for this specialized tool.

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