Skip to main content
Glama

Create halftone

create_halftone

Apply retro print-look effects like halftone dots, CMYK separation, dithering, or posterization to images or noise sources in TouchDesigner. Exposes controls for dot size, angle, and blend.

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
nameNoBase name for the created container.halftone
parent_pathNoParent COMP path the halftone container is created inside./project1
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).
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
dot_sizeNoHalftone cell size in pixels — sets the dot spacing for 'dots' and 'cmyk' styles. Larger = coarser, more visible dots.
angleNoScreen angle in degrees for the dot grid ('dots'/'cmyk'). Classic print uses 15–45°.
mixNoBlend between the original image (0) and the fully stylised output (1). Exposed as a knob for live tweaking.
resolutionNoOutput resolution [width, height] in pixels.
Behavior5/5

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

The description goes beyond annotations by detailing what the tool creates (baseCOMP, GLSL TOP, Select TOP, Null), how it handles source vs. noise, and the exposed knobs. It also discloses that no device permissions are needed when no source is provided. The annotations (readOnlyHint=false, destructiveHint=false, openWorldHint=true) are consistent and the description adds valuable behavioral context.

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 a single paragraph that is relatively long but each sentence adds unique information. It is front-loaded with the core effect description. While not overly concise, it avoids redundancy and is well-structured.

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 (8 parameters, no output schema), the description adequately explains what is created, the return value (summary with JSON block containing paths and preview), and the exposed controls. It covers key aspects but could be slightly more structured about the output format.

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%, so the schema already documents each parameter well. The description adds overall architectural context (e.g., 'inline shader', 'Select TOP') but does not add significant per-parameter meaning beyond what is in the schema. 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 clearly states the tool's purpose: to build a print/comic print-look effect with styles like halftone dots, CMYK separation, dithering, or posterization. It specifies the verb 'build' and the resource (a baseCOMP with GLSL TOP), distinguishing it from sibling create_* tools.

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 provides clear context on when to use this tool: for retro aesthetics and classic print looks. It explains the difference when a source is provided versus omitted, but does not explicitly state when not to use it or mention alternatives, though the sibling list is extensive.

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