td-atlas RU·EN Try it

Layout

Перевод английской документации от 15.09·English

wider than the screen, scroll →
td-atlas/ ├── README.md the front page, English ├── README.ru.md the same page in Russian ├── README.zh-CN.md the same page in Simplified Chinese ├── AGENTS.md contributor guide, human or agent ├── CONTRIBUTING.md the short version: how to run the checks ├── CLAUDE.md entry points for an agent opening this repository ├── CHANGELOG.md Keep a Changelog; every protocol change is in it ├── LICENSE MIT, and nothing else, so the card reads MIT ├── NOTICE TouchDesigner is Derivative's, and this is not theirs ├── install.sh the one-line install, POSIX sh, nothing outside │ the checkout and ~/.td-atlas ├── pyproject.toml ├── .gitignore ├── .github/ │ ├── workflows/ │ │ ├── ci.yml pytest and ruff, macOS and Windows, Python 3.11-3.14 │ │ ├── pages.yml builds the site, and serves install.sh as /i │ │ └── publish-pypi.yml uploads to PyPI on a published release, no token │ ├── ISSUE_TEMPLATE/ build, OS and `td-atlas doctor` output │ ├── cover.png the image the three READMEs show │ └── td-atlas.png the square mark ├── docs/ │ ├── architecture.md the three layers and the reasoning │ ├── cli.md every subcommand and flag, and what it needs │ ├── formats.md the undocumented .toe format, measured │ ├── atom-index.md the two passes that build the index │ ├── bridge.md the component that runs inside TouchDesigner │ ├── health.md what TouchDesigner does not report │ ├── journal.md the append-only trail of bridge calls │ ├── offline-projects.md reading a .toe with TouchDesigner closed │ ├── network-text.md the diffable text written beside the .toe │ ├── compatibility.md platforms, and what this can change in a project │ ├── skill.md the agent skill, and installing it as a plugin │ ├── bundle.md building and publishing the .mcpb │ ├── troubleshooting.md every symptom, what it is, what to run │ ├── development.md the test suite and the invariant it holds │ ├── layout.md this file │ └── ru/ the Russian mirror, file for file, each one │ carrying the hash of its English source ├── site/ the public site: the landing page and /docs/ │ ├── index.html the landing page, both languages in one document │ ├── baza.mjs the base path, one place for both halves of the build │ ├── vite.config.ts the vite build, and the base path in the page's links │ ├── package.json │ ├── package-lock.json │ ├── public/ favicons and the apple touch icon │ ├── src/ the landing page in the browser │ │ ├── main.ts motion, buttons, and the page at rest │ │ ├── dvizhenie.ts scroll, reveal and parallax, loaded on its own │ │ ├── teksty.{ts,json} every string of the page, both languages │ │ ├── stil.css the movement laid over the locked markup │ │ └── objekt/ the first screen's field, canvas and WebGL2 │ └── generator/ the documentation pages, built from this repository │ ├── sborka.mjs sections, both languages, and every link │ ├── shablon.mjs markup and theme, the d1 layout │ ├── md.mjs markdown into blocks │ ├── fixtura.mjs three canonical pages, for the layout check │ └── znak.svg the mark in the header ├── .claude-plugin/ │ └── marketplace.json this repository as a marketplace ├── packaging/ │ ├── manifest.json the MCPB manifest, generated from pyproject.toml │ └── .mcpbignore what stays out of the bundle ├── scripts/ │ ├── build_mcpb.py build the bundle, the registry submission, build.json │ └── publish.sh the one step that sends anything outward ├── plugin/ the plugin the marketplace above offers, and │ │ the only part of this tree it installs │ ├── .claude-plugin/plugin.json │ └── skills/ │ └── touchdesigner/ the agent skill │ ├── SKILL.md │ └── references/{gotchas,tools}.md ├── src/td_atlas/ │ ├── install.py locate a TouchDesigner installation │ ├── config.py the ~/.td-atlas handshake between host and TD │ ├── cli.py command line, parity with the MCP tools │ ├── journal.py the append-only trail of bridge calls │ ├── atoms/ the offline index │ │ ├── extract_static.py pass over the app bundle │ │ ├── probe.py runtime pass, incl. type-alias derivation │ │ ├── htmltext.py wiki HTML -> text, with categories │ │ ├── validate.py parameter checking before anything is sent │ │ └── store.py SQLite schema, FTS5 search and ranking │ ├── bridge/ talking to a running instance │ │ ├── client.py JSON-RPC over HTTP, stdlib only │ │ ├── health.py the silent-failure detector │ │ └── filmstrip.py contact sheets, with a stdlib PNG encoder │ ├── component/ code that runs *inside* TouchDesigner │ │ ├── bootstrap.py builds the bridge network in place │ │ ├── handler.py the RPC handler │ │ └── ruff.toml TouchDesigner's injected globals, declared │ ├── project/ reading .toe/.tox without TouchDesigner │ │ ├── expand.py driving toeexpand/toecollapse on a copy │ │ ├── formats.py the undocumented file formats │ │ ├── model.py the operator tree and type resolution │ │ ├── diff.py semantic comparison │ │ ├── render.py tree description and code search │ │ ├── serialize.py the whole network as text │ │ ├── rebuild.py the return leg: text back into a .toe │ │ ├── variants.py saved states, text plus a byte copy │ │ └── release.py building the bridge as a .tox │ └── mcp/ │ ├── server.py the MCP tools over all three layers │ └── hints.py the recovery table every refusal is rendered from └── tests/ ├── conftest.py shared fixtures ├── live_network.py the fixture network the live text diff is measured on ├── windows_gaps.py the two things Windows does not have, measured in CI └── test_*.py a plain run needs no TouchDesigner running

Two kinds of path stay out of the tree above.

Generated, and not in git. .venv/, the index and staged bridge under ~/.td-atlas/, and dist/ with the built bundle, dist/server.json and dist/build.json. That last one records the commit the bundle came from, so publish.sh can refuse a stale one. .mcp.json is ignored too. td-atlas install --write-mcp-json writes it, and it holds a path specific to your machine.

Ignored, and not generated. memory-bank/ holds the owner's working notes. Nothing in the tree above depends on them, and what a reader needs out of them lives in docs/.