Skip to main content
Glama

Apply LUT

apply_lut

Applies a color LUT to a TOP in TouchDesigner, preferring OpenColorIO and falling back to Lookup TOP. Grade an existing source or preview on a grey constant with strength and bypass controls.

Instructions

Apply a colour Look-Up Table (LUT) to an existing TOP inside a self-contained baseCOMP. Prefers an OpenColorIO TOP for .cube/.3dl/.cc/.ccc files; falls back to a Movie File In + Lookup TOP for image LUTs or when OCIO is unavailable. A .cube file with no OCIO is parsed in Python into a Script TOP ramp. Exposes Strength and Bypass controls on a custom page. Pass source_path to grade an existing TOP, or omit it for a standalone preview on a grey Constant TOP.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
bypassNoWhen true, forces the Cross TOP crossfade to 0 so the source passes through unchanged. Also exposed as a toggle on the custom page.
preferNoBranch selection. `auto` probes OpenColorIO availability at runtime and uses it for `.cube`/`.3dl`/`.cc`/`.ccc` files, falling back to the Lookup TOP path for images. `ocio` forces the OCIO branch. `lookup` forces the Movie File In + Lookup TOP path even when OCIO is available.auto
lut_pathYesAbsolute path to the LUT file. Accepts `.cube`, `.3dl`, `.cc`, `.ccc` (routed to OpenColorIO when available, otherwise parsed in Python for `.cube` or loaded via Movie File In for image-format LUTs). PNG/EXR/etc. always use the Movie File In + Lookup TOP fallback.
strengthNoBlend amount between source (0 = untouched) and graded output (1 = full LUT). Drives the Cross TOP crossfade parameter.
parent_pathNoParent COMP network where the LUT chain container is created./project1
source_pathNoAbsolute TD path of the existing TOP to grade (e.g. '/project1/render1'). TD wires can't cross COMPs, so the source is pulled in via a Select TOP referencing the absolute path. When omitted, a Constant TOP (mid-grey, 1280×720) is created as a stand-in so the chain cooks and previews standalone.
container_nameNoBase name for the container COMP (a numeric suffix is auto-applied by TD).apply_lut
expose_controlsNoWhen true, appends custom-page parameters Strength (float 0..1) and Bypass (toggle) on the container COMP and binds them to the Cross TOP crossfade.
ocio_config_pathNoOptional absolute path to an OCIO config file (`.ocio`). Only used when the OCIO branch is taken.
Behavior5/5

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

Annotations declare non-read-only, open-world, non-destructive. Description adds rich behavior: creates a self-contained baseCOMP, prefers OCIO, falls back to Movie File In + Lookup TOP, parses .cube in Python, exposes Strength/Bypass controls, and handles missing source_path with a grey Constant TOP. This goes well beyond the annotations without contradiction.

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 dense but well-structured: main action first, then format preferences, fallback, controls, and usage variants. Slightly long, but every sentence adds useful information; not wasteful.

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?

For a complex tool with 9 params and no output schema, the description covers the key workflow: input formats, branch selection, fallback logic, source handling, and exposed controls. It gives an agent enough context to decide and invoke correctly.

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 covers 100% of parameters with detailed descriptions, so the description doesn't need to add parameter semantics. It does mention source_path and Strength/Bypass, but these already appear in the schema. No significant added meaning.

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: 'Apply a colour Look-Up Table (LUT) to an existing TOP inside a self-contained baseCOMP.' It clearly distinguishes from siblings like create_color_grade by targeting LUT application with specific file-format handling.

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?

Provides clear context: applies LUT to an existing TOP, with fallback behavior for OCIO vs image LUTs. However, it doesn't explicitly name alternative tools or state when not to use it, so not 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