Skip to main content
Glama

Create JFA Voronoi

create_jfa_voronoi

Generate stained-glass Voronoi cell patterns in TouchDesigner via Jump-Flooding algorithm, with live controls for palette, seed count, speed, jitter, and edge style.

Instructions

Instantiate a self-contained Jump-Flooding-Algorithm Voronoi generator (stained-glass / cell pattern) as GLSL TOPs — seeds → jfa_init → K halving passes → color_pass → null. Exposes live PaletteMode / SeedCount / Speed / Jitter / EdgeThickness / EdgeColor / ColorA / ColorB controls and previews the output TOP. Pass count auto-derives from resolution (log2(max(w,h))); override with step_count.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
speedNoAnimation speed multiplier driving uTime drift of seeds. Live 'Speed' control.
jitterNoPer-seed drift amplitude (0 = static lattice). Live 'Jitter' control.
color_aNoDuotone primary hex. Live 'ColorA' swatch.#ff3366
color_bNoDuotone secondary hex. Live 'ColorB' swatch.#33ccff
edge_colorNoBorder colour as hex (e.g. '#000000'). Live 'EdgeColor' RGB swatch.#000000
resolutionNoOutput resolution [width, height]; JFA pass count auto-derived from max axis.
seed_countNoNumber of Voronoi seeds (4..512). Drives the seed TOP width (next pow-2).
step_countNoManual JFA pass count (0 = auto = ceil(log2(max(w,h)))).
parent_pathNoParent COMP path; container 'jfa_voronoi' is created inside./project1
palette_modeNorandom = HSV per seed; duotone = mix(ColorA, ColorB); from_image = sample image.random
palette_imageNoOp path to a TOP sampled at seed UVs when palette_mode='from_image'.
edge_thicknessNoCell border width in UV units (0..0.05). Live 'EdgeThickness' control.
expose_controlsNoExpose live PaletteMode/SeedCount/Speed/Jitter/EdgeThickness/EdgeColor/ColorA/ColorB.
Behavior4/5

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

Annotations already indicate non-read-only and non-destructive; the description adds meaningful behavioral detail: the exact node chain, self-contained nature, auto-derived pass count with override, and exposure of live controls. It doesn't dwell on side-effect specifics like exact container creation, but it conveys the main behavioral traits beyond 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?

Three sentences, zero wasted words. The first sentence front-loads purpose and architecture, the second covers the exposed controls and preview, and the third clarifies a key algorithmic behavior. Every sentence earns its place.

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?

For a create-oriented tool with 13 params and no output schema, the description gives a solid mental model: the GLSL TOP chain, live controls, preview behavior, and pass-count logic. It could mention the container path explicitly, but the parent_path schema covers that; overall it is sufficiently complete for an agent.

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 the baseline is 3. The description adds value by grouping the exposed live controls (PaletteMode/SeedCount/Speed/Jitter/EdgeThickness/EdgeColor/ColorA/ColorB) and by explaining how resolution auto-derives the pass count with step_count as an override, which is extra semantic context beyond the schema.

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 ('Instantiate') and names a distinct resource (a self-contained JFA Voronoi generator as GLSL TOPs). It differentiates itself from generic shader/TOP creator siblings by describing the concrete chain and output, so an agent can confidently identify what this tool creates.

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 gives clear context: it creates a stained-glass/cell pattern generator with live controls and previews, implying use when such a Voronoi effect is needed. It doesn't explicitly mention when not to use it or name alternatives among the many sibling tools, so it stops short of a 5.

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