About touchdesigner
A skill for creating, changing, and debugging TouchDesigner networks through its MCP API. It emphasizes checking reference material and live parameter data before implementation, and using TD-specific utilities to build and validate operators.
Key features
- 01Create and connect operators with TDAPI
- 02Inspect current network and selections
- 03Verify parameter names before setting them
- 04Check network errors after changes
- 05Consult references and official API documentation
Use cases
- 01Build a TouchDesigner operator network
- 02Debug errors in an existing network
- 03Check parameters before configuring operators
MCP support
The skill operates TouchDesigner networks through an MCP API. It lists tools for running Python code, viewing the network editor, inspecting selections, and listing operators.
Install
Copy the command and run it in a terminal.
npx skills add https:/ / github.com/ satoruhiga/ claude-touchdesigner --skill touchdesignerAfter installing, type/touchdesignerin Claude Code to confirm it loaded.
Bundled files
References and scripts installed along with SKILL.md.
reference/basics.mdgeometry-comp.mdglsl.mdoperator-families.mdoperator-tips.mdrendering.mdDetails
From the project READMETouchDesigner 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.
- Read all
.mdfiles inreference/(REQUIRED for all tasks) - Verify parameter names using
op.TDAPI.GetParameterList() - Ask yourself: "Do I have sufficient reliable information to proceed?"
- 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.
- List 2-3 different ways to achieve the goal
- 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)
- 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
- Always set
viewer = Trueafter creating operators (matches UI default) - Always check errors after complex operations:
op('/path').errors(recurse=True) - Use Null as intermediary before any reference connection
- Verify layout before creating to avoid overlapping operators
- Use relative paths for references to nearby operators (same level or close hierarchy)
- 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 TDtd_pane: Get current network editor statetd_selection: Get selected operatorstd_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.):
- Propose updates to the relevant
.mdfiles in this skill - Show the user the proposed changes before applying
- Update
SKILL.mdorreference/*.mdas appropriate
This ensures the skill stays accurate and improves over time based on real usage.