Skip to main content
Glama

Create halftone

create_halftone

Apply print-style halftone, CMYK, dithering, or posterization effects to images or generated noise in TouchDesigner, with adjustable dot size, angle, and blend controls.

Instructions

Build a print/comic print-look effect: halftone dots, CMYK colour separation, ordered dithering, or posterized stepped colour — classic retro aesthetics in one GLSL pass. Creates a new baseCOMP under parent_path holding the source (or a self-contained noise source), a GLSL TOP with an inline shader implementing the chosen style, and a Null output. With source it stylises an existing TOP (pulled in via a Select TOP); without it uses a self-contained animated colour-noise source (no device permissions). Exposes Mix (blend original vs stylised), DotSize, and Angle knobs. Returns a summary plus a JSON block with the container path, created node paths, the output path, exposed controls, any node errors, warnings, and an inline preview image.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
mixNoBlend between the original image (0) and the fully stylised output (1). Exposed as a knob for live tweaking.
nameNoBase name for the created container.halftone
angleNoScreen angle in degrees for the dot grid ('dots'/'cmyk'). Classic print uses 15–45°.
styleNoPrint look to apply. dots: monochrome halftone dot grid; cmyk: 4-colour print separation with staggered screen angles; dither: 4×4 Bayer ordered dithering; posterize: stepped colour + luminance outline.dots
sourceNoAbsolute path of an existing TOP to stylise (e.g. '/project1/render1'). Pulled in via a Select TOP. If omitted, a self-contained animated colour-noise source is used (no device permissions).
dot_sizeNoHalftone cell size in pixels — sets the dot spacing for 'dots' and 'cmyk' styles. Larger = coarser, more visible dots.
resolutionNoOutput resolution [width, height] in pixels.
parent_pathNoParent COMP path the halftone container is created inside./project1
Behavior5/5

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

The description discloses side effects far beyond the minimal annotations: it creates a new baseCOMP under `parent_path`, pulls in sources via a Select TOP, uses inline GLSL, exposes knobs, and returns a summary plus JSON block with paths, errors, warnings, and a preview image. It also explicitly notes 'no device permissions' for the standalone source.

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 front-loaded with purpose and then flows logically through node creation, source handling, exposed knobs, and return value. Every sentence contributes information without redundancy, and length is justified by the tool's complexity.

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?

Given the absence of an output schema, the description fully compensates by explaining the return payload: summary plus JSON with container path, created node paths, output path, exposed controls, errors, warnings, and inline preview. It also covers both input modes and side effects, leaving no major gaps for an agent.

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?

The input schema covers all 8 parameters with detailed descriptions, including enum semantics for `style`. The description adds minimal new parameter meaning—mostly recapping that Mix, DotSize, and Angle are exposed as knobs. With 100% schema coverage, the baseline of 3 is appropriate.

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 ('Build a print/comic print-look effect') and clearly states the tool's scope: halftone dots, CMYK separation, ordered dithering, or posterized stepped colour in one GLSL pass. It distinguishes itself from siblings by naming the exact node structure (baseCOMP, GLSL TOP, Null output) and the optional source input.

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 explicitly explains when to use a `source` (to stylise an existing TOP) versus omitting it (self-contained animated noise source with no device permissions). It implies usage for retro print looks, but does not name alternative tools directly. This is clear context without formal exclusions.

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