Skip to content
MCP Servers
Skill

/td-guide

Provides patterns and best practices for TouchDesigner via MCP API - operator creation, network layout, rendering, GLSL shaders, data conversion (CHOP/SOP/POP/TOP/DAT). Use when working with TouchDesigner networks.

BOOST
From plugin
claude-touchdesigner
1281 skill1 MCP
Install
$ npx -y skills add satoruhiga/claude-touchdesigner --skill td-guide --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/td-guide

Context preview

The summary Claude sees to decide when to auto-load this skill.

Provides patterns and best practices for TouchDesigner via MCP API - operator creation, network layout, rendering, GLSL shaders, data conversion (CHOP/SOP/POP/TOP/DAT). Use when working with TouchDesigner networks.

SKILL.md

td-guide.SKILL.md
name: touchdesigner
description: Provides patterns and best practices for TouchDesigner via MCP API - operator creation, network layout, rendering, GLSL shaders, data conversion (CHOP/SOP/POP/TOP/DAT). Use when working with TouchDesigner networks.
version: 0.1.0

TouchDesigner Guide

Use this skill when creating, modifying, or debugging TouchDesigner networks via the MCP API.

---

CRITICAL: Your Prior Knowledge is Unreliable

TouchDesigner is a visual programming environment. **Your pre-trained knowledge about TD is very likely incorrect.**

**Assume your memory is completely unreliable.** Always gather accurate information first:

  • This document and reference files
  • Context7 for official TD API documentation
  • `op.TDAPI.GetParameterList()` for parameter names

Before Starting ANY Task

**Output "Gathering information first" and collect reliable information before implementation.**

1. Read all `.md` files in `reference/` (REQUIRED for all tasks) 2. Verify parameter names using `op.TDAPI.GetParameterList()` 3. Ask yourself: "Do I have sufficient reliable information to proceed?" 4. Only if yes, start implementation

---

REQUIRED: Read All Reference Files First

**You MUST read all `.md` files in `reference/` before any implementation.**

These files contain essential patterns for operator creation, layout, error handling, and best practices that differ from standard TD API.

---

op.TDAPI - ALWAYS USE THESE

**You MUST use `op.TDAPI` utilities instead of raw TD API.**

Create Operators

# ALWAYS use CreateOp (auto sets viewer=True, handles docked operators)
new_op = op.TDAPI.CreateOp(base, gridSOP, 'grid1', x=0, y=0)

# DON'T use raw API directly
# new_op = base.create(gridSOP, 'grid1')  # WRONG - misses viewer, docked handling

Chain Operators

# Auto-connects and layouts with 200px spacing
chain = op.TDAPI.ChainOperators([grid, noise, null])

Check Errors

# Pass op() object, NOT string path
op.TDAPI.CheckErrors(op('/project1/base1'), recurse=True)

# IMPORTANT: Error cache updates on frame boundaries
# After fixing, check in SEPARATE td_execute call:
#   td_execute 1: Fix the error
#   td_execute 2: cook + CheckErrors

Verify Parameters Before Setting

# TD parameter names are unpredictable (e.g., radius vs radx/rady/radz)
# ALWAYS check first using GetParameterList:
params = op.TDAPI.GetParameterList('sphereSOP')
print(params)  # ['radx', 'rady', 'radz', ...]

---

Reference Files

| When working on... | Read... | |-------------------|------------------| | **ALL tasks** | **`reference/basics.md`** (REQUIRED) | | Operator families, data conversion | `reference/operator-families.md` | | Geometry COMP, Instancing | `reference/geometry-comp.md` | | Rendering, Camera, Light | `reference/rendering.md` | | GLSL TOP/MAT, shaders | `reference/glsl.md` | | Feedback loops, simulations | `reference/operator-tips.md` |

---

External Resources

**Use Context7** to look up official TouchDesigner API documentation when you need:

  • Operator types and their parameters
  • Python API details (td module, Op class, etc.)
  • Built-in functions and classes

This skill provides TD-specific patterns and best practices. Context7 provides official API reference.

Before Implementation

**Consider multiple approaches before coding.**

1. List 2-3 different ways to achieve the goal 2. Evaluate each approach's pros and cons:

  • Simplicity (fewer conversions, family unity)
  • Performance (GPU vs CPU, data flow efficiency)
  • Extensibility (easy to modify later)
  • Readability (network clarity)

3. Choose the most effective approach based on the evaluation

Example: "Create instanced particles in a sphere shape"

| Approach | Pros | Cons | |----------|------|------| | A: Sphere SOP → soptoCHOP → Geo + POP | Familiar pattern | Mixed families, extra conversion | | B: Sphere POP → Null → Geo(In/Out POP) | POP unified, direct data flow | Less familiar | | C: Sphere POP → poptoCHOP → instancing | Flexible positioning | Extra conversion step |

→ Choose B: unified family, efficient data flow, clean network structure

Required Rules

1. **Always set `viewer = True`** after creating operators (matches UI default) 2. **Always check errors** after complex operations: `op('/path').errors(recurse=True)` 3. **Use Null as intermediary** before any reference connection 4. **Verify layout before creating** to avoid overlapping operators 5. **Use relative paths** for references to nearby operators (same level or close hierarchy) 6. **Geometry COMP: create shapes at parent level** - Don't create geometry inside COMP; prepare at parent and pass via In/Out

MCP Tools Available

  • `td_execute`: Run Python code in TD
  • `td_pane`: Get current network editor state
  • `td_selection`: Get selected operators
  • `td_operators`: List operators at path

Plugin Assets

  • TOX: `${SKILL_BASE}/../../toe/TouchDesignerAPI.tox`

---

Operator Families (Quick Reference)

| Family | Purpose | Data Type | |--------|---------|-----------| | **SOP** | Surface/Geometry | 3D geometry (CPU) | | **POP** | Point/Particle | 3D points (GPU) | | **TOP** | Texture | 2D images | | **CHOP** | Channel | Time-based data | | **DAT** | Data | Tables, text | | **COMP** | Component | Containers, scenes |

For detailed family info, operator lists, and cross-family patterns, see `reference/operator-families.md`.

---

Skill Maintenance

When the user provides feedback about this skill (corrections, improvements, missing patterns, etc.):

1. Propose updates to the relevant `.md` files in this skill 2. Show the user the proposed changes before applying 3. Update `SKILL.md` or `reference/*.md` as appropriate

This ensures the skill stays accurate and improves over time based on real usage.

Read more
Ships withclaude-touchdesigner

A Claude Code plugin that enables AI-assisted TouchDesigner network creation and manipulation via MCP (Model Context Protocol).

Get the whole plugin
Stats
128
Stars
14
Forks
Quiet
Maintenance
Python
Language
8mo ago
Last commit
9mo ago
Created
2d ago
Added

Repo: satoruhiga/claude-touchdesigner