Skip to main content
Glama

Create XY pad

create_xy_pad

Build a draggable XY pad whose pointer drag drives normalized X/Y channels, remapped to custom ranges and bound to target parameters. Optionally add a Z slider.

Instructions

Build a draggable 2D (XY) gesture pad — a Container COMP whose pointer drag drives an x/y CHOP of normalized control channels, optionally remapped into ranges and bound by expression to target parameters (e.g. an effect's two main knobs). Add a 3rd (Z) axis via z_target to also get a slider. Open the container in Perform/Panel mode and drag inside it to scrub X/Y live. The pad reads its drag through a Panel CHOP; the u/v drag-channel names are probed at build time (they vary by TD build) and any mismatch is reported as a warning. Leave the axis targets empty to just expose the x/y channels and bind them later with bind_to_channel.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
parent_pathNoCOMP path that will hold the XY pad (e.g. '/project1')./project1
nameNoName of the container COMP built as the draggable pad.xy_pad
x_targetNoOptional 'nodePath.parName' driven by the X axis. Empty = just expose the x/y channels (bind later with bind_to_channel).
y_targetNoOptional 'nodePath.parName' driven by the Y axis. Empty = none.
z_targetNoOptional 'nodePath.parName' driven by a 3rd (Z) axis. When set, a slider is added (the pad has no native 3rd axis) and its value0 drives this target.
x_rangeNoOutput range [low, high] for X. The pad's normalized u (0..1) is remapped into it.
y_rangeNoOutput range [low, high] for Y. The pad's normalized v (0..1) is remapped into it.
z_rangeNoOutput range [low, high] for the optional Z slider (0..1 remapped into it).
label_xNoDisplay label for the X axis (used in the summary).X
label_yNoDisplay label for the Y axis (used in the summary).Y
sizeNoPad size in pixels (square: width = height = size).
Behavior4/5

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

Annotations indicate readOnlyHint=false and destructiveHint=false. The description adds behavioral context: it mentions that the pad reads drag via a Panel CHOP, that u/v drag-channel names are probed at build time and mismatches are warned, and that it creates a Container COMP. 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.

Conciseness4/5

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

The description is moderately lengthy but well-structured: it starts with main purpose, then details customization options, usage instructions, and technical specifics. Every sentence provides relevant information. Minor redundancy could be trimmed, but overall it is efficient.

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 complexity (11 parameters, no output schema), the description covers the tool's behavior comprehensively: it explains the created component, how to use it, optional Z axis, and remapping. It does not mention error handling or performance, but is adequate for selection and invocation.

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?

Schema coverage is 100%, so baseline is 3. The description adds value by explaining the purpose of z_target ('adds a slider when set'), the remapping via ranges, and the option to leave targets empty for later binding. This goes beyond the schema descriptions.

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's purpose: 'Build a draggable 2D (XY) gesture pad'. It provides specific verb (Build) and resource (gesture pad), and distinguishes from sibling tools (e.g., create_audio_reactive, create_3d_scene) by specifying its unique function.

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 offers usage guidance: it explains when to use the tool (to build a 2D pad), how to customize with optional targets and ranges, and even suggests alternative use when leaving targets empty and binding later with bind_to_channel. However, it does not explicitly state when not to use it or list direct alternatives alongside.

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