open source · MIT · TouchDesigner 2025+
create at the
speed of thought.

the toolset
three tools, one idea.
Embody
lateral velocity.
Tag any operator and Embody externalizes it to version-control-friendly files on disk. Diff what changed, track who changed it, collaborate across branches, and restore any previous state. Your externalized files are the source of truth — not the binary .toe.
Envoy
forward velocity.
52 MCP tools that plug Claude Code, Codex, Gemini, Cursor, Windsurf, or GitHub Copilot via VS Code straight into your live session. Say what you want. Watch it happen. Idea to network in seconds.
TDN
the substrate.
TouchDesigner networks as human-readable YAML. Your agent can read it. You can read it. Git can read it.
in practice
say it. watch it happen.
- Build entire networks from a sentence"Build me a noise-driven particle system."
- Try a different approach in seconds"Actually, make it react to audio instead."
- Set any parameter"Set the noise frequency to match the audio input."
- Write extensions"Create an extension class that manages scene transitions."
- Debug errors"Why is my render chain producing a black output?"
- Compare attempts"Show me what changed between this version and the last."
the format that makes it possible
meet TDN.
TDN exports any TouchDesigner network as a single human-readable YAML file — operators, parameters, connections, layout, annotations, DAT content — all of it, in text. Every change becomes a clean diff. Every version is a file your AI agent can read, your team can review, and git can meaningfully compare.
format: tdn
version: '2.0'
build: 8
generator: Embody/6.0.16
td_build: 099.2025.32820
exported_at: '2026-04-10T08:15:00Z'
network_path: /project1
type: containerCOMP
options:
include_dat_content: true
operators:
- name: noise1
type: noiseTOP
parameters:
amp: 0.8
period: =absTime.frame * 0.1
flags:
- viewer
- name: level1
type: levelTOP
parameters:
opacity: ~op('ctrl').par.Fade
flags:
- display
- render
position: [400, 0]
inputs:
- noise1
annotations:
- name: annot1
mode: annotate
title: noise pipeline
position: [-100, -200]
size: [700, 400]- non-default-only — only what you actually changed gets written.
- type defaults hoisted — shared properties dedupe across operators.
- expression shorthand —
=absTime.frame * 0.1instead of verbose wrapper objects. - round-trip safe — export → edit → import yields the same network.
- the substrate for the entire workflow — forward velocity AND lateral velocity depend on it.
diffable. Any text tool, any diff viewer, any AI agent can read it.
TDN is what makes the rest of this possible.
get started
four steps to flow.
- 01
download
Grab the Embody
.toxfrom GitHub Releases. - 02
drag and drop
Drop it into your TouchDesigner project. That's the install.
- 03
enable Envoy
Connect your AI assistant to the session with one toggle.
- 04
tag operators
Double-tap lctrl on any operator to externalize it. Start building.
why this exists
Everything is moving faster now. Everyone is shipping. We're entering the golden age of digital media, and TouchDesigner is positioned to become one of the leading platforms of content creation. Embody exists to help our community build faster and better than ever — open source, no strings attached, nothing SaaSy.
the collection
browse the Collection.
Transparent TDN networks you can inspect node-for-node, copy to your clipboard, and evolve in your own project.

Kaleidoscope
A reusable kaleidoscope compositor. Folds any TOP (or its built-in animated source) into an N-fold mirrored mandala that rotates, twists, breathes, and tumbles. Drop it onto any visual via the External source mode.

Mandelbulb March
A raymarched 3D Mandelbulb fractal rendered entirely in one GLSL TOP. The classic distance estimator is marched per pixel against a slowly orbiting camera; orbit-trap values captured during iteration tint the surface, and soft shadows, a fresnel rim, and a proximity glow give it depth. No input, no feedback - a drop-in hero render, a looping VJ source, or a reference for distance-estimated raymarching.

Murmuration
A dense GPU particle swarm that flocks like a starling murmuration at dusk - cohering, separating, aligning, and flowing around a slow invisible attractor with curl-noise wander. True per-neighbor Reynolds flocking computed on the GPU (a Neighbor POP index list iterated in a GLSL POP), rendered as luminous additive point sprites.