Skip to main content
Glama

Apply LUT

apply_lut

Apply a colour Look-Up Table (LUT) to a TOP in TouchDesigner, with strength and bypass controls. Supports OCIO and image-based LUTs for accurate color grading.

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 indicate readOnlyHint=false, openWorldHint=true, destructiveHint=false. The description adds substantial behavioral details beyond annotations: it creates a container, exposes Strength and Bypass controls, has fallback logic for OCIO vs lookup, and explains Python parsing for .cube files without OCIO. This fully discloses the tool's behavior.

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 efficiently structured with a clear purpose statement first, followed by functional details. Every sentence adds value. It is not overly verbose, though it could be slightly more concise without losing information. Good front-loading.

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 tool's complexity (9 parameters, multiple file formats, fallback logic, exposed controls), the description covers all essential behaviors: how different file types are handled, the role of each parameter, and the result (container with controls). No output schema exists, so the description adequately explains the tool's output and side effects.

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% with well-described parameters. The description adds extra meaning by explaining the purpose of source_path (grade vs standalone) and providing context for the prefer parameter (auto, ocio, lookup). This enriches understanding beyond the schema alone.

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 applies a colour LUT to an existing TOP inside a baseCOMP. It uses specific verbs and resources, and distinguishes itself from sibling tools by focusing on LUT application without confusion with other apply 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 explicit guidance on when to use the tool and how to use it: passing source_path for grading an existing TOP or omitting it for standalone preview. It explains the preferred method for different file types, but does not explicitly compare to siblings like apply_glsl_top_mapping. The guidance is clear for the intended purpose.

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