Skip to main content
Glama

Create motion reactive

create_motion_reactive

Build a video-analysis chain that outputs motion energy and brightness as ready-to-bind reactive channels, letting parameters respond to movement or ambient light from camera, movie, or synthetic input.

Instructions

Build a video-analysis chain that exposes ready-to-bind reactive channels — overall brightness plus frame-to-frame motion energy — on a Null CHOP. The camera counterpart to extract_audio_features: bind any parameter to op('…/motion_reactive/features')['motion'] and it responds to movement in front of the camera, or ['brightness'] to ambient light. A Sensitivity knob scales both. Creates a new baseCOMP under parent_path holding the source, a downsized monochrome analysis chain, and a 'features' Null CHOP output. Source can be the live camera (may prompt for macOS permission), a movie file, an animated synthetic pattern (for testing without a camera), or an existing TOP. Optical flow is unavailable on macOS, so direction isn't exposed. Returns a summary plus a JSON block with the container path, created node paths, the features Null path, the channel names, exposed controls, any node errors, and warnings (no preview image — the output is a CHOP, not a TOP).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
sourceNoVideo source. 'camera' = live webcam/capture device (the real-world default; creating it may pop a one-time macOS camera-permission dialog — click Allow). 'file' = a movie file. 'synthetic' = an animated noise pattern, handy for testing without any device permission. 'existing_top' = analyze a TOP you already have.camera
parent_pathNoParent network where the motion-reactive container is created (default '/project1')./project1
expose_controlsNoWhen true (default), expose a live 'Sensitivity' knob (a gain over every feature channel).
movie_file_pathNoPath to a movie file to play as the source; used only when source='file'.
existing_top_pathNoPath of an existing TOP to analyze; used only when source='existing_top'.
analysis_resolutionNoThe video is downsized to this square resolution before analysis — small keeps it cheap (the reactive values barely change with size).
Behavior5/5

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

Despite annotations already flagging write/open-world behavior, the description adds substantial context beyond them: macOS camera-permission side effects, creation of a baseCOMP and child nodes under parent_path, the macOS optical-flow restriction, and the exact return shape (summary + JSON block). It also discloses that 'no preview image' is returned because the output is a CHOP, not a TOP. No contradiction with annotations.

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 long but every clause earns its place — purpose is front-loaded, then usage, then creation/behavior details, then return format. It is well-structured with no filler or repetition of schema content.

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

Completeness5/5

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

This is a complex creation tool with no output schema, yet the description fully covers return values (summary + JSON block with container path, node paths, channel names, controls, errors, warnings), side-effect behavior, platform caveats, and all source variants. The high complexity and absent output schema demand exactly this level of detail.

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%, and each parameter already has rich schema descriptions (source enum values, resolution tradeoff, conditional file paths). The description reinforces the Sensitivity knob context and the downsized analysis chain but does not add meaning beyond what the schema already provides, so the baseline of 3 applies.

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 opens with a specific verb+resource: 'Build a video-analysis chain that exposes ready-to-bind reactive channels — overall brightness plus frame-to-frame motion energy — on a Null CHOP.' It clearly differentiates from siblings by explicitly positioning itself as 'The camera counterpart to extract_audio_features' and by noting that optical flow is unavailable on macOS (distinguishing it from create_optical_flow).

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

Usage Guidelines5/5

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

Explicitly names the sibling alternative (extract_audio_features), explains the exact binding pattern to the output channels, and gives source-selection guidance — 'synthetic' is 'handy for testing without any device permission,' 'existing_top' analyzes an existing TOP, and camera may prompt for macOS permission. The macOS optical-flow limitation also clarifies when the tool should not be used.

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/lucasmaher-hash/touch-designer-mcp'

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