---
hide:
- navigation
---
# Embody
### Converse with TouchDesigner
TouchDesigner projects are binary `.toe` files — impossible to diff, merge, or review. Embody makes your TD projects readable: by AI, by version control, and by you. **Git is not required** — Embody works in any project folder.
Embody is three things working together:
- :material-sync:{ .lg .middle } **Embody** — Version Control for TD
---
Tag any operator and Embody externalizes it to diffable files (`.tox`, `.py`, `.json`, `.glsl`, etc.) that mirror your network hierarchy. On project open, everything auto-restores from disk — your externalized files are the source of truth.
[:octicons-arrow-right-24: Get started](embody/getting-started.md)
- :material-robot:{ .lg .middle } **Envoy** — AI Meets TouchDesigner
---
An embedded [MCP](https://modelcontextprotocol.io/) server with **42 tools** that connects AI assistants like Claude Code, Cursor, and Windsurf to your live TD session. Create operators, set parameters, wire connections, write extensions, inspect errors, export networks — all through natural conversation.
[:octicons-arrow-right-24: Setup Envoy](envoy/setup.md)
- :material-file-document:{ .lg .middle } **TDN** — Networks as JSON
---
Export your operator network to human-readable JSON. Review structural changes in git diffs, snapshot configurations, and reconstruct entire networks from text — a structured language that both humans and LLMs can read.
[:octicons-arrow-right-24: Learn about TDN](tdn/index.md)
---
## What You Can Do
With Embody installed, you and your AI assistant can:
| | Capability | Example |
|---|-----------|---------|
| :material-plus-circle: | **Create & connect operators** | "Build me a noise-driven particle system" |
| :material-tune: | **Read & set any parameter** | "Set the noise frequency to match the audio input" |
| :material-code-braces: | **Write extensions** | "Create an extension class that manages scene transitions" |
| :material-bug: | **Debug errors** | "Why is my render chain producing a black output?" |
| :material-export: | **Export & import networks** | "Export this COMP to TDN so I can review the diff" |
| :material-magnify: | **Inspect anything** | "What parameters are non-default on this operator?" |
| :material-annotation: | **Document networks** | "Add annotations to group and label these operators" |
| :material-test-tube: | **Run tests** | "Run the test suite and fix any failures" |
You describe what you want in plain language, and the AI works with your live network — operators, connections, parameters, hierarchy — with full context.
[:octicons-arrow-right-24: Full tool reference](envoy/tools-reference.md)
---
## Key Features
| | Feature | Description |
|---|---------|-------------|
| :material-sync: | **Automated Externalization** | Tags COMPs and DATs, keeps external files in sync — auto-restores from disk on project open |
| :material-robot: | **Envoy MCP Server** | 42 tools connect AI assistants to your live TD session |
| :material-file-document: | **TDN Format** | Export/import operator networks as diffable JSON for code review and snapshots |
| :material-keyboard: | **Keyboard Shortcuts** | Double-tap ++lctrl++ to tag, ++ctrl+shift+u++ to save — minimal friction |
| :material-cog: | **Parameter Tracking** | Automatically detects parameter changes and marks COMPs dirty |
| :material-test-tube: | **30 Test Suites** | Comprehensive automated testing with 587 test methods |
| :material-note-text: | **Structured Logging** | Multi-destination logging with file rotation, ring buffer, and MCP access |
---
## Requirements
- **TouchDesigner 2025.32280** or later (Windows / macOS)
- A **git repository** is optional — recommended for version history and collaboration, but not required
---
## Quick Start
1. **Download** the Embody `.tox` from the [release folder](https://github.com/dylanroscover/Embody/tree/main/release)
2. **Drag and drop** it into your TouchDesigner project
3. **Enable Envoy** to connect AI assistants to your session
4. **Tag operators** by pressing ++lctrl++ twice on any COMP or DAT
5. **Save** with ++ctrl+shift+u++ — on next project open, everything restores from disk automatically
[:octicons-arrow-right-24: Full setup guide](embody/getting-started.md)