@hybridlabor-api/aos 4.3.0 → 4.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/hooks/memb-inject.mjs +121 -0
- package/.claude/settings.json +10 -0
- package/README.de.md +0 -2
- package/README.md +0 -2
- package/README.pt.md +0 -2
- package/THIRD_PARTY_NOTICES.md +1 -1
- package/docs/skills_table.md +0 -2
- package/installer.js +17 -6
- package/package.json +16 -2
- package/skills/global_config/aos-project-init/SKILL.md +194 -0
- package/skills/global_config/aos-project-init/assets/AGENTS.template.md +56 -0
- package/skills/global_config/aos-project-init/scripts/aos-project-doctor.mjs +137 -0
- package/skills/global_config/aos-setup/SKILL.md +222 -0
- package/skills/global_config/aos-setup/scripts/aos-doctor.mjs +262 -0
- package/skills/global_config/ask-tim/SKILL.md +2 -2
- package/assets/Give_AI_Agents_Control_of_Creative_Software.mp4 +0 -0
- package/mcps/RhinoMCP/connector/icon-dark.png +0 -3
- package/mcps/RhinoMCP/connector/icon-light.png +0 -3
- package/mcps/RhinoMCP/connector/screenshots/casa-rhino.png +0 -3
- package/mcps/RhinoMCP/docs/assets/css/custom.css +0 -640
- package/mcps/RhinoMCP/docs/content/_index.md +0 -88
- package/mcps/RhinoMCP/docs/content/docs/_index.md +0 -35
- package/mcps/RhinoMCP/docs/content/docs/advanced/_index.md +0 -37
- package/mcps/RhinoMCP/docs/content/docs/advanced/bulk-file-processing.md +0 -70
- package/mcps/RhinoMCP/docs/content/docs/advanced/headless-render-farm.md +0 -60
- package/mcps/RhinoMCP/docs/content/docs/advanced/make-this-parametric.md +0 -56
- package/mcps/RhinoMCP/docs/content/docs/advanced/sketch-to-model.md +0 -58
- package/mcps/RhinoMCP/docs/content/docs/advanced/upgrade-gh1-to-gh2.md +0 -51
- package/mcps/RhinoMCP/docs/content/docs/developers/_index.md +0 -39
- package/mcps/RhinoMCP/docs/content/docs/developers/dev-troubleshooting.md +0 -15
- package/mcps/RhinoMCP/docs/content/docs/developers/plugin-prototyping.md +0 -56
- package/mcps/RhinoMCP/docs/content/docs/developers/upgrade-gh1-to-gh2.md +0 -98
- package/mcps/RhinoMCP/docs/content/docs/developers/upgrade-to-netcore.md +0 -53
- package/mcps/RhinoMCP/docs/content/docs/developers/windows-to-cross-platform.md +0 -58
- package/mcps/RhinoMCP/docs/content/docs/developers/wpf-to-eto.md +0 -64
- package/mcps/RhinoMCP/docs/content/docs/getting-started/_index.md +0 -45
- package/mcps/RhinoMCP/docs/content/docs/getting-started/cc-plugin.md +0 -116
- package/mcps/RhinoMCP/docs/content/docs/getting-started/connector.md +0 -65
- package/mcps/RhinoMCP/docs/content/docs/getting-started/copilot.md +0 -61
- package/mcps/RhinoMCP/docs/content/docs/getting-started/lm-studio.md +0 -62
- package/mcps/RhinoMCP/docs/content/docs/troubleshooting.md +0 -66
- package/mcps/RhinoMCP/docs/content/docs/try-it-out/_index.md +0 -39
- package/mcps/RhinoMCP/docs/content/docs/try-it-out/examples/_index.md +0 -25
- package/mcps/RhinoMCP/docs/content/docs/try-it-out/examples/build-grasshopper.md +0 -26
- package/mcps/RhinoMCP/docs/content/docs/try-it-out/examples/generate-variations.md +0 -25
- package/mcps/RhinoMCP/docs/content/docs/try-it-out/examples/inspect-and-report.md +0 -26
- package/mcps/RhinoMCP/docs/content/docs/try-it-out/examples/layers.md +0 -28
- package/mcps/RhinoMCP/docs/content/docs/try-it-out/examples/model-from-image.md +0 -27
- package/mcps/RhinoMCP/docs/content/docs/try-it-out/recipes.md +0 -178
- package/mcps/RhinoMCP/docs/data/icons.yaml +0 -3
- package/mcps/RhinoMCP/docs/go.mod +0 -5
- package/mcps/RhinoMCP/docs/go.sum +0 -4
- package/mcps/RhinoMCP/docs/hugo.yaml +0 -78
- package/mcps/RhinoMCP/docs/layouts/_partials/sidebar.html +0 -333
- package/mcps/RhinoMCP/docs/layouts/docs/list.html +0 -29
- package/mcps/RhinoMCP/docs/layouts/docs/single.html +0 -29
- package/mcps/RhinoMCP/docs/layouts/partials/custom/head-end.html +0 -3
- package/mcps/RhinoMCP/docs/layouts/shortcodes/download-asset.html +0 -21
- package/mcps/RhinoMCP/docs/layouts/shortcodes/github.html +0 -21
- package/mcps/RhinoMCP/docs/layouts/shortcodes/prompt.html +0 -23
- package/mcps/RhinoMCP/docs/layouts/shortcodes/yak.html +0 -21
- package/mcps/RhinoMCP/docs/static/developer/sel-arc.png +0 -3
- package/mcps/RhinoMCP/docs/static/developer/voxelizer-gh2-conversion.png +0 -3
- package/mcps/RhinoMCP/docs/static/examples/ai-kettle.png +0 -3
- package/mcps/RhinoMCP/docs/static/examples/casa_rhino_shapes.png +0 -3
- package/mcps/RhinoMCP/docs/static/examples/kettle.jpg +0 -0
- package/mcps/RhinoMCP/docs/static/examples/raygun-layers.png +0 -3
- package/mcps/RhinoMCP/docs/static/examples/raygun-thumbnail.png +0 -3
- package/mcps/RhinoMCP/docs/static/examples/twisty-tower-gh.png +0 -3
- package/mcps/RhinoMCP/docs/static/favicon.svg +0 -26
- package/mcps/RhinoMCP/docs/static/images/landing-dark.png +0 -3
- package/mcps/RhinoMCP/docs/static/images/landing.png +0 -3
- package/mcps/RhinoMCP/docs/static/images/logo-dark.svg +0 -26
- package/mcps/RhinoMCP/docs/static/images/logo.svg +0 -26
- package/mcps/RhinoMCP/docs/static/local-llm.png +0 -3
- package/mcps/RhinoMCP/rhino/plugin/icon.png +0 -3
- package/mcps/RhinoMCP/tests/Acp.Tests/Acp.Tests.csproj +0 -29
- package/mcps/RhinoMCP/tests/Acp.Tests/CoverageTests.cs +0 -52
- package/mcps/RhinoMCP/tests/Acp.Tests/Fakes.cs +0 -90
- package/mcps/RhinoMCP/tests/Acp.Tests/GlobalUsings.cs +0 -1
- package/mcps/RhinoMCP/tests/Acp.Tests/LoopbackTests.cs +0 -59
- package/mcps/RhinoMCP/tests/Acp.Tests/RobustnessTests.cs +0 -124
- package/mcps/RhinoMCP/tests/Acp.Tests/SerializationTests.cs +0 -94
- package/mcps/RhinoMCP/tests/Integration.Tests/AdoptedSlotTests.cs +0 -136
- package/mcps/RhinoMCP/tests/Integration.Tests/AutoSpawnNotificationTests.cs +0 -63
- package/mcps/RhinoMCP/tests/Integration.Tests/CloseSlotAgentTests.cs +0 -56
- package/mcps/RhinoMCP/tests/Integration.Tests/CloseSlotTests.cs +0 -37
- package/mcps/RhinoMCP/tests/Integration.Tests/DocLifecycleTests.cs +0 -42
- package/mcps/RhinoMCP/tests/Integration.Tests/GlobalUsings.cs +0 -3
- package/mcps/RhinoMCP/tests/Integration.Tests/GrasshopperStartTests.cs +0 -56
- package/mcps/RhinoMCP/tests/Integration.Tests/Harness/ReturnResult.cs +0 -28
- package/mcps/RhinoMCP/tests/Integration.Tests/Harness/RhinoMcpFixture.cs +0 -90
- package/mcps/RhinoMCP/tests/Integration.Tests/Harness/RhinoMcpRouter.cs +0 -111
- package/mcps/RhinoMCP/tests/Integration.Tests/Harness/RhinoRouterPaths.cs +0 -83
- package/mcps/RhinoMCP/tests/Integration.Tests/Harness/RouterFixture.cs +0 -50
- package/mcps/RhinoMCP/tests/Integration.Tests/Integration.Tests.csproj +0 -31
- package/mcps/RhinoMCP/tests/Integration.Tests/ListSlotsShapeTests.cs +0 -55
- package/mcps/RhinoMCP/tests/Integration.Tests/ListSlotsTests.cs +0 -19
- package/mcps/RhinoMCP/tests/Integration.Tests/MacSharedProcessTests.cs +0 -87
- package/mcps/RhinoMCP/tests/Integration.Tests/MultiRouterTests.cs +0 -74
- package/mcps/RhinoMCP/tests/Integration.Tests/PluginToolTests.cs +0 -115
- package/mcps/RhinoMCP/tests/Integration.Tests/README.md +0 -35
- package/mcps/RhinoMCP/tests/Integration.Tests/RhinoCrashHandlingTests.cs +0 -107
- package/mcps/RhinoMCP/tests/Integration.Tests/SlotReapingTests.cs +0 -84
- package/mcps/RhinoMCP/tests/Integration.Tests/SpawnErrorTests.cs +0 -52
- package/mcps/RhinoMCP/tests/Integration.Tests/SpawnSlotTests.cs +0 -66
- package/mcps/RhinoMCP/tests/Integration.Tests/ToolDispatchBySlotTests.cs +0 -53
- package/mcps/RhinoMCP/tests/Integration.Tests/WindowsProcessIsolationTests.cs +0 -62
- package/mcps/RhinoMCP/tests/Router.Tests/CodegenTests.cs +0 -125
- package/mcps/RhinoMCP/tests/Router.Tests/ReturnResultTests.cs +0 -90
- package/mcps/RhinoMCP/tests/Router.Tests/RhinoCrashReportFinderTests.cs +0 -207
- package/mcps/RhinoMCP/tests/Router.Tests/RhinoLocatorOverrideTests.cs +0 -61
- package/mcps/RhinoMCP/tests/Router.Tests/RhinoLocatorTests.cs +0 -38
- package/mcps/RhinoMCP/tests/Router.Tests/RhinoManagerResolutionTests.cs +0 -151
- package/mcps/RhinoMCP/tests/Router.Tests/Router.Tests.csproj +0 -31
- package/mcps/RhinoMCP/tests/Router.Tests/RouterConfigTests.cs +0 -92
- package/mcps/RhinoMCP/tests/Router.Tests/SlotStoreLaunchingAbsenceTests.cs +0 -70
- package/mcps/RhinoMCP/tests/Router.Tests/SlotStorePortReservationTests.cs +0 -92
- package/mcps/RhinoMCP/tests/Router.Tests/SpawnDiagnosticsTests.cs +0 -100
- package/mcps/RhinoMCP/tests/Router.Tests/SpawnSlotToolDiagnoseTests.cs +0 -66
- package/mcps/RhinoMCP/tests/Server.Tests/McpConfigEditTests.cs +0 -223
- package/mcps/RhinoMCP/tests/Server.Tests/ParameterBinderTests.cs +0 -208
- package/mcps/RhinoMCP/tests/Server.Tests/ProtocolTests.cs +0 -200
- package/mcps/RhinoMCP/tests/Server.Tests/ResourceRegistryTests.cs +0 -218
- package/mcps/RhinoMCP/tests/Server.Tests/ResultUnwrapperTests.cs +0 -53
- package/mcps/RhinoMCP/tests/Server.Tests/SchemaBuilderTests.cs +0 -166
- package/mcps/RhinoMCP/tests/Server.Tests/Server.Tests.csproj +0 -40
- package/mcps/RhinoMCP/tests/StreamJson.Tests/AcpMessageMapperTests.cs +0 -82
- package/mcps/RhinoMCP/tests/StreamJson.Tests/AgentPromptsTests.cs +0 -56
- package/mcps/RhinoMCP/tests/StreamJson.Tests/AgentRegistryOverlayTests.cs +0 -88
- package/mcps/RhinoMCP/tests/StreamJson.Tests/AgentRegistryResolutionTests.cs +0 -152
- package/mcps/RhinoMCP/tests/StreamJson.Tests/AgentRunnerTurnTests.cs +0 -149
- package/mcps/RhinoMCP/tests/StreamJson.Tests/ClaudeStreamJsonParserTests.cs +0 -118
- package/mcps/RhinoMCP/tests/StreamJson.Tests/CodexStreamJsonParserTests.cs +0 -100
- package/mcps/RhinoMCP/tests/StreamJson.Tests/ConversationStorePruneTests.cs +0 -94
- package/mcps/RhinoMCP/tests/StreamJson.Tests/ConversationStoreRoundTripTests.cs +0 -70
- package/mcps/RhinoMCP/tests/StreamJson.Tests/ConversationTests.cs +0 -153
- package/mcps/RhinoMCP/tests/StreamJson.Tests/ConversationUsageTests.cs +0 -56
- package/mcps/RhinoMCP/tests/StreamJson.Tests/GlobalUsings.cs +0 -12
- package/mcps/RhinoMCP/tests/StreamJson.Tests/Shims.cs +0 -93
- package/mcps/RhinoMCP/tests/StreamJson.Tests/StreamJson.Tests.csproj +0 -56
- package/mcps/RhinoMCP/tests/StreamJson.Tests/StreamJsonAgentLoopbackTests.cs +0 -75
- package/mcps/RhinoMCP/tests/StreamJson.Tests/StreamJsonParserEdgeCaseTests.cs +0 -128
- package/mcps/RhinoMCP/tests/StreamJson.Tests/TokenUsageTests.cs +0 -40
- package/mcps/RhinoMCP/tests/launcher/launcher.test.mjs +0 -461
- package/mcps/RhinoMCP/tests/launcher/package.json +0 -8
- package/mcps/ae-mcp/docs/demo.png +0 -0
- package/mcps/ae-mcp/docs/demo1.png +0 -0
- package/mcps/ae-mcp/docs/demo3.png +0 -0
- package/mcps/ae-mcp/docs/video.png +0 -0
- package/mcps/after-effects-mcp/assets/MCP Auto Bridge.png +0 -0
- package/mcps/bdb-remoteos-mcp/tests/__init__.py +0 -1
- package/mcps/bdb-remoteos-mcp/tests/mock_incus.py +0 -60
- package/mcps/bdb-remoteos-mcp/tests/test_mcp_server.py +0 -27
- package/mcps/bdb-remoteos-mcp/tests/test_security_redteam.py +0 -349
- package/mcps/bdb-remoteos-mcp/tests/test_webhook.py +0 -61
- package/mcps/blender-mcp/assets/addon-instructions.png +0 -0
- package/mcps/blender-mcp/assets/hammer-icon.png +0 -0
- package/mcps/blender-mcp-server/docs/architecture.md +0 -209
- package/mcps/blender-mcp-server/docs/images/demo_render.png +0 -0
- package/mcps/blender-mcp-server/docs/python-execute-design.md +0 -515
- package/mcps/blender-mcp-server/tests/__init__.py +0 -0
- package/mcps/blender-mcp-server/tests/test_addon.py +0 -953
- package/mcps/blender-mcp-server/tests/test_server.py +0 -364
- package/mcps/davinci-mcp-professional/docs/README.md +0 -67
- package/mcps/davinci-mcp-professional/docs/html/README_8md.html +0 -113
- package/mcps/davinci-mcp-professional/docs/html/____init_____8py.html +0 -126
- package/mcps/davinci-mcp-professional/docs/html/____init_____8py.js +0 -6
- package/mcps/davinci-mcp-professional/docs/html/____init_____8py_source.html +0 -125
- package/mcps/davinci-mcp-professional/docs/html/__version_8py.html +0 -130
- package/mcps/davinci-mcp-professional/docs/html/__version_8py.js +0 -9
- package/mcps/davinci-mcp-professional/docs/html/__version_8py_source.html +0 -130
- package/mcps/davinci-mcp-professional/docs/html/annotated.html +0 -123
- package/mcps/davinci-mcp-professional/docs/html/annotated_dup.js +0 -21
- package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1resolve__client_1_1DaVinciResolveClient-members.html +0 -131
- package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1resolve__client_1_1DaVinciResolveClient.html +0 -706
- package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1resolve__client_1_1DaVinciResolveClient.js +0 -26
- package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1resolve__client_1_1DaVinciResolveConnectionError.html +0 -143
- package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1resolve__client_1_1DaVinciResolveConnectionError__coll__graph.map +0 -7
- package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1resolve__client_1_1DaVinciResolveConnectionError__coll__graph.md5 +0 -1
- package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1resolve__client_1_1DaVinciResolveConnectionError__coll__graph.png +0 -0
- package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1resolve__client_1_1DaVinciResolveConnectionError__inherit__graph.map +0 -7
- package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1resolve__client_1_1DaVinciResolveConnectionError__inherit__graph.md5 +0 -1
- package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1resolve__client_1_1DaVinciResolveConnectionError__inherit__graph.png +0 -0
- package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1resolve__client_1_1DaVinciResolveError.html +0 -143
- package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1resolve__client_1_1DaVinciResolveError__coll__graph.map +0 -5
- package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1resolve__client_1_1DaVinciResolveError__coll__graph.md5 +0 -1
- package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1resolve__client_1_1DaVinciResolveError__coll__graph.png +0 -0
- package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1resolve__client_1_1DaVinciResolveError__inherit__graph.map +0 -9
- package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1resolve__client_1_1DaVinciResolveError__inherit__graph.md5 +0 -1
- package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1resolve__client_1_1DaVinciResolveError__inherit__graph.png +0 -0
- package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1resolve__client_1_1DaVinciResolveNotRunningError.html +0 -143
- package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1resolve__client_1_1DaVinciResolveNotRunningError__coll__graph.map +0 -7
- package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1resolve__client_1_1DaVinciResolveNotRunningError__coll__graph.md5 +0 -1
- package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1resolve__client_1_1DaVinciResolveNotRunningError__coll__graph.png +0 -0
- package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1resolve__client_1_1DaVinciResolveNotRunningError__inherit__graph.map +0 -7
- package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1resolve__client_1_1DaVinciResolveNotRunningError__inherit__graph.md5 +0 -1
- package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1resolve__client_1_1DaVinciResolveNotRunningError__inherit__graph.png +0 -0
- package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1server_1_1DaVinciMCPServer-members.html +0 -115
- package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1server_1_1DaVinciMCPServer.html +0 -325
- package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1server_1_1DaVinciMCPServer.js +0 -10
- package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1types_1_1DaVinciMediaPool-members.html +0 -110
- package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1types_1_1DaVinciMediaPool.html +0 -188
- package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1types_1_1DaVinciMediaPool.js +0 -5
- package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1types_1_1DaVinciMediaPool__coll__graph.map +0 -5
- package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1types_1_1DaVinciMediaPool__coll__graph.md5 +0 -1
- package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1types_1_1DaVinciMediaPool__coll__graph.png +0 -0
- package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1types_1_1DaVinciMediaPool__inherit__graph.map +0 -5
- package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1types_1_1DaVinciMediaPool__inherit__graph.md5 +0 -1
- package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1types_1_1DaVinciMediaPool__inherit__graph.png +0 -0
- package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1types_1_1DaVinciProject-members.html +0 -113
- package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1types_1_1DaVinciProject.html +0 -248
- package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1types_1_1DaVinciProject.js +0 -8
- package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1types_1_1DaVinciProjectManager-members.html +0 -113
- package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1types_1_1DaVinciProjectManager.html +0 -252
- package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1types_1_1DaVinciProjectManager.js +0 -8
- package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1types_1_1DaVinciProjectManager__coll__graph.map +0 -5
- package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1types_1_1DaVinciProjectManager__coll__graph.md5 +0 -1
- package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1types_1_1DaVinciProjectManager__coll__graph.png +0 -0
- package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1types_1_1DaVinciProjectManager__inherit__graph.map +0 -5
- package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1types_1_1DaVinciProjectManager__inherit__graph.md5 +0 -1
- package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1types_1_1DaVinciProjectManager__inherit__graph.png +0 -0
- package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1types_1_1DaVinciProject__coll__graph.map +0 -5
- package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1types_1_1DaVinciProject__coll__graph.md5 +0 -1
- package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1types_1_1DaVinciProject__coll__graph.png +0 -0
- package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1types_1_1DaVinciProject__inherit__graph.map +0 -5
- package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1types_1_1DaVinciProject__inherit__graph.md5 +0 -1
- package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1types_1_1DaVinciProject__inherit__graph.png +0 -0
- package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1types_1_1DaVinciResolveApp-members.html +0 -115
- package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1types_1_1DaVinciResolveApp.html +0 -288
- package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1types_1_1DaVinciResolveApp.js +0 -10
- package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1types_1_1DaVinciResolveApp__coll__graph.map +0 -5
- package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1types_1_1DaVinciResolveApp__coll__graph.md5 +0 -1
- package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1types_1_1DaVinciResolveApp__coll__graph.png +0 -0
- package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1types_1_1DaVinciResolveApp__inherit__graph.map +0 -5
- package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1types_1_1DaVinciResolveApp__inherit__graph.md5 +0 -1
- package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1types_1_1DaVinciResolveApp__inherit__graph.png +0 -0
- package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1types_1_1DaVinciTimeline-members.html +0 -110
- package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1types_1_1DaVinciTimeline.html +0 -188
- package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1types_1_1DaVinciTimeline.js +0 -5
- package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1types_1_1DaVinciTimeline__coll__graph.map +0 -5
- package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1types_1_1DaVinciTimeline__coll__graph.md5 +0 -1
- package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1types_1_1DaVinciTimeline__coll__graph.png +0 -0
- package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1types_1_1DaVinciTimeline__inherit__graph.map +0 -5
- package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1types_1_1DaVinciTimeline__inherit__graph.md5 +0 -1
- package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1types_1_1DaVinciTimeline__inherit__graph.png +0 -0
- package/mcps/davinci-mcp-professional/docs/html/classes.html +0 -111
- package/mcps/davinci-mcp-professional/docs/html/cli_8py.html +0 -135
- package/mcps/davinci-mcp-professional/docs/html/cli_8py.js +0 -11
- package/mcps/davinci-mcp-professional/docs/html/cli_8py_source.html +0 -249
- package/mcps/davinci-mcp-professional/docs/html/clipboard.js +0 -61
- package/mcps/davinci-mcp-professional/docs/html/cookie.js +0 -58
- package/mcps/davinci-mcp-professional/docs/html/dir_1a1069c9a5427270b3ccd00c87d405fe.html +0 -127
- package/mcps/davinci-mcp-professional/docs/html/dir_1a1069c9a5427270b3ccd00c87d405fe.js +0 -4
- package/mcps/davinci-mcp-professional/docs/html/dir_1a1069c9a5427270b3ccd00c87d405fe_dep.map +0 -4
- package/mcps/davinci-mcp-professional/docs/html/dir_1a1069c9a5427270b3ccd00c87d405fe_dep.md5 +0 -1
- package/mcps/davinci-mcp-professional/docs/html/dir_1a1069c9a5427270b3ccd00c87d405fe_dep.png +0 -0
- package/mcps/davinci-mcp-professional/docs/html/dir_6a5346f4427b2e9426ba2ccfd9f0b603.html +0 -128
- package/mcps/davinci-mcp-professional/docs/html/dir_6a5346f4427b2e9426ba2ccfd9f0b603.js +0 -5
- package/mcps/davinci-mcp-professional/docs/html/dir_6a5346f4427b2e9426ba2ccfd9f0b603_dep.map +0 -4
- package/mcps/davinci-mcp-professional/docs/html/dir_6a5346f4427b2e9426ba2ccfd9f0b603_dep.md5 +0 -1
- package/mcps/davinci-mcp-professional/docs/html/dir_6a5346f4427b2e9426ba2ccfd9f0b603_dep.png +0 -0
- package/mcps/davinci-mcp-professional/docs/html/dir_77c8a4d399bde190a30252eceec792ef.html +0 -127
- package/mcps/davinci-mcp-professional/docs/html/dir_77c8a4d399bde190a30252eceec792ef.js +0 -4
- package/mcps/davinci-mcp-professional/docs/html/dir_77c8a4d399bde190a30252eceec792ef_dep.map +0 -4
- package/mcps/davinci-mcp-professional/docs/html/dir_77c8a4d399bde190a30252eceec792ef_dep.md5 +0 -1
- package/mcps/davinci-mcp-professional/docs/html/dir_77c8a4d399bde190a30252eceec792ef_dep.png +0 -0
- package/mcps/davinci-mcp-professional/docs/html/dir_f94b29b73815c35a8351f4403bcc4f74.html +0 -129
- package/mcps/davinci-mcp-professional/docs/html/dir_f94b29b73815c35a8351f4403bcc4f74.js +0 -12
- package/mcps/davinci-mcp-professional/docs/html/doxygen.css +0 -2540
- package/mcps/davinci-mcp-professional/docs/html/doxygen.svg +0 -28
- package/mcps/davinci-mcp-professional/docs/html/doxygen_crawl.html +0 -170
- package/mcps/davinci-mcp-professional/docs/html/dynsections.js +0 -198
- package/mcps/davinci-mcp-professional/docs/html/files.html +0 -123
- package/mcps/davinci-mcp-professional/docs/html/files_dup.js +0 -4
- package/mcps/davinci-mcp-professional/docs/html/functions.html +0 -190
- package/mcps/davinci-mcp-professional/docs/html/functions_func.html +0 -184
- package/mcps/davinci-mcp-professional/docs/html/functions_vars.html +0 -110
- package/mcps/davinci-mcp-professional/docs/html/graph_legend.html +0 -165
- package/mcps/davinci-mcp-professional/docs/html/graph_legend.md5 +0 -1
- package/mcps/davinci-mcp-professional/docs/html/graph_legend.png +0 -0
- package/mcps/davinci-mcp-professional/docs/html/hierarchy.html +0 -123
- package/mcps/davinci-mcp-professional/docs/html/hierarchy.js +0 -18
- package/mcps/davinci-mcp-professional/docs/html/index.html +0 -200
- package/mcps/davinci-mcp-professional/docs/html/index.js +0 -9
- package/mcps/davinci-mcp-professional/docs/html/inherit_graph_0.map +0 -3
- package/mcps/davinci-mcp-professional/docs/html/inherit_graph_0.md5 +0 -1
- package/mcps/davinci-mcp-professional/docs/html/inherit_graph_0.png +0 -0
- package/mcps/davinci-mcp-professional/docs/html/inherit_graph_1.map +0 -3
- package/mcps/davinci-mcp-professional/docs/html/inherit_graph_1.md5 +0 -1
- package/mcps/davinci-mcp-professional/docs/html/inherit_graph_1.png +0 -0
- package/mcps/davinci-mcp-professional/docs/html/inherit_graph_2.map +0 -9
- package/mcps/davinci-mcp-professional/docs/html/inherit_graph_2.md5 +0 -1
- package/mcps/davinci-mcp-professional/docs/html/inherit_graph_2.png +0 -0
- package/mcps/davinci-mcp-professional/docs/html/inherit_graph_3.map +0 -13
- package/mcps/davinci-mcp-professional/docs/html/inherit_graph_3.md5 +0 -1
- package/mcps/davinci-mcp-professional/docs/html/inherit_graph_3.png +0 -0
- package/mcps/davinci-mcp-professional/docs/html/inherits.html +0 -145
- package/mcps/davinci-mcp-professional/docs/html/jquery.js +0 -204
- package/mcps/davinci-mcp-professional/docs/html/menu.js +0 -131
- package/mcps/davinci-mcp-professional/docs/html/menudata.js +0 -73
- package/mcps/davinci-mcp-professional/docs/html/namespacedavinci__mcp.html +0 -209
- package/mcps/davinci-mcp-professional/docs/html/namespacedavinci__mcp.js +0 -34
- package/mcps/davinci-mcp-professional/docs/html/namespacedavinci__mcp_1_1__version.html +0 -260
- package/mcps/davinci-mcp-professional/docs/html/namespacedavinci__mcp_1_1cli.html +0 -303
- package/mcps/davinci-mcp-professional/docs/html/namespacedavinci__mcp_1_1resolve__client.html +0 -147
- package/mcps/davinci-mcp-professional/docs/html/namespacedavinci__mcp_1_1resolve__client.js +0 -8
- package/mcps/davinci-mcp-professional/docs/html/namespacedavinci__mcp_1_1resources.html +0 -140
- package/mcps/davinci-mcp-professional/docs/html/namespacedavinci__mcp_1_1server.html +0 -144
- package/mcps/davinci-mcp-professional/docs/html/namespacedavinci__mcp_1_1server.js +0 -5
- package/mcps/davinci-mcp-professional/docs/html/namespacedavinci__mcp_1_1tools.html +0 -140
- package/mcps/davinci-mcp-professional/docs/html/namespacedavinci__mcp_1_1types.html +0 -216
- package/mcps/davinci-mcp-professional/docs/html/namespacedavinci__mcp_1_1types.js +0 -13
- package/mcps/davinci-mcp-professional/docs/html/namespacedavinci__mcp_1_1utils.html +0 -155
- package/mcps/davinci-mcp-professional/docs/html/namespacedavinci__mcp_1_1utils.js +0 -11
- package/mcps/davinci-mcp-professional/docs/html/namespacedavinci__mcp_1_1utils_1_1platform.html +0 -232
- package/mcps/davinci-mcp-professional/docs/html/namespacemembers.html +0 -173
- package/mcps/davinci-mcp-professional/docs/html/namespacemembers_func.html +0 -114
- package/mcps/davinci-mcp-professional/docs/html/namespacemembers_vars.html +0 -121
- package/mcps/davinci-mcp-professional/docs/html/namespaces.html +0 -119
- package/mcps/davinci-mcp-professional/docs/html/namespaces_dup.js +0 -4
- package/mcps/davinci-mcp-professional/docs/html/navtree.css +0 -327
- package/mcps/davinci-mcp-professional/docs/html/navtree.js +0 -901
- package/mcps/davinci-mcp-professional/docs/html/navtreedata.js +0 -68
- package/mcps/davinci-mcp-professional/docs/html/navtreeindex0.js +0 -212
- package/mcps/davinci-mcp-professional/docs/html/platform_8py.html +0 -130
- package/mcps/davinci-mcp-professional/docs/html/platform_8py.js +0 -8
- package/mcps/davinci-mcp-professional/docs/html/platform_8py_source.html +0 -245
- package/mcps/davinci-mcp-professional/docs/html/resolve__client_8py.html +0 -132
- package/mcps/davinci-mcp-professional/docs/html/resolve__client_8py.js +0 -8
- package/mcps/davinci-mcp-professional/docs/html/resolve__client_8py_source.html +0 -501
- package/mcps/davinci-mcp-professional/docs/html/resources_2____init_____8py.html +0 -125
- package/mcps/davinci-mcp-professional/docs/html/resources_2____init_____8py.js +0 -4
- package/mcps/davinci-mcp-professional/docs/html/resources_2____init_____8py_source.html +0 -169
- package/mcps/davinci-mcp-professional/docs/html/search/all_0.js +0 -22
- package/mcps/davinci-mcp-professional/docs/html/search/all_1.js +0 -4
- package/mcps/davinci-mcp-professional/docs/html/search/all_10.js +0 -4
- package/mcps/davinci-mcp-professional/docs/html/search/all_11.js +0 -4
- package/mcps/davinci-mcp-professional/docs/html/search/all_12.js +0 -4
- package/mcps/davinci-mcp-professional/docs/html/search/all_13.js +0 -4
- package/mcps/davinci-mcp-professional/docs/html/search/all_2.js +0 -4
- package/mcps/davinci-mcp-professional/docs/html/search/all_3.js +0 -15
- package/mcps/davinci-mcp-professional/docs/html/search/all_4.js +0 -26
- package/mcps/davinci-mcp-professional/docs/html/search/all_5.js +0 -4
- package/mcps/davinci-mcp-professional/docs/html/search/all_6.js +0 -6
- package/mcps/davinci-mcp-professional/docs/html/search/all_7.js +0 -25
- package/mcps/davinci-mcp-professional/docs/html/search/all_8.js +0 -7
- package/mcps/davinci-mcp-professional/docs/html/search/all_9.js +0 -9
- package/mcps/davinci-mcp-professional/docs/html/search/all_a.js +0 -6
- package/mcps/davinci-mcp-professional/docs/html/search/all_b.js +0 -6
- package/mcps/davinci-mcp-professional/docs/html/search/all_c.js +0 -9
- package/mcps/davinci-mcp-professional/docs/html/search/all_d.js +0 -10
- package/mcps/davinci-mcp-professional/docs/html/search/all_e.js +0 -11
- package/mcps/davinci-mcp-professional/docs/html/search/all_f.js +0 -5
- package/mcps/davinci-mcp-professional/docs/html/search/classes_0.js +0 -13
- package/mcps/davinci-mcp-professional/docs/html/search/files_0.js +0 -5
- package/mcps/davinci-mcp-professional/docs/html/search/files_1.js +0 -4
- package/mcps/davinci-mcp-professional/docs/html/search/files_2.js +0 -4
- package/mcps/davinci-mcp-professional/docs/html/search/files_3.js +0 -5
- package/mcps/davinci-mcp-professional/docs/html/search/files_4.js +0 -4
- package/mcps/davinci-mcp-professional/docs/html/search/files_5.js +0 -4
- package/mcps/davinci-mcp-professional/docs/html/search/functions_0.js +0 -9
- package/mcps/davinci-mcp-professional/docs/html/search/functions_1.js +0 -4
- package/mcps/davinci-mcp-professional/docs/html/search/functions_2.js +0 -10
- package/mcps/davinci-mcp-professional/docs/html/search/functions_3.js +0 -4
- package/mcps/davinci-mcp-professional/docs/html/search/functions_4.js +0 -25
- package/mcps/davinci-mcp-professional/docs/html/search/functions_5.js +0 -6
- package/mcps/davinci-mcp-professional/docs/html/search/functions_6.js +0 -7
- package/mcps/davinci-mcp-professional/docs/html/search/functions_7.js +0 -4
- package/mcps/davinci-mcp-professional/docs/html/search/functions_8.js +0 -5
- package/mcps/davinci-mcp-professional/docs/html/search/functions_9.js +0 -4
- package/mcps/davinci-mcp-professional/docs/html/search/functions_a.js +0 -4
- package/mcps/davinci-mcp-professional/docs/html/search/functions_b.js +0 -6
- package/mcps/davinci-mcp-professional/docs/html/search/namespaces_0.js +0 -13
- package/mcps/davinci-mcp-professional/docs/html/search/pages_0.js +0 -4
- package/mcps/davinci-mcp-professional/docs/html/search/pages_1.js +0 -6
- package/mcps/davinci-mcp-professional/docs/html/search/pages_2.js +0 -5
- package/mcps/davinci-mcp-professional/docs/html/search/pages_3.js +0 -4
- package/mcps/davinci-mcp-professional/docs/html/search/pages_4.js +0 -5
- package/mcps/davinci-mcp-professional/docs/html/search/pages_5.js +0 -4
- package/mcps/davinci-mcp-professional/docs/html/search/pages_6.js +0 -4
- package/mcps/davinci-mcp-professional/docs/html/search/pages_7.js +0 -4
- package/mcps/davinci-mcp-professional/docs/html/search/pages_8.js +0 -5
- package/mcps/davinci-mcp-professional/docs/html/search/pages_9.js +0 -5
- package/mcps/davinci-mcp-professional/docs/html/search/pages_a.js +0 -6
- package/mcps/davinci-mcp-professional/docs/html/search/pages_b.js +0 -4
- package/mcps/davinci-mcp-professional/docs/html/search/pages_c.js +0 -4
- package/mcps/davinci-mcp-professional/docs/html/search/pages_d.js +0 -4
- package/mcps/davinci-mcp-professional/docs/html/search/search.css +0 -377
- package/mcps/davinci-mcp-professional/docs/html/search/search.js +0 -708
- package/mcps/davinci-mcp-professional/docs/html/search/searchdata.js +0 -33
- package/mcps/davinci-mcp-professional/docs/html/search/variables_0.js +0 -14
- package/mcps/davinci-mcp-professional/docs/html/search/variables_1.js +0 -4
- package/mcps/davinci-mcp-professional/docs/html/search/variables_2.js +0 -4
- package/mcps/davinci-mcp-professional/docs/html/search/variables_3.js +0 -5
- package/mcps/davinci-mcp-professional/docs/html/search/variables_4.js +0 -4
- package/mcps/davinci-mcp-professional/docs/html/search/variables_5.js +0 -5
- package/mcps/davinci-mcp-professional/docs/html/search/variables_6.js +0 -5
- package/mcps/davinci-mcp-professional/docs/html/search/variables_7.js +0 -4
- package/mcps/davinci-mcp-professional/docs/html/search/variables_8.js +0 -4
- package/mcps/davinci-mcp-professional/docs/html/search/variables_9.js +0 -4
- package/mcps/davinci-mcp-professional/docs/html/server_8py.html +0 -129
- package/mcps/davinci-mcp-professional/docs/html/server_8py.js +0 -5
- package/mcps/davinci-mcp-professional/docs/html/server_8py_source.html +0 -318
- package/mcps/davinci-mcp-professional/docs/html/tabs.css +0 -1
- package/mcps/davinci-mcp-professional/docs/html/tools_2____init_____8py.html +0 -125
- package/mcps/davinci-mcp-professional/docs/html/tools_2____init_____8py.js +0 -4
- package/mcps/davinci-mcp-professional/docs/html/tools_2____init_____8py_source.html +0 -253
- package/mcps/davinci-mcp-professional/docs/html/types_8py.html +0 -137
- package/mcps/davinci-mcp-professional/docs/html/types_8py.js +0 -13
- package/mcps/davinci-mcp-professional/docs/html/types_8py_source.html +0 -309
- package/mcps/davinci-mcp-professional/docs/html/utils_2____init_____8py.html +0 -125
- package/mcps/davinci-mcp-professional/docs/html/utils_2____init_____8py.js +0 -4
- package/mcps/davinci-mcp-professional/docs/html/utils_2____init_____8py_source.html +0 -123
- package/mcps/davinci-mcp-professional/tests/README.md +0 -49
- package/mcps/davinci-mcp-professional/tests/__init__.py +0 -1
- package/mcps/davinci-mcp-professional/tests/conftest.py +0 -75
- package/mcps/davinci-mcp-professional/tests/test_security.py +0 -251
- package/mcps/davinci-resolve-mcp/docs/README.md +0 -56
- package/mcps/davinci-resolve-mcp/docs/SKILL.md +0 -1635
- package/mcps/davinci-resolve-mcp/docs/authoring/fuse-dctl-authoring.md +0 -242
- package/mcps/davinci-resolve-mcp/docs/authoring/script-plugin-authoring.md +0 -195
- package/mcps/davinci-resolve-mcp/docs/authoring/setting-files/README.md +0 -152
- package/mcps/davinci-resolve-mcp/docs/authoring/setting-files/references/category-patterns.md +0 -780
- package/mcps/davinci-resolve-mcp/docs/authoring/setting-files/references/controls.md +0 -259
- package/mcps/davinci-resolve-mcp/docs/authoring/setting-files/references/format.md +0 -568
- package/mcps/davinci-resolve-mcp/docs/authoring/setting-files/references/gotchas.md +0 -168
- package/mcps/davinci-resolve-mcp/docs/authoring/setting-files/references/thumbnails.md +0 -106
- package/mcps/davinci-resolve-mcp/docs/authoring/setting-files/templates/MCP Test Blur.setting +0 -46
- package/mcps/davinci-resolve-mcp/docs/authoring/setting-files/templates/MCP Test Color Tint.setting +0 -78
- package/mcps/davinci-resolve-mcp/docs/authoring/setting-files/templates/MCP Test Cross Dissolve.setting +0 -57
- package/mcps/davinci-resolve-mcp/docs/authoring/setting-files/templates/MCP Test Fade Title.setting +0 -111
- package/mcps/davinci-resolve-mcp/docs/authoring/setting-files/templates/MCP Test Glow.setting +0 -55
- package/mcps/davinci-resolve-mcp/docs/authoring/setting-files/templates/MCP Test Gradient.setting +0 -52
- package/mcps/davinci-resolve-mcp/docs/authoring/setting-files/templates/MCP Test Iris.setting +0 -127
- package/mcps/davinci-resolve-mcp/docs/authoring/setting-files/templates/MCP Test Lower Third.setting +0 -192
- package/mcps/davinci-resolve-mcp/docs/authoring/setting-files/templates/MCP Test Noise.setting +0 -74
- package/mcps/davinci-resolve-mcp/docs/authoring/setting-files/templates/MCP Test Solid Color.setting +0 -55
- package/mcps/davinci-resolve-mcp/docs/authoring/setting-files/templates/MCP Test Title.setting +0 -105
- package/mcps/davinci-resolve-mcp/docs/authoring/setting-files/templates/MCP Test Vignette.setting +0 -98
- package/mcps/davinci-resolve-mcp/docs/authoring/setting-files/templates/MCP Test Wipe.setting +0 -98
- package/mcps/davinci-resolve-mcp/docs/contributing.md +0 -82
- package/mcps/davinci-resolve-mcp/docs/guides/color-decision-guide.md +0 -427
- package/mcps/davinci-resolve-mcp/docs/guides/control-panel.md +0 -234
- package/mcps/davinci-resolve-mcp/docs/guides/editorial-decision-guide.md +0 -165
- package/mcps/davinci-resolve-mcp/docs/guides/media-analysis-guide.md +0 -763
- package/mcps/davinci-resolve-mcp/docs/guides/multicam-setup-guide.md +0 -138
- package/mcps/davinci-resolve-mcp/docs/images/control-panel/01-overview.png +0 -0
- package/mcps/davinci-resolve-mcp/docs/images/control-panel/02-review-bin-grid.png +0 -0
- package/mcps/davinci-resolve-mcp/docs/images/control-panel/03-clip-detail.png +0 -0
- package/mcps/davinci-resolve-mcp/docs/images/control-panel/04-transcript.png +0 -0
- package/mcps/davinci-resolve-mcp/docs/images/control-panel/05-shot-detail.png +0 -0
- package/mcps/davinci-resolve-mcp/docs/images/control-panel/06-inventory.png +0 -0
- package/mcps/davinci-resolve-mcp/docs/images/control-panel/07-diagnostics-resolve.png +0 -0
- package/mcps/davinci-resolve-mcp/docs/images/control-panel/08-preferences-analysis.png +0 -0
- package/mcps/davinci-resolve-mcp/docs/images/control-panel/09-ai-console.png +0 -0
- package/mcps/davinci-resolve-mcp/docs/images/control-panel/10-history.png +0 -0
- package/mcps/davinci-resolve-mcp/docs/images/control-panel/11-edit-plans.png +0 -0
- package/mcps/davinci-resolve-mcp/docs/install.md +0 -208
- package/mcps/davinci-resolve-mcp/docs/integrations/workflow-integrations.md +0 -120
- package/mcps/davinci-resolve-mcp/docs/kernels/README.md +0 -28
- package/mcps/davinci-resolve-mcp/docs/kernels/audio-fairlight-kernel.md +0 -86
- package/mcps/davinci-resolve-mcp/docs/kernels/color-grade-kernel.md +0 -103
- package/mcps/davinci-resolve-mcp/docs/kernels/extension-authoring-kernel.md +0 -101
- package/mcps/davinci-resolve-mcp/docs/kernels/fusion-composition-kernel.md +0 -121
- package/mcps/davinci-resolve-mcp/docs/kernels/media-pool-ingest-kernel.md +0 -147
- package/mcps/davinci-resolve-mcp/docs/kernels/project-lifecycle-kernel.md +0 -120
- package/mcps/davinci-resolve-mcp/docs/kernels/render-deliver-kernel.md +0 -92
- package/mcps/davinci-resolve-mcp/docs/kernels/review-annotation-kernel.md +0 -110
- package/mcps/davinci-resolve-mcp/docs/kernels/timeline-conform-interchange-kernel.md +0 -102
- package/mcps/davinci-resolve-mcp/docs/kernels/timeline-edit-kernel.md +0 -189
- package/mcps/davinci-resolve-mcp/docs/notes/codec-plugin-notes.md +0 -136
- package/mcps/davinci-resolve-mcp/docs/notes/dctl-notes.md +0 -234
- package/mcps/davinci-resolve-mcp/docs/notes/fusion-template-notes.md +0 -136
- package/mcps/davinci-resolve-mcp/docs/notes/lut-notes.md +0 -136
- package/mcps/davinci-resolve-mcp/docs/notes/openfx-notes.md +0 -120
- package/mcps/davinci-resolve-mcp/docs/process/release-process.md +0 -180
- package/mcps/davinci-resolve-mcp/docs/reference/api-coverage.md +0 -521
- package/mcps/davinci-resolve-mcp/docs/reference/api-limitations.md +0 -259
- package/mcps/davinci-resolve-mcp/docs/reference/readwrite-symmetry.md +0 -25
- package/mcps/davinci-resolve-mcp/docs/reference/resolve_scripting_api.txt +0 -1024
- package/mcps/davinci-resolve-mcp/tests/_error_envelope_helpers.py +0 -35
- package/mcps/davinci-resolve-mcp/tests/benchmark_server.py +0 -270
- package/mcps/davinci-resolve-mcp/tests/create_test_timeline.py +0 -177
- package/mcps/davinci-resolve-mcp/tests/live_api_gap_verification.py +0 -274
- package/mcps/davinci-resolve-mcp/tests/live_audio_fairlight_validation.py +0 -77
- package/mcps/davinci-resolve-mcp/tests/live_auto_sync_settings_check.py +0 -76
- package/mcps/davinci-resolve-mcp/tests/live_color_grade_validation.py +0 -89
- package/mcps/davinci-resolve-mcp/tests/live_delete_governance_check.py +0 -71
- package/mcps/davinci-resolve-mcp/tests/live_duplicate_clips_validation.py +0 -831
- package/mcps/davinci-resolve-mcp/tests/live_edit_engine_validation.py +0 -277
- package/mcps/davinci-resolve-mcp/tests/live_enum_settings_check.py +0 -89
- package/mcps/davinci-resolve-mcp/tests/live_extension_authoring_validation.py +0 -77
- package/mcps/davinci-resolve-mcp/tests/live_fuse_diagnose.py +0 -230
- package/mcps/davinci-resolve-mcp/tests/live_fuse_smoke.py +0 -250
- package/mcps/davinci-resolve-mcp/tests/live_fusion_composition_validation.py +0 -82
- package/mcps/davinci-resolve-mcp/tests/live_fusion_keyframe_validation.py +0 -116
- package/mcps/davinci-resolve-mcp/tests/live_fusion_mask_title_validation.py +0 -286
- package/mcps/davinci-resolve-mcp/tests/live_marker_validation.py +0 -439
- package/mcps/davinci-resolve-mcp/tests/live_media_pool_ingest_validation.py +0 -98
- package/mcps/davinci-resolve-mcp/tests/live_metadata_field_inventory_validation.py +0 -379
- package/mcps/davinci-resolve-mcp/tests/live_metadata_publish_validation.py +0 -192
- package/mcps/davinci-resolve-mcp/tests/live_multicam_setup_validation.py +0 -198
- package/mcps/davinci-resolve-mcp/tests/live_path_probe.py +0 -119
- package/mcps/davinci-resolve-mcp/tests/live_project_lifecycle_validation.py +0 -77
- package/mcps/davinci-resolve-mcp/tests/live_render_deliver_validation.py +0 -82
- package/mcps/davinci-resolve-mcp/tests/live_review_annotation_validation.py +0 -91
- package/mcps/davinci-resolve-mcp/tests/live_script_smoke.py +0 -141
- package/mcps/davinci-resolve-mcp/tests/live_sync_event_validation.py +0 -165
- package/mcps/davinci-resolve-mcp/tests/live_timeline_conform_validation.py +0 -77
- package/mcps/davinci-resolve-mcp/tests/live_v233_validation.py +0 -282
- package/mcps/davinci-resolve-mcp/tests/test-after-restart.bat +0 -83
- package/mcps/davinci-resolve-mcp/tests/test-after-restart.sh +0 -87
- package/mcps/davinci-resolve-mcp/tests/test_action_help.py +0 -47
- package/mcps/davinci-resolve-mcp/tests/test_action_list_drift.py +0 -163
- package/mcps/davinci-resolve-mcp/tests/test_ai_console_dispatch.py +0 -91
- package/mcps/davinci-resolve-mcp/tests/test_analysis_caps.py +0 -210
- package/mcps/davinci-resolve-mcp/tests/test_analysis_runs.py +0 -157
- package/mcps/davinci-resolve-mcp/tests/test_analysis_store.py +0 -366
- package/mcps/davinci-resolve-mcp/tests/test_api_limitations_doc.py +0 -56
- package/mcps/davinci-resolve-mcp/tests/test_api_truth.py +0 -64
- package/mcps/davinci-resolve-mcp/tests/test_api_truth_mitigations.py +0 -45
- package/mcps/davinci-resolve-mcp/tests/test_append_clip_infos_result_handling.py +0 -679
- package/mcps/davinci-resolve-mcp/tests/test_audio_fairlight_probe.py +0 -216
- package/mcps/davinci-resolve-mcp/tests/test_auto_run.py +0 -76
- package/mcps/davinci-resolve-mcp/tests/test_auto_sync_audio.py +0 -171
- package/mcps/davinci-resolve-mcp/tests/test_batch_cli.py +0 -253
- package/mcps/davinci-resolve-mcp/tests/test_brain_edits.py +0 -218
- package/mcps/davinci-resolve-mcp/tests/test_bridge_metrics.py +0 -52
- package/mcps/davinci-resolve-mcp/tests/test_bulk_match_to_hero.py +0 -219
- package/mcps/davinci-resolve-mcp/tests/test_caps_events_and_history.py +0 -147
- package/mcps/davinci-resolve-mcp/tests/test_caps_integration.py +0 -315
- package/mcps/davinci-resolve-mcp/tests/test_cdl_and_install_config.py +0 -372
- package/mcps/davinci-resolve-mcp/tests/test_clip_query.py +0 -57
- package/mcps/davinci-resolve-mcp/tests/test_cloud_settings.py +0 -62
- package/mcps/davinci-resolve-mcp/tests/test_color_grade_probe.py +0 -230
- package/mcps/davinci-resolve-mcp/tests/test_confirm_token.py +0 -85
- package/mcps/davinci-resolve-mcp/tests/test_confirm_token_preferences.py +0 -22
- package/mcps/davinci-resolve-mcp/tests/test_contracts.py +0 -81
- package/mcps/davinci-resolve-mcp/tests/test_create_subtitles_settings.py +0 -111
- package/mcps/davinci-resolve-mcp/tests/test_custom_timeline.py +0 -137
- package/mcps/davinci-resolve-mcp/tests/test_cut_executor.py +0 -87
- package/mcps/davinci-resolve-mcp/tests/test_cut_ir.py +0 -82
- package/mcps/davinci-resolve-mcp/tests/test_dashboard_transport.py +0 -47
- package/mcps/davinci-resolve-mcp/tests/test_deep_vision.py +0 -311
- package/mcps/davinci-resolve-mcp/tests/test_description_xml_shape.py +0 -71
- package/mcps/davinci-resolve-mcp/tests/test_destructive_decorator_coverage.py +0 -92
- package/mcps/davinci-resolve-mcp/tests/test_destructive_hook.py +0 -245
- package/mcps/davinci-resolve-mcp/tests/test_destructive_registry_drift.py +0 -108
- package/mcps/davinci-resolve-mcp/tests/test_edit_engine.py +0 -574
- package/mcps/davinci-resolve-mcp/tests/test_embeddings.py +0 -302
- package/mcps/davinci-resolve-mcp/tests/test_entities.py +0 -225
- package/mcps/davinci-resolve-mcp/tests/test_error_envelope.py +0 -179
- package/mcps/davinci-resolve-mcp/tests/test_exhaustive_wave_a.py +0 -101
- package/mcps/davinci-resolve-mcp/tests/test_extension_authoring_probe.py +0 -77
- package/mcps/davinci-resolve-mcp/tests/test_extract_frames.py +0 -42
- package/mcps/davinci-resolve-mcp/tests/test_extract_source_frame_ranges.py +0 -129
- package/mcps/davinci-resolve-mcp/tests/test_failure_tracker.py +0 -103
- package/mcps/davinci-resolve-mcp/tests/test_fuse_dctl_authoring.py +0 -596
- package/mcps/davinci-resolve-mcp/tests/test_fusion_comp_targeting.py +0 -269
- package/mcps/davinci-resolve-mcp/tests/test_fusion_composition_probe.py +0 -156
- package/mcps/davinci-resolve-mcp/tests/test_fusion_group_settings.py +0 -284
- package/mcps/davinci-resolve-mcp/tests/test_fusion_mask_title.py +0 -205
- package/mcps/davinci-resolve-mcp/tests/test_fusion_node_ops.py +0 -212
- package/mcps/davinci-resolve-mcp/tests/test_governance_identity.py +0 -155
- package/mcps/davinci-resolve-mcp/tests/test_grade_evidence_base.py +0 -132
- package/mcps/davinci-resolve-mcp/tests/test_import.py +0 -153
- package/mcps/davinci-resolve-mcp/tests/test_improvements.py +0 -334
- package/mcps/davinci-resolve-mcp/tests/test_inventory_exclude_bins.py +0 -139
- package/mcps/davinci-resolve-mcp/tests/test_live_api.py +0 -315
- package/mcps/davinci-resolve-mcp/tests/test_marker_params.py +0 -234
- package/mcps/davinci-resolve-mcp/tests/test_mcp_prompts.py +0 -77
- package/mcps/davinci-resolve-mcp/tests/test_mcp_resources.py +0 -117
- package/mcps/davinci-resolve-mcp/tests/test_mcp_transport.py +0 -74
- package/mcps/davinci-resolve-mcp/tests/test_media_analysis.py +0 -4637
- package/mcps/davinci-resolve-mcp/tests/test_media_pool_append_verification.py +0 -153
- package/mcps/davinci-resolve-mcp/tests/test_media_pool_changes.py +0 -105
- package/mcps/davinci-resolve-mcp/tests/test_media_pool_delete_governance.py +0 -69
- package/mcps/davinci-resolve-mcp/tests/test_media_pool_ingest_probe.py +0 -546
- package/mcps/davinci-resolve-mcp/tests/test_media_pool_walk.py +0 -79
- package/mcps/davinci-resolve-mcp/tests/test_multicam_setup.py +0 -178
- package/mcps/davinci-resolve-mcp/tests/test_object_inspection.py +0 -140
- package/mcps/davinci-resolve-mcp/tests/test_open_control_panel.py +0 -172
- package/mcps/davinci-resolve-mcp/tests/test_p1_param_validation.py +0 -57
- package/mcps/davinci-resolve-mcp/tests/test_p1_whitelist_and_delete.py +0 -81
- package/mcps/davinci-resolve-mcp/tests/test_page_lock.py +0 -52
- package/mcps/davinci-resolve-mcp/tests/test_panel_docs_drift.py +0 -77
- package/mcps/davinci-resolve-mcp/tests/test_partial_success_manifest.py +0 -113
- package/mcps/davinci-resolve-mcp/tests/test_persistence_safety.py +0 -147
- package/mcps/davinci-resolve-mcp/tests/test_prefer_handle.py +0 -89
- package/mcps/davinci-resolve-mcp/tests/test_project_cleanup.py +0 -111
- package/mcps/davinci-resolve-mcp/tests/test_project_lifecycle_probe.py +0 -256
- package/mcps/davinci-resolve-mcp/tests/test_project_lint.py +0 -79
- package/mcps/davinci-resolve-mcp/tests/test_project_spec.py +0 -246
- package/mcps/davinci-resolve-mcp/tests/test_propose_grade.py +0 -116
- package/mcps/davinci-resolve-mcp/tests/test_provenance.py +0 -88
- package/mcps/davinci-resolve-mcp/tests/test_readback.py +0 -77
- package/mcps/davinci-resolve-mcp/tests/test_readwrite_audit.py +0 -43
- package/mcps/davinci-resolve-mcp/tests/test_reel_name_writeback.py +0 -149
- package/mcps/davinci-resolve-mcp/tests/test_render_deliver_probe.py +0 -250
- package/mcps/davinci-resolve-mcp/tests/test_resolve20_api.py +0 -282
- package/mcps/davinci-resolve-mcp/tests/test_resolve21_actions.py +0 -386
- package/mcps/davinci-resolve-mcp/tests/test_resolve_ai_governance.py +0 -92
- package/mcps/davinci-resolve-mcp/tests/test_resolve_ai_ledger.py +0 -89
- package/mcps/davinci-resolve-mcp/tests/test_resolve_busy.py +0 -134
- package/mcps/davinci-resolve-mcp/tests/test_review_annotation_probe.py +0 -162
- package/mcps/davinci-resolve-mcp/tests/test_sampling_modes.py +0 -293
- package/mcps/davinci-resolve-mcp/tests/test_script_plugin.py +0 -750
- package/mcps/davinci-resolve-mcp/tests/test_shot_relationships.py +0 -254
- package/mcps/davinci-resolve-mcp/tests/test_spec_lint_wiring.py +0 -311
- package/mcps/davinci-resolve-mcp/tests/test_static_undefined_names.py +0 -45
- package/mcps/davinci-resolve-mcp/tests/test_structural_diff.py +0 -67
- package/mcps/davinci-resolve-mcp/tests/test_sync_detection.py +0 -213
- package/mcps/davinci-resolve-mcp/tests/test_thumbnail_image.py +0 -55
- package/mcps/davinci-resolve-mcp/tests/test_timeline_brain_db.py +0 -230
- package/mcps/davinci-resolve-mcp/tests/test_timeline_conform_probe.py +0 -229
- package/mcps/davinci-resolve-mcp/tests/test_timeline_editorial_helpers.py +0 -88
- package/mcps/davinci-resolve-mcp/tests/test_timeline_export_enum.py +0 -59
- package/mcps/davinci-resolve-mcp/tests/test_timeline_kernel_probe.py +0 -70
- package/mcps/davinci-resolve-mcp/tests/test_timeline_title_text_utils.py +0 -64
- package/mcps/davinci-resolve-mcp/tests/test_timeline_versioning.py +0 -419
- package/mcps/davinci-resolve-mcp/tests/test_tool_choice_hint.py +0 -42
- package/mcps/davinci-resolve-mcp/tests/test_tool_exposure.py +0 -159
- package/mcps/davinci-resolve-mcp/tests/test_tool_registration.py +0 -91
- package/mcps/davinci-resolve-mcp/tests/test_transcript_read.py +0 -74
- package/mcps/davinci-resolve-mcp/tests/test_update_check.py +0 -171
- package/mcps/davinci-resolve-mcp/tests/test_update_hardening.py +0 -171
- package/mcps/davinci-resolve-mcp/tests/test_update_history.py +0 -116
- package/mcps/davinci-resolve-mcp/tests/test_v232_helpers.py +0 -265
- package/mcps/davinci-resolve-mcp/tests/test_v233_helpers.py +0 -307
- package/mcps/davinci-resolve-mcp/tests/test_validation_guards.py +0 -108
- package/mcps/davinci-resolve-mcp/tests/test_verification_stats.py +0 -32
- package/mcps/davinci-resolve-mcp/tests/test_waveb_p2_p3.py +0 -65
- package/mcps/golem-rhino-mcp/Nexus-AI-Agents.png +0 -0
- package/mcps/golem-rhino-mcp/docs/ARCHITECTURE.md +0 -277
- package/mcps/golem-rhino-mcp/docs/PROTOCOL.md +0 -247
- package/mcps/golem-rhino-mcp/docs/TOOL_REFERENCE.md +0 -1571
- package/mcps/golem-rhino-mcp/docs/TROUBLESHOOTING.md +0 -396
- package/mcps/golem-rhino-mcp/mcp_server/Screenshot 2026-03-20 at 18.33.06.png +0 -0
- package/mcps/golem-rhino-mcp/mcp_server/Screenshot 2026-03-21 at 1.43.01.png +0 -0
- package/mcps/golem-rhino-mcp/nexus-pngs/CAIO.png +0 -0
- package/mcps/golem-rhino-mcp/nexus-pngs/CEO.png +0 -0
- package/mcps/golem-rhino-mcp/nexus-pngs/CFO.png +0 -0
- package/mcps/golem-rhino-mcp/nexus-pngs/CHRO.png +0 -0
- package/mcps/golem-rhino-mcp/nexus-pngs/CISO.png +0 -0
- package/mcps/golem-rhino-mcp/nexus-pngs/CLO.png +0 -0
- package/mcps/golem-rhino-mcp/nexus-pngs/CMO.png +0 -0
- package/mcps/golem-rhino-mcp/nexus-pngs/COO.png +0 -0
- package/mcps/golem-rhino-mcp/nexus-pngs/CPO.png +0 -0
- package/mcps/golem-rhino-mcp/nexus-pngs/CRO.png +0 -0
- package/mcps/golem-rhino-mcp/nexus-pngs/CTO.png +0 -0
- package/mcps/golem-rhino-mcp/nexus-pngs/king-hippo.png +0 -0
- package/mcps/golem-rhino-mcp/nexus-pngs/tier-0-csuite.png +0 -0
- package/mcps/golem-rhino-mcp/screenshots/city_monument.png +0 -0
- package/mcps/golem-rhino-mcp/screenshots/city_skyline.png +0 -0
- package/mcps/golem-rhino-mcp/screenshots/city_street.png +0 -0
- package/mcps/golem-rhino-mcp/screenshots/city_wide.png +0 -0
- package/mcps/golem-rhino-mcp/tests/__init__.py +0 -0
- package/mcps/golem-rhino-mcp/tests/conftest.py +0 -150
- package/mcps/golem-rhino-mcp/tests/test_connection.py +0 -543
- package/mcps/golem-rhino-mcp/tests/test_integration.py +0 -344
- package/mcps/golem-rhino-mcp/tests/test_models.py +0 -749
- package/mcps/golem-rhino-mcp/tests/test_protocol.py +0 -334
- package/mcps/golem-rhino-mcp/tests/test_tools_mock.py +0 -689
- package/mcps/tdmcp/.github/social-preview.png +0 -0
- package/mcps/tdmcp/docs/.vitepress/config.ts +0 -397
- package/mcps/tdmcp/docs/AI_PARTY_LLM_TRAINING_PLAN.md +0 -118
- package/mcps/tdmcp/docs/AI_PARTY_POC.md +0 -142
- package/mcps/tdmcp/docs/AI_PARTY_POC_PLAN.md +0 -112
- package/mcps/tdmcp/docs/CREATIVE_RAG.md +0 -346
- package/mcps/tdmcp/docs/DEPLOYMENT.md +0 -113
- package/mcps/tdmcp/docs/PROJECT_RAG.md +0 -477
- package/mcps/tdmcp/docs/ROADMAP.md +0 -1346
- package/mcps/tdmcp/docs/guide/ai-controlled-party.md +0 -215
- package/mcps/tdmcp/docs/guide/body-tracking.md +0 -169
- package/mcps/tdmcp/docs/guide/codex.md +0 -107
- package/mcps/tdmcp/docs/guide/components.md +0 -126
- package/mcps/tdmcp/docs/guide/dashboard-foh.md +0 -93
- package/mcps/tdmcp/docs/guide/faq.md +0 -62
- package/mcps/tdmcp/docs/guide/first-visual.md +0 -76
- package/mcps/tdmcp/docs/guide/generators.md +0 -230
- package/mcps/tdmcp/docs/guide/glossary.md +0 -123
- package/mcps/tdmcp/docs/guide/install.md +0 -200
- package/mcps/tdmcp/docs/guide/local-copilot.md +0 -154
- package/mcps/tdmcp/docs/guide/lops-integration.md +0 -133
- package/mcps/tdmcp/docs/guide/mcp-resources.md +0 -96
- package/mcps/tdmcp/docs/guide/mediapipe-adapters.md +0 -90
- package/mcps/tdmcp/docs/guide/physical-installations.md +0 -129
- package/mcps/tdmcp/docs/guide/prompt-cookbook.md +0 -2285
- package/mcps/tdmcp/docs/guide/recipes.md +0 -72
- package/mcps/tdmcp/docs/guide/session-profile.md +0 -90
- package/mcps/tdmcp/docs/guide/shader-park.md +0 -94
- package/mcps/tdmcp/docs/guide/show-timelines.md +0 -125
- package/mcps/tdmcp/docs/guide/troubleshooting.md +0 -121
- package/mcps/tdmcp/docs/guide/what-is-tdmcp.md +0 -62
- package/mcps/tdmcp/docs/index.md +0 -49
- package/mcps/tdmcp/docs/privacy.md +0 -85
- package/mcps/tdmcp/docs/pt/CREATIVE_RAG.md +0 -370
- package/mcps/tdmcp/docs/pt/PROJECT_RAG.md +0 -420
- package/mcps/tdmcp/docs/pt/guide/ai-controlled-party.md +0 -218
- package/mcps/tdmcp/docs/pt/guide/body-tracking.md +0 -175
- package/mcps/tdmcp/docs/pt/guide/codex.md +0 -113
- package/mcps/tdmcp/docs/pt/guide/components.md +0 -129
- package/mcps/tdmcp/docs/pt/guide/dashboard-foh.md +0 -95
- package/mcps/tdmcp/docs/pt/guide/faq.md +0 -62
- package/mcps/tdmcp/docs/pt/guide/first-visual.md +0 -81
- package/mcps/tdmcp/docs/pt/guide/generators.md +0 -243
- package/mcps/tdmcp/docs/pt/guide/glossary.md +0 -127
- package/mcps/tdmcp/docs/pt/guide/install.md +0 -196
- package/mcps/tdmcp/docs/pt/guide/local-copilot.md +0 -164
- package/mcps/tdmcp/docs/pt/guide/lops-integration.md +0 -143
- package/mcps/tdmcp/docs/pt/guide/mcp-resources.md +0 -96
- package/mcps/tdmcp/docs/pt/guide/mediapipe-adapters.md +0 -93
- package/mcps/tdmcp/docs/pt/guide/physical-installations.md +0 -135
- package/mcps/tdmcp/docs/pt/guide/prompt-cookbook.md +0 -2342
- package/mcps/tdmcp/docs/pt/guide/recipes.md +0 -59
- package/mcps/tdmcp/docs/pt/guide/session-profile.md +0 -92
- package/mcps/tdmcp/docs/pt/guide/shader-park.md +0 -95
- package/mcps/tdmcp/docs/pt/guide/show-timelines.md +0 -128
- package/mcps/tdmcp/docs/pt/guide/troubleshooting.md +0 -109
- package/mcps/tdmcp/docs/pt/guide/what-is-tdmcp.md +0 -61
- package/mcps/tdmcp/docs/pt/index.md +0 -49
- package/mcps/tdmcp/docs/pt/privacy.md +0 -91
- package/mcps/tdmcp/docs/pt/reference/architecture.md +0 -178
- package/mcps/tdmcp/docs/pt/reference/environment.md +0 -70
- package/mcps/tdmcp/docs/public/favicon.svg +0 -12
- package/mcps/tdmcp/docs/public/logo-400.png +0 -0
- package/mcps/tdmcp/docs/public/og-image.jpg +0 -0
- package/mcps/tdmcp/docs/public/robots.txt +0 -4
- package/mcps/tdmcp/docs/reference/API_STABILITY.md +0 -116
- package/mcps/tdmcp/docs/reference/architecture.md +0 -191
- package/mcps/tdmcp/docs/reference/bridge-api.md +0 -155
- package/mcps/tdmcp/docs/reference/cli.md +0 -288
- package/mcps/tdmcp/docs/reference/coverage-harness.md +0 -61
- package/mcps/tdmcp/docs/reference/environment.md +0 -116
- package/mcps/tdmcp/docs/reference/packages.md +0 -98
- package/mcps/tdmcp/docs/reference/tool-contract.md +0 -74
- package/mcps/tdmcp/docs/superpowers/plans/2026-05-29-shader-park-animus-integrations.md +0 -76
- package/mcps/tdmcp/docs/superpowers/plans/2026-06-02-doctor-fix-textport-auto-install.md +0 -131
- package/mcps/tdmcp/docs/superpowers/plans/2026-06-06-body-bubbles.md +0 -138
- package/mcps/tdmcp/docs/superpowers/plans/2026-06-08-deep-doppelganger-implementation.md +0 -201
- package/mcps/tdmcp/docs/superpowers/plans/2026-06-10-ai-party-ollama-integration.md +0 -55
- package/mcps/tdmcp/docs/superpowers/plans/2026-06-24-kinect-wall-harp-calibration-wizard.md +0 -53
- package/mcps/tdmcp/docs/superpowers/plans/2026-06-24-kinect-wall-harp-external-kinect.md +0 -286
- package/mcps/tdmcp/docs/superpowers/specs/2026-05-31-create-vector-lines-design.md +0 -308
- package/mcps/tdmcp/docs/superpowers/specs/2026-06-01-ai-controlled-party-plan.md +0 -461
- package/mcps/tdmcp/docs/superpowers/specs/2026-06-04-ai-party-ui24r-scene-arming-design.md +0 -296
- package/mcps/tdmcp/docs/superpowers/specs/2026-06-08-ai-controlled-party-producer-poc.md +0 -232
- package/mcps/tdmcp/docs/superpowers/specs/2026-06-08-deep-doppelganger-design.md +0 -136
- package/mcps/tdmcp/docs/superpowers/specs/2026-06-10-hermes-ai-party-poc.md +0 -383
- package/mcps/tdmcp/docs/superpowers/specs/2026-06-23-kinect-wall-harp-design.md +0 -340
- package/mcps/tdmcp/docs/superpowers/specs/2026-06-24-kinect-environment-diagnostic-design.md +0 -151
- package/mcps/tdmcp/docs/superpowers/specs/2026-06-24-kinect-wall-harp-external-kinect-design.md +0 -104
- package/mcps/tdmcp/training/showintent/data/curated/.gitkeep +0 -1
- package/mcps/tdmcp/training/showintent/data/curated/curated-approved.jsonl +0 -1
- package/mcps/tdmcp/training/showintent/data/curation_template.csv +0 -1
- package/mcps/tdmcp/training/showintent/data/generated/.gitkeep +0 -1
- package/mcps/tdmcp/training/showintent/data/generated/showintent-synthetic.jsonl +0 -2000
- package/mcps/tdmcp/training/showintent/data/raw/.gitkeep +0 -1
- package/mcps/tdmcp/training/showintent/data/splits/.gitkeep +0 -1
- package/mcps/tdmcp/training/showintent/data/splits/train-compact.jsonl +0 -1800
- package/mcps/tdmcp/training/showintent/data/splits/train.jsonl +0 -1800
- package/mcps/tdmcp/training/showintent/data/splits/validation-compact.jsonl +0 -200
- package/mcps/tdmcp/training/showintent/data/splits/validation.jsonl +0 -200
- package/mcps/touchdesigner-mcp/assets/import.png +0 -0
- package/mcps/touchdesigner-mcp/assets/nodes_list.png +0 -0
- package/mcps/touchdesigner-mcp/assets/particle_on_youtube.png +0 -0
- package/mcps/touchdesigner-mcp/assets/textport.png +0 -0
- package/mcps/touchdesigner-mcp/assets/tutorial.png +0 -0
- package/mcps/touchdesigner-mcp/assets/tutorial_docker.png +0 -0
- package/mcps/touchdesigner-mcp/docs/architecture.md +0 -1245
- package/mcps/touchdesigner-mcp/docs/development.ja.md +0 -197
- package/mcps/touchdesigner-mcp/docs/development.md +0 -212
- package/mcps/touchdesigner-mcp/docs/installation.ja.md +0 -370
- package/mcps/touchdesigner-mcp/docs/installation.md +0 -406
- package/mcps/unreal_mcp/Public/icon.png +0 -0
- package/mcps/unreal_mcp/docs/Engine-API-Reference.md +0 -2251
- package/mcps/unreal_mcp/docs/Roadmap.md +0 -2269
- package/mcps/unreal_mcp/docs/editor-plugin-extension.md +0 -373
- package/mcps/unreal_mcp/docs/handler-mapping.md +0 -1170
- package/mcps/unreal_mcp/docs/native-automation-progress.md +0 -431
- package/mcps/unreal_mcp/docs/testing-guide.md +0 -149
- package/mcps/unreal_mcp/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/Domains/Test/McpAutomationBridge_TestHandlers.cpp +0 -74
- package/mcps/unreal_mcp/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/Tests/McpCustomHandlerAliasTests.cpp +0 -191
- package/mcps/unreal_mcp/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/Tests/McpEnvironmentSnapshotSchemaTests.cpp +0 -192
- package/mcps/unreal_mcp/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/Tests/McpPropertyReflectionImportTests.cpp +0 -269
- package/mcps/unreal_mcp/plugins/UnrealAgent/Source/UnrealAgent/Private/Tests/UnrealAgentAcpClientProtocolAutomation.cpp +0 -152
- package/mcps/unreal_mcp/plugins/UnrealAgent/Source/UnrealAgent/Private/Tests/UnrealAgentAcpProtocolTestHelpers.cpp +0 -136
- package/mcps/unreal_mcp/plugins/UnrealAgent/Source/UnrealAgent/Private/Tests/UnrealAgentAcpProtocolTestHelpers.h +0 -49
- package/mcps/unreal_mcp/plugins/UnrealAgent/Source/UnrealAgent/Private/Tests/UnrealAgentAutomationTestDelegates.h +0 -12
- package/mcps/unreal_mcp/plugins/UnrealAgent/Source/UnrealAgent/Private/Tests/UnrealAgentAutomationTests.cpp +0 -34
- package/mcps/unreal_mcp/plugins/UnrealAgent/Source/UnrealAgent/Private/Tests/UnrealAgentAutomationWidgetHelpers.cpp +0 -116
- package/mcps/unreal_mcp/plugins/UnrealAgent/Source/UnrealAgent/Private/Tests/UnrealAgentAutomationWidgetHelpers.h +0 -15
- package/mcps/unreal_mcp/plugins/UnrealAgent/Source/UnrealAgent/Private/Tests/UnrealAgentFakeAcpScript.cpp +0 -76
- package/mcps/unreal_mcp/plugins/UnrealAgent/Source/UnrealAgent/Private/Tests/UnrealAgentPanelAutomation.h +0 -35
- package/mcps/unreal_mcp/plugins/UnrealAgent/Source/UnrealAgent/Private/Tests/UnrealAgentPanelAutomationFixture.cpp +0 -118
- package/mcps/unreal_mcp/plugins/UnrealAgent/Source/UnrealAgent/Private/Tests/UnrealAgentPanelHistoryChecks.cpp +0 -162
- package/mcps/unreal_mcp/plugins/UnrealAgent/Source/UnrealAgent/Private/Tests/UnrealAgentPanelLayoutChecks.cpp +0 -158
- package/mcps/unreal_mcp/plugins/UnrealAgent/Source/UnrealAgent/Private/Tests/UnrealAgentPanelTranscriptChecks.cpp +0 -117
- package/mcps/unreal_mcp/plugins/UnrealAgent/Source/UnrealAgent/Private/Tests/UnrealAgentStudioKitAutomationChecks.cpp +0 -155
- package/mcps/unreal_mcp/tests/AGENTS.md +0 -73
- package/mcps/unreal_mcp/tests/expectation-utils.mjs +0 -29
- package/mcps/unreal_mcp/tests/heartbeat-progress.test.mjs +0 -143
- package/mcps/unreal_mcp/tests/integration/get_ai_info_characterization.mjs +0 -216
- package/mcps/unreal_mcp/tests/integration.mjs +0 -94
- package/mcps/unreal_mcp/tests/mcp-tools/core/control-actor.test.mjs +0 -114
- package/mcps/unreal_mcp/tests/mcp-tools/core/control-editor.test.mjs +0 -86
- package/mcps/unreal_mcp/tests/mcp-tools/core/inspect.test.mjs +0 -85
- package/mcps/unreal_mcp/tests/mcp-tools/core/manage-asset.test.mjs +0 -302
- package/mcps/unreal_mcp/tests/mcp-tools/core/manage-blueprint.test.mjs +0 -331
- package/mcps/unreal_mcp/tests/mcp-tools/core/manage-level.test.mjs +0 -73
- package/mcps/unreal_mcp/tests/mcp-tools/core/manage-tools.test.mjs +0 -30
- package/mcps/unreal_mcp/tests/mcp-tools/core/system-control.test.mjs +0 -205
- package/mcps/unreal_mcp/tests/mcp-tools/gameplay/animation-physics.test.mjs +0 -277
- package/mcps/unreal_mcp/tests/mcp-tools/gameplay/manage-ai.test.mjs +0 -299
- package/mcps/unreal_mcp/tests/mcp-tools/gameplay/manage-character.test.mjs +0 -85
- package/mcps/unreal_mcp/tests/mcp-tools/gameplay/manage-combat.test.mjs +0 -106
- package/mcps/unreal_mcp/tests/mcp-tools/gameplay/manage-effect.test.mjs +0 -108
- package/mcps/unreal_mcp/tests/mcp-tools/gameplay/manage-gas.test.mjs +0 -96
- package/mcps/unreal_mcp/tests/mcp-tools/gameplay/manage-interaction.test.mjs +0 -122
- package/mcps/unreal_mcp/tests/mcp-tools/gameplay/manage-inventory.test.mjs +0 -146
- package/mcps/unreal_mcp/tests/mcp-tools/utility/behavior-tree-get-tree.test.mjs +0 -233
- package/mcps/unreal_mcp/tests/mcp-tools/utility/manage-audio.test.mjs +0 -160
- package/mcps/unreal_mcp/tests/mcp-tools/utility/manage-behavior-tree.test.mjs +0 -223
- package/mcps/unreal_mcp/tests/mcp-tools/utility/manage-networking.test.mjs +0 -635
- package/mcps/unreal_mcp/tests/mcp-tools/utility/manage-sequence.test.mjs +0 -95
- package/mcps/unreal_mcp/tests/mcp-tools/world/build-environment.test.mjs +0 -282
- package/mcps/unreal_mcp/tests/mcp-tools/world/manage-geometry.test.mjs +0 -130
- package/mcps/unreal_mcp/tests/mcp-tools/world/manage-level-structure.test.mjs +0 -149
- package/mcps/unreal_mcp/tests/mcp-tools/world/manage-pcg.test.mjs +0 -471
- package/mcps/unreal_mcp/tests/mcp-tools/world/rendering-cases.cjs +0 -775
- package/mcps/unreal_mcp/tests/mcp-tools/world/rendering.test.mjs +0 -15
- package/mcps/unreal_mcp/tests/native-mcp-parity-audit.mjs +0 -260
- package/mcps/unreal_mcp/tests/native-mcp-source-parser.mjs +0 -229
- package/mcps/unreal_mcp/tests/native-mcp-typescript-parity-parser.mjs +0 -121
- package/mcps/unreal_mcp/tests/parameter-audit-cli.mjs +0 -23
- package/mcps/unreal_mcp/tests/parameter-audit-context.mjs +0 -14
- package/mcps/unreal_mcp/tests/parameter-audit-coverage.mjs +0 -164
- package/mcps/unreal_mcp/tests/parameter-audit-schema.mjs +0 -190
- package/mcps/unreal_mcp/tests/parameter-audit-suites.mjs +0 -218
- package/mcps/unreal_mcp/tests/parameter-combination-audit.mjs +0 -37
- package/mcps/unreal_mcp/tests/test-runner-response-utils.mjs +0 -132
- package/mcps/unreal_mcp/tests/test-runner.mjs +0 -1798
- package/mcps/unreal_mcp/tests/unit/automation/bridge_host_validation.test.ts +0 -165
- package/mcps/unreal_mcp/tests/unit/config.test.ts +0 -205
- package/mcps/unreal_mcp/tests/unit/native_mcp_parity_audit.test.ts +0 -281
- package/mcps/unreal_mcp/tests/unit/native_mcp_parity_comment_filtering.test.ts +0 -175
- package/mcps/unreal_mcp/tests/unit/parameter_audit_schema.test.ts +0 -273
- package/mcps/unreal_mcp/tests/unit/plugin/automation_event_stream_contracts.test.ts +0 -195
- package/mcps/unreal_mcp/tests/unit/plugin/environment_asset_name_contracts.test.ts +0 -115
- package/mcps/unreal_mcp/tests/unit/plugin/environment_build_adapter_contracts.test.ts +0 -377
- package/mcps/unreal_mcp/tests/unit/plugin/environment_snapshot_path_contracts.test.ts +0 -122
- package/mcps/unreal_mcp/tests/unit/plugin/handler_routing_contracts.test.ts +0 -120
- package/mcps/unreal_mcp/tests/unit/plugin/level_lighting_contracts.test.ts +0 -125
- package/mcps/unreal_mcp/tests/unit/plugin/plugin_manifest_contracts.test.ts +0 -154
- package/mcps/unreal_mcp/tests/unit/plugin/plugin_packaging_contracts.test.ts +0 -124
- package/mcps/unreal_mcp/tests/unit/plugin/runtime_behavior_contracts.test.ts +0 -372
- package/mcps/unreal_mcp/tests/unit/plugin/security_contracts.test.ts +0 -81
- package/mcps/unreal_mcp/tests/unit/plugin/source_structure.test.ts +0 -101
- package/mcps/unreal_mcp/tests/unit/plugin/source_structure_contracts.test.ts +0 -103
- package/mcps/unreal_mcp/tests/unit/plugin/websocket_origin_contracts.test.ts +0 -25
- package/mcps/unreal_mcp/tests/unit/server_shutdown_contracts.test.ts +0 -33
- package/mcps/unreal_mcp/tests/unit/source_structure.test.ts +0 -79
- package/mcps/unreal_mcp/tests/unit/test_runner.test.ts +0 -342
- package/mcps/unreal_mcp/tests/unit/test_runner_response_utils.test.ts +0 -105
- package/mcps/unreal_mcp/tests/unit/tools/asset_handlers_security.test.ts +0 -246
- package/mcps/unreal_mcp/tests/unit/tools/behavior_tree_get_tree.test.ts +0 -20
- package/mcps/unreal_mcp/tests/unit/tools/blueprint_handlers.test.ts +0 -122
- package/mcps/unreal_mcp/tests/unit/tools/editor.test.ts +0 -56
- package/mcps/unreal_mcp/tests/unit/tools/handler_structure.test.ts +0 -59
- package/mcps/unreal_mcp/tests/unit/tools/inspect_handlers.test.ts +0 -231
- package/mcps/unreal_mcp/tests/unit/tools/level.test.ts +0 -56
- package/mcps/unreal_mcp/tests/unit/tools/level_security.test.ts +0 -45
- package/mcps/unreal_mcp/tests/unit/tools/lighting_timeout_propagation.test.ts +0 -123
- package/mcps/windows-computer-use-mcp/cua-reports/app-1781542686.png +0 -0
- package/mcps/windows-computer-use-mcp/cua-reports/bridge-1781542694.png +0 -0
- package/mcps/windows-computer-use-mcp/cua-reports/bridge-ok-1781442393.png +0 -0
- package/mcps/windows-computer-use-mcp/cua-reports/bridge-ok-1781442915.png +0 -0
- package/mcps/windows-computer-use-mcp/cua-reports/bridge-snap-1781444105.png +0 -0
- package/mcps/windows-computer-use-mcp/cua-reports/bridge-snap-1781444214.png +0 -0
- package/mcps/windows-computer-use-mcp/cua-reports/bridge-snap-1781457035.png +0 -0
- package/mcps/windows-computer-use-mcp/cua-reports/cua-smoke-1781440024.png +0 -0
- package/mcps/windows-computer-use-mcp/cua-reports/cua-smoke-1781440234.png +0 -0
- package/mcps/windows-computer-use-mcp/cua-reports/cua-smoke-1781442383.png +0 -0
- package/mcps/windows-computer-use-mcp/cua-reports/cua-smoke-1781442906.png +0 -0
- package/mcps/windows-computer-use-mcp/cua-reports/cua-smoke-1781444096.png +0 -0
- package/mcps/windows-computer-use-mcp/cua-reports/cua-smoke-1781444209.png +0 -0
- package/mcps/windows-computer-use-mcp/cua-reports/cua-smoke-1781457029.png +0 -0
- package/mcps/windows-computer-use-mcp/cua-reports/nav/dashboard-1781542713.png +0 -0
- package/mcps/windows-computer-use-mcp/cua-reports/nav/help-1781542738.png +0 -0
- package/mcps/windows-computer-use-mcp/cua-reports/nav/logging-1781542722.png +0 -0
- package/mcps/windows-computer-use-mcp/cua-reports/nav/nav-dashboard-1781444225.png +0 -0
- package/mcps/windows-computer-use-mcp/cua-reports/nav/nav-dashboard-1781457051.png +0 -0
- package/mcps/windows-computer-use-mcp/cua-reports/nav/nav-help-1781444245.png +0 -0
- package/mcps/windows-computer-use-mcp/cua-reports/nav/nav-help-1781457075.png +0 -0
- package/mcps/windows-computer-use-mcp/cua-reports/nav/nav-logging-1781444232.png +0 -0
- package/mcps/windows-computer-use-mcp/cua-reports/nav/nav-logging-1781457059.png +0 -0
- package/mcps/windows-computer-use-mcp/cua-reports/nav/nav-settings-1781444239.png +0 -0
- package/mcps/windows-computer-use-mcp/cua-reports/nav/nav-settings-1781457067.png +0 -0
- package/mcps/windows-computer-use-mcp/cua-reports/nav/settings-1781542730.png +0 -0
- package/mcps/windows-computer-use-mcp/cua-reports/nav-dashboard-1781442925.png +0 -0
- package/mcps/windows-computer-use-mcp/cua-reports/nav-help-1781442941.png +0 -0
- package/mcps/windows-computer-use-mcp/cua-reports/nav-logging-1781442930.png +0 -0
- package/mcps/windows-computer-use-mcp/cua-reports/nav-settings-1781442936.png +0 -0
- package/mcps/windows-computer-use-mcp/docs/ARCHITECTURE.md +0 -46
- package/mcps/windows-computer-use-mcp/docs/ASSESSMENT_BY_CURSOR_2026-06-14_CUA_NSIS.md +0 -383
- package/mcps/windows-computer-use-mcp/docs/AUTOMATION_ASSERT_SPEC.md +0 -202
- package/mcps/windows-computer-use-mcp/docs/CUA_PARITY.md +0 -39
- package/mcps/windows-computer-use-mcp/docs/DEVELOPMENT.md +0 -51
- package/mcps/windows-computer-use-mcp/docs/MEMOPS_CUA.md +0 -147
- package/mcps/windows-computer-use-mcp/docs/PRD.md +0 -93
- package/mcps/windows-computer-use-mcp/docs/README.md +0 -34
- package/mcps/windows-computer-use-mcp/docs/ROADMAP.md +0 -142
- package/mcps/windows-computer-use-mcp/docs/SAFETY.md +0 -138
- package/mcps/windows-computer-use-mcp/docs/TESTING.md +0 -90
- package/mcps/windows-computer-use-mcp/docs/TOOLS.md +0 -80
- package/mcps/windows-computer-use-mcp/docs/TOOL_DOCSTRING_STANDARD.md +0 -538
- package/mcps/windows-computer-use-mcp/docs/_stale/AHK_VS_PYWINAUTO_COMPARISON.md +0 -353
- package/mcps/windows-computer-use-mcp/docs/_stale/ASSESSMENT.md +0 -54
- package/mcps/windows-computer-use-mcp/docs/_stale/ASSESSMENT_2026-06-08.md +0 -309
- package/mcps/windows-computer-use-mcp/docs/_stale/COMPLETE_DOCUMENTATION_STRUCTURE.md +0 -5
- package/mcps/windows-computer-use-mcp/docs/_stale/CUA_ASSISTANT_TODO.md +0 -84
- package/mcps/windows-computer-use-mcp/docs/_stale/CUA_PARITY_ROADMAP.md +0 -81
- package/mcps/windows-computer-use-mcp/docs/_stale/CUA_ROADMAP.md +0 -306
- package/mcps/windows-computer-use-mcp/docs/_stale/DESKTOP_APP.md +0 -125
- package/mcps/windows-computer-use-mcp/docs/_stale/DOCUMENTATION_INDEX.md +0 -59
- package/mcps/windows-computer-use-mcp/docs/_stale/GLAMA_AI_CRITICISM_ANALYSIS.md +0 -259
- package/mcps/windows-computer-use-mcp/docs/_stale/GLAMA_AI_PLATFORM.md +0 -175
- package/mcps/windows-computer-use-mcp/docs/_stale/GLAMA_AI_RESCAN_GUIDE.md +0 -216
- package/mcps/windows-computer-use-mcp/docs/_stale/GOLD_STATUS_ACHIEVEMENT.md +0 -197
- package/mcps/windows-computer-use-mcp/docs/_stale/LLM_REPO_CONTEXT.md +0 -7
- package/mcps/windows-computer-use-mcp/docs/_stale/MCP_PRODUCTION_CHECKLIST.md +0 -105
- package/mcps/windows-computer-use-mcp/docs/_stale/OFFICE_BACKGROUND_MATRIX.md +0 -19
- package/mcps/windows-computer-use-mcp/docs/_stale/OPERATOR_PROTOCOL.md +0 -37
- package/mcps/windows-computer-use-mcp/docs/_stale/ORGANIZATION_SUMMARY.md +0 -305
- package/mcps/windows-computer-use-mcp/docs/_stale/RENAME-TO-AUTOMATION-MCP.md +0 -191
- package/mcps/windows-computer-use-mcp/docs/_stale/STATUS_REPORT.md +0 -288
- package/mcps/windows-computer-use-mcp/docs/_stale/TARGETS_PAGE_SKETCH.md +0 -977
- package/mcps/windows-computer-use-mcp/docs/_stale/TOOL_DOCSTRING_MIGRATION.md +0 -365
- package/mcps/windows-computer-use-mcp/docs/_stale/USAGE_SCENARIOS.md +0 -697
- package/mcps/windows-computer-use-mcp/docs/_stale/desktop-state-tool.md +0 -464
- package/mcps/windows-computer-use-mcp/docs/_stale/development/README.md +0 -18
- package/mcps/windows-computer-use-mcp/docs/_stale/development/archive/AI_DEVELOPMENT_RULES.md +0 -928
- package/mcps/windows-computer-use-mcp/docs/_stale/development/archive/AI_DEVELOPMENT_TOOLS_COMPARISON.md +0 -364
- package/mcps/windows-computer-use-mcp/docs/_stale/development/archive/BULLETPROOF_MCP_GUIDE.md +0 -793
- package/mcps/windows-computer-use-mcp/docs/_stale/development/archive/DEBUGGING_LESSONS_LEARNED.md +0 -635
- package/mcps/windows-computer-use-mcp/docs/_stale/development/archive/DEVELOPMENT_PAIN_POINTS.md +0 -699
- package/mcps/windows-computer-use-mcp/docs/_stale/development/archive/FILE_VALIDATION_COMPLETE.md +0 -410
- package/mcps/windows-computer-use-mcp/docs/_stale/development/archive/FILE_VALIDATION_GUIDE.md +0 -575
- package/mcps/windows-computer-use-mcp/docs/_stale/development/archive/LINK_PARSER_FIX.md +0 -769
- package/mcps/windows-computer-use-mcp/docs/_stale/development/archive/MCP_SYNC_DEBUGGING_GUIDE.md +0 -512
- package/mcps/windows-computer-use-mcp/docs/_stale/development/archive/PYTHON_DEPENDENCY_HELL_FIX.md +0 -568
- package/mcps/windows-computer-use-mcp/docs/_stale/development/archive/PYTHON_SNIPPETS_USAGE_GUIDE.md +0 -717
- package/mcps/windows-computer-use-mcp/docs/_stale/development/archive/README.md +0 -25
- package/mcps/windows-computer-use-mcp/docs/_stale/development/archive/SYNC_HEALTH_IMPROVEMENTS_SUMMARY.md +0 -496
- package/mcps/windows-computer-use-mcp/docs/_stale/development/archive/SYNC_HEALTH_INTEGRATION.md +0 -381
- package/mcps/windows-computer-use-mcp/docs/_stale/development/archive/SYSTEMATIC_PROJECT_UPDATES.md +0 -532
- package/mcps/windows-computer-use-mcp/docs/_stale/development/archive/mcp-prompt-templates-vs-docstrings.md +0 -657
- package/mcps/windows-computer-use-mcp/docs/_stale/development/archive/mcp-tool-docstring-best-practices.md +0 -439
- package/mcps/windows-computer-use-mcp/docs/_stale/development/archive/mcp-tool-documentation-standards.md +0 -1153
- package/mcps/windows-computer-use-mcp/docs/_stale/glama-platform/CI_CD_GLAMA_OPTIMIZATION_GUIDE.md +0 -850
- package/mcps/windows-computer-use-mcp/docs/_stale/glama-platform/GLAMA_AI_CRITICISM_ANALYSIS.md +0 -259
- package/mcps/windows-computer-use-mcp/docs/_stale/glama-platform/GLAMA_AI_OPTIMIZATION_SUMMARY.md +0 -204
- package/mcps/windows-computer-use-mcp/docs/_stale/glama-platform/GLAMA_AI_PLATFORM.md +0 -175
- package/mcps/windows-computer-use-mcp/docs/_stale/glama-platform/GLAMA_AI_RESCAN_GUIDE.md +0 -216
- package/mcps/windows-computer-use-mcp/docs/_stale/glama-platform/GLAMA_GITHUB_APP_SETUP.md +0 -199
- package/mcps/windows-computer-use-mcp/docs/_stale/glama-platform/GLAMA_INTEGRATION.md +0 -181
- package/mcps/windows-computer-use-mcp/docs/_stale/glama-platform/GLAMA_RESCAN_EMAIL.txt +0 -43
- package/mcps/windows-computer-use-mcp/docs/_stale/glama-platform/GOLD_STATUS_ACHIEVEMENT.md +0 -197
- package/mcps/windows-computer-use-mcp/docs/_stale/glama-platform/GOLD_STATUS_UPDATE_2025_10_08.md +0 -378
- package/mcps/windows-computer-use-mcp/docs/_stale/glama-platform/README.md +0 -632
- package/mcps/windows-computer-use-mcp/docs/_stale/legacy/requirements-fastmcp.txt +0 -8
- package/mcps/windows-computer-use-mcp/docs/_stale/legacy/requirements_minimal.txt +0 -4
- package/mcps/windows-computer-use-mcp/docs/_stale/mcp-technical/CLAUDE_DESKTOP_DEBUGGING.md +0 -561
- package/mcps/windows-computer-use-mcp/docs/_stale/mcp-technical/CONTAINERIZATION_GUIDELINES.md +0 -707
- package/mcps/windows-computer-use-mcp/docs/_stale/mcp-technical/MCP_PRODUCTION_CHECKLIST.md +0 -101
- package/mcps/windows-computer-use-mcp/docs/_stale/mcp-technical/MONITORING_STACK_DEPLOYMENT.md +0 -532
- package/mcps/windows-computer-use-mcp/docs/_stale/mcp-technical/README.md +0 -266
- package/mcps/windows-computer-use-mcp/docs/_stale/mcp-technical/TROUBLESHOOTING_FASTMCP_2.12.md +0 -670
- package/mcps/windows-computer-use-mcp/docs/_stale/mcpb-packaging/MCPB_BUILDING_GUIDE.md +0 -1921
- package/mcps/windows-computer-use-mcp/docs/_stale/mcpb-packaging/MCPB_IMPLEMENTATION_SUMMARY.md +0 -387
- package/mcps/windows-computer-use-mcp/docs/_stale/mcpb-packaging/PYPI_PUBLISHING_GUIDE.md +0 -789
- package/mcps/windows-computer-use-mcp/docs/_stale/mcpb-packaging/README.md +0 -404
- package/mcps/windows-computer-use-mcp/docs/_stale/notepadpp/COMMUNITY_AND_SUPPORT.md +0 -976
- package/mcps/windows-computer-use-mcp/docs/_stale/notepadpp/LANGUAGE_SERVER_PROTOCOL_EXPLAINED.md +0 -416
- package/mcps/windows-computer-use-mcp/docs/_stale/notepadpp/MCP_TOOL_CORRUPTION_ISSUE.md +0 -279
- package/mcps/windows-computer-use-mcp/docs/_stale/notepadpp/NOTEPADPP_ALTERNATIVES.md +0 -308
- package/mcps/windows-computer-use-mcp/docs/_stale/notepadpp/NOTEPADPP_COLOR_FIX_2025_10_08.md +0 -187
- package/mcps/windows-computer-use-mcp/docs/_stale/notepadpp/NOTEPADPP_COMPLETE_GUIDE.md +0 -1259
- package/mcps/windows-computer-use-mcp/docs/_stale/notepadpp/NOTEPADPP_NUCLEAR_REINSTALL_2025_10_08.md +0 -196
- package/mcps/windows-computer-use-mcp/docs/_stale/notepadpp/NPP_WHITE_ON_WHITE_BATTLE_PLAN.md +0 -336
- package/mcps/windows-computer-use-mcp/docs/_stale/notepadpp/PLUGIN_ECOSYSTEM_COMPREHENSIVE.md +0 -887
- package/mcps/windows-computer-use-mcp/docs/_stale/notepadpp/README.md +0 -472
- package/mcps/windows-computer-use-mcp/docs/_stale/repository-protection/BACKUP_AND_RECOVERY_GUIDE.md +0 -455
- package/mcps/windows-computer-use-mcp/docs/_stale/repository-protection/BRANCH_PROTECTION_SETTINGS.md +0 -236
- package/mcps/windows-computer-use-mcp/docs/_stale/repository-protection/BRANCH_STRATEGY_AND_AI_WORKFLOW.md +0 -616
- package/mcps/windows-computer-use-mcp/docs/_stale/repository-protection/README.md +0 -333
- package/mcps/windows-computer-use-mcp/docs/_stale/serena/SERENA_COPY_TO_OTHER_REPOS.md +0 -159
- package/mcps/windows-computer-use-mcp/docs/_stale/serena/SERENA_GUIDE.md +0 -632
- package/mcps/windows-computer-use-mcp/docs/_stale/serena/SERENA_INSTALL_AND_TEST.md +0 -569
- package/mcps/windows-computer-use-mcp/docs/_stale/serena/SERENA_NEXT_STEPS.md +0 -351
- package/mcps/windows-computer-use-mcp/docs/_stale/serena/SERENA_QUICK_INSTALL.md +0 -195
- package/mcps/windows-computer-use-mcp/docs/_stale/state-tool-implementation.md +0 -498
- package/mcps/windows-computer-use-mcp/docs/composing-with-playwright.md +0 -55
- package/mcps/windows-computer-use-mcp/docs/cua-nsis-certification.md +0 -101
- package/mcps/windows-computer-use-mcp/docs/ocr.md +0 -107
- package/mcps/windows-computer-use-mcp/docs/py-stack.md +0 -47
- package/mcps/windows-computer-use-mcp/native/icons/icon.png +0 -0
- package/mcps/windows-computer-use-mcp/screenshot_demo.png +0 -0
- package/mcps/windows-computer-use-mcp/src/windows_computer_use_mcp/templates/vroidstudio/default/export_complete_toast.png +0 -0
- package/mcps/windows-computer-use-mcp/src/windows_computer_use_mcp/templates/vroidstudio/default/export_dialog_title.png +0 -0
- package/mcps/windows-computer-use-mcp/src/windows_computer_use_mcp/templates/vroidstudio/default/file_dialog_path_field.png +0 -0
- package/mcps/windows-computer-use-mcp/src/windows_computer_use_mcp/templates/vroidstudio/default/sample_tile_female.png +0 -0
- package/mcps/windows-computer-use-mcp/tests/README.md +0 -155
- package/mcps/windows-computer-use-mcp/tests/__init__.py +0 -1
- package/mcps/windows-computer-use-mcp/tests/conftest.py +0 -281
- package/mcps/windows-computer-use-mcp/tests/conftest_env.py +0 -116
- package/mcps/windows-computer-use-mcp/tests/e2e/conftest.py +0 -96
- package/mcps/windows-computer-use-mcp/tests/e2e/test_libreoffice_cua_loop.py +0 -72
- package/mcps/windows-computer-use-mcp/tests/test_app_integration.py +0 -83
- package/mcps/windows-computer-use-mcp/tests/test_app_profiles.py +0 -28
- package/mcps/windows-computer-use-mcp/tests/test_automation_assert.py +0 -185
- package/mcps/windows-computer-use-mcp/tests/test_automation_dialog.py +0 -43
- package/mcps/windows-computer-use-mcp/tests/test_automation_elements.py +0 -138
- package/mcps/windows-computer-use-mcp/tests/test_automation_keyboard.py +0 -57
- package/mcps/windows-computer-use-mcp/tests/test_automation_mouse.py +0 -57
- package/mcps/windows-computer-use-mcp/tests/test_automation_shortcut.py +0 -41
- package/mcps/windows-computer-use-mcp/tests/test_automation_task.py +0 -115
- package/mcps/windows-computer-use-mcp/tests/test_automation_windows.py +0 -105
- package/mcps/windows-computer-use-mcp/tests/test_cameras_api.py +0 -43
- package/mcps/windows-computer-use-mcp/tests/test_cua_parity.py +0 -51
- package/mcps/windows-computer-use-mcp/tests/test_dependency_failures.py +0 -39
- package/mcps/windows-computer-use-mcp/tests/test_desktop_state.py +0 -99
- package/mcps/windows-computer-use-mcp/tests/test_face_recognition.py +0 -238
- package/mcps/windows-computer-use-mcp/tests/test_face_recognition_api.py +0 -161
- package/mcps/windows-computer-use-mcp/tests/test_images/README.md +0 -28
- package/mcps/windows-computer-use-mcp/tests/test_mission.py +0 -42
- package/mcps/windows-computer-use-mcp/tests/test_portmanteau_windows_mock.py +0 -173
- package/mcps/windows-computer-use-mcp/tests/test_portmanteau_windows_real.py +0 -139
- package/mcps/windows-computer-use-mcp/tests/test_retry.py +0 -26
- package/mcps/windows-computer-use-mcp/tests/test_safety_api.py +0 -24
- package/mcps/windows-computer-use-mcp/tests/test_template_library.py +0 -53
- package/mcps/windows-computer-use-mcp/tests/test_utils.py +0 -185
- package/mcps/windows-computer-use-mcp/web_sota/src-tauri/icons/icon.png +0 -0
- package/skills/global_config/google-sheets-automation/SKILL.md +0 -150
- package/skills/global_config/senior-fullstack/SKILL.md +0 -221
- package/skills/global_config/senior-fullstack/references/architecture_patterns.md +0 -103
- package/skills/global_config/senior-fullstack/references/development_workflows.md +0 -103
- package/skills/global_config/senior-fullstack/references/tech_stack_guide.md +0 -103
- package/skills/global_config/senior-fullstack/scripts/code_quality_analyzer.py +0 -114
- package/skills/global_config/senior-fullstack/scripts/fullstack_scaffolder.py +0 -114
- package/skills/global_config/senior-fullstack/scripts/project_scaffolder.py +0 -114
|
@@ -1,2342 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: "Prompts prontos para criar visuais com o tdmcp, o servidor MCP para TouchDesigner — feedback, áudio-reativo, partículas, arte generativa e mais."
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
<script setup>
|
|
6
|
-
import { withBase } from "vitepress";
|
|
7
|
-
</script>
|
|
8
|
-
|
|
9
|
-
# Receitas de prompt
|
|
10
|
-
|
|
11
|
-
Copie, troque as palavras e deixe do seu jeito. Estão agrupadas pelo que você quer
|
|
12
|
-
criar. Depois de qualquer build, você sempre pode dizer **"me mostre um preview"**
|
|
13
|
-
e então ajustar: *"mais quente", "mais devagar", "mais contraste", "adicione um
|
|
14
|
-
glitch".*
|
|
15
|
-
|
|
16
|
-
::: tip Como descrever
|
|
17
|
-
Descreva o **resultado e a sensação**, não os nós. "Um túnel lento, hipnótico e
|
|
18
|
-
azul-profundo" funciona melhor do que nomear operadores. A IA escolhe os
|
|
19
|
-
operadores.
|
|
20
|
-
:::
|
|
21
|
-
|
|
22
|
-
A mídia desta página fica reservada para o resultado visual ou a superfície
|
|
23
|
-
performável que o prompt cria. Se o prompt gera relatório, config, README ou
|
|
24
|
-
health check, ele fica só em texto em vez de mostrar uma ilustração decorativa do
|
|
25
|
-
comando.
|
|
26
|
-
|
|
27
|
-
## Starters de receita (v0.8.2)
|
|
28
|
-
|
|
29
|
-
Use estes quando quiser começar por uma receita first-party validada e só depois
|
|
30
|
-
pedir uma passada criativa. São bons para workshop e ensaio porque partem de redes
|
|
31
|
-
checadas por schema, não de topologia inventada do zero.
|
|
32
|
-
|
|
33
|
-
> *"Aplique `audio_reactive_basic`, use um tom de teste se o mic não estiver
|
|
34
|
-
> disponível, então ligue a cor de saída ao nível RMS e me mostre o caminho do Null
|
|
35
|
-
> de áudio."*
|
|
36
|
-
|
|
37
|
-
<video :src="withBase('/examples/recipe-audio-reactive-basic.mp4')" autoplay loop muted playsinline style="width:100%;max-width:480px;border-radius:8px;display:block"></video>
|
|
38
|
-
|
|
39
|
-
*Uma cadeia compacta de audio-in / spectrum / RMS com Null CHOP estável e saída TOP
|
|
40
|
-
pronta para `bind_to_channel` ou expressões manuais.*
|
|
41
|
-
|
|
42
|
-
> *"Aplique `keyframe_animation_basic`, adicione cinco keyframes legíveis de câmera
|
|
43
|
-
> ou objeto e exponha um controle Speed para eu ensaiar o movimento sem abrir o
|
|
44
|
-
> grafo."*
|
|
45
|
-
|
|
46
|
-
<video :src="withBase('/examples/recipe-keyframe-animation-basic.mp4')" autoplay loop muted playsinline style="width:100%;max-width:480px;border-radius:8px;display:block"></video>
|
|
47
|
-
|
|
48
|
-
*O starter com Animation COMP coloca movimento declarativo primeiro: você autoria os
|
|
49
|
-
canais no Animation Editor do TD e usa o CHOP resultante para guiar o look.*
|
|
50
|
-
|
|
51
|
-
> *"Aplique `pose_skeleton_standalone` com a tabela interna de landmarks, renderize
|
|
52
|
-
> juntas como pontos brilhantes e ossos, e deixe notas para trocar por uma fonte de
|
|
53
|
-
> pose ao vivo depois."*
|
|
54
|
-
|
|
55
|
-
<video :src="withBase('/examples/recipe-pose-skeleton-standalone.mp4')" autoplay loop muted playsinline style="width:100%;max-width:480px;border-radius:8px;display:block"></video>
|
|
56
|
-
|
|
57
|
-
*Um renderizador de pose sem câmera: landmarks estáticos alimentam um skeleton em
|
|
58
|
-
Script SOP, útil para testar o look antes de existir fonte MediaPipe ou Kinect.*
|
|
59
|
-
|
|
60
|
-
> *"Aplique `particle_system_basic`, faça o emissor subir como cinza e exponha
|
|
61
|
-
> BirthRate, Lifetime e ForceY como os primeiros controles performáveis."*
|
|
62
|
-
|
|
63
|
-
<video :src="withBase('/examples/recipe-particle-system-basic.mp4')" autoplay loop muted playsinline style="width:100%;max-width:480px;border-radius:8px;display:block"></video>
|
|
64
|
-
|
|
65
|
-
*Um starter com Particle SOP, câmera, luz, material point-sprite e Null de saída.
|
|
66
|
-
Simples para ensinar, completo o bastante para tocar ao vivo.*
|
|
67
|
-
|
|
68
|
-
> *"Aplique `feedback_network_basic`, ajuste blur e decay para virar um túnel
|
|
69
|
-
> recursivo de alto contraste e mantenha a rede mínima para eu aprender o loop."*
|
|
70
|
-
|
|
71
|
-
<video :src="withBase('/examples/recipe-feedback-network-basic.mp4')" autoplay loop muted playsinline style="width:100%;max-width:480px;border-radius:8px;display:block"></video>
|
|
72
|
-
|
|
73
|
-
*Seed de noise, composite feedback, blur, level decay e Null de saída: a menor rede
|
|
74
|
-
de feedback performável que ainda se comporta como instrumento visual.*
|
|
75
|
-
|
|
76
|
-
> *"Aplique `glsl_shader_basic`, deixe o plasma inline editável e exponha uTime,
|
|
77
|
-
> uScale, uColorA e uColorB para eu combinar com a paleta do show."*
|
|
78
|
-
|
|
79
|
-
<video :src="withBase('/examples/recipe-glsl-shader-basic.mp4')" autoplay loop muted playsinline style="width:100%;max-width:480px;border-radius:8px;display:block"></video>
|
|
80
|
-
|
|
81
|
-
*Uma receita minúscula de GLSL TOP para trabalho shader-first. Ela cai como rede
|
|
82
|
-
válida e mantém o source perto para ensino ou remix rápido.*
|
|
83
|
-
|
|
84
|
-
> *"Aplique `kinetic_text_audio_reactive`, escreva uma palavra gigante de cue e
|
|
85
|
-
> depois ligue a expressão de brightness ao canal de grave do analyze."*
|
|
86
|
-
|
|
87
|
-
<video :src="withBase('/examples/recipe-kinetic-text-audio-reactive.mp4')" autoplay loop muted playsinline style="width:100%;max-width:480px;border-radius:8px;display:block"></video>
|
|
88
|
-
|
|
89
|
-
*Text TOP com cadeia transform / level ao lado de um analisador de grave. A receita
|
|
90
|
-
deixa a expressão de áudio manual explícita em vez de escondê-la em dados inválidos.*
|
|
91
|
-
|
|
92
|
-
> *"Aplique `decks_layer_mixer`, deixe os decks A e B com cores claramente
|
|
93
|
-
> diferentes, então adicione uma nota de Cross e gain por deck para o VJ."*
|
|
94
|
-
|
|
95
|
-
<video :src="withBase('/examples/recipe-decks-layer-mixer.mp4')" autoplay loop muted playsinline style="width:100%;max-width:480px;border-radius:8px;display:block"></video>
|
|
96
|
-
|
|
97
|
-
*A receita de decks first-party é um esqueleto pequeno de mixer: duas fontes, dois
|
|
98
|
-
gains, um bus composite e uma saída program estável.*
|
|
99
|
-
|
|
100
|
-
> *"Aplique `depth_displacement_post`, use o depth map sintético para deformar um
|
|
101
|
-
> ramp, então finalize com blur e level grade para parecer um post pass real."*
|
|
102
|
-
|
|
103
|
-
<video :src="withBase('/examples/recipe-depth-displacement-post.mp4')" autoplay loop muted playsinline style="width:100%;max-width:480px;border-radius:8px;display:block"></video>
|
|
104
|
-
|
|
105
|
-
*Uma pilha depth/displace/post sem hardware, boa para ensaiar looks de profundidade
|
|
106
|
-
antes de existir câmera depth ou mapa gerado.*
|
|
107
|
-
|
|
108
|
-
> *"Aplique `kinetic_text_path_follow`, coloque o título do show num caminho circular
|
|
109
|
-
> e me diga exatamente quais expressões preciso ligar depois do import."*
|
|
110
|
-
|
|
111
|
-
<video :src="withBase('/examples/recipe-kinetic-text-path-follow.mp4')" autoplay loop muted playsinline style="width:100%;max-width:480px;border-radius:8px;display:block"></video>
|
|
112
|
-
|
|
113
|
-
*Um template de ligação manual para tipo seguindo caminho: CHOPs sin/cos
|
|
114
|
-
determinísticos guiam o movimento enquanto a receita continua válida no schema.*
|
|
115
|
-
|
|
116
|
-
> *"Aplique `optical_flow_particles`, roteie o movimento da câmera para o drift das
|
|
117
|
-
> partículas e deixe a saída pronta para um feedback de trails."*
|
|
118
|
-
|
|
119
|
-
<video :src="withBase('/examples/recipe-optical-flow-particles.mp4')" autoplay loop muted playsinline style="width:100%;max-width:480px;border-radius:8px;display:block"></video>
|
|
120
|
-
|
|
121
|
-
*Vídeo ao vivo vira campo de optical-flow e empurra partículas. É a receita
|
|
122
|
-
camera-reactive para usar quando o movimento do corpo deve deixar rastros visíveis.*
|
|
123
|
-
|
|
124
|
-
> *"Aplique `atemporal_bodytrack_glitch_timeline` neste clipe vertical: comece limpo,
|
|
125
|
-
> deixe glitches verdes curtos entrarem como bug de câmera, volte ao normal entre os
|
|
126
|
-
> filtros e use o tracker vermelho só como pontos pequenos, linhas e rastros -- sem
|
|
127
|
-
> círculos grandes."*
|
|
128
|
-
|
|
129
|
-
<video :src="withBase('/examples/atemporal-bodytrack-glitch.mp4')" autoplay loop muted playsinline style="width:100%;max-width:360px;border-radius:8px;display:block"></video>
|
|
130
|
-
|
|
131
|
-
*Um template reutilizável de bug-timeline: filmagem limpa, saltos atemporais verdes,
|
|
132
|
-
respiros normais e um branch vermelho de body tracking que parece object tracking,
|
|
133
|
-
não decoração circular. Anime `SceneMode` para performar o edit e adicione ticks /
|
|
134
|
-
ruído de glitch apenas enquanto um branch filtrado estiver ativo.*
|
|
135
|
-
|
|
136
|
-
> *"Aplique `mediapipe_face_overlay`, escureça a webcam por baixo, tinja os pontos de
|
|
137
|
-
> landmark e deixe o overlay fácil de trocar do demo para o adaptador de face ao
|
|
138
|
-
> vivo."*
|
|
139
|
-
|
|
140
|
-
<video :src="withBase('/examples/recipe-mediapipe-face-overlay.mp4')" autoplay loop muted playsinline style="width:100%;max-width:480px;border-radius:8px;display:block"></video>
|
|
141
|
-
|
|
142
|
-
*Uma receita de face overlay que espelha o setup novo de face tracking: webcam,
|
|
143
|
-
CHOP de landmarks, dots instanciados, render e composite.*
|
|
144
|
-
|
|
145
|
-
> *"Aplique `scene_timeline_demo`, monte três cenas óbvias e exponha play, rate e
|
|
146
|
-
> fade para eu demonstrar timing de cue em um minuto."*
|
|
147
|
-
|
|
148
|
-
<video :src="withBase('/examples/recipe-scene-timeline-demo.mp4')" autoplay loop muted playsinline style="width:100%;max-width:480px;border-radius:8px;display:block"></video>
|
|
149
|
-
|
|
150
|
-
*Um demo de três cenas guiado por timer que ensina raciocínio de show-clock sem
|
|
151
|
-
exigir um setlist runner completo.*
|
|
152
|
-
|
|
153
|
-
> *"Aplique `scene_3d_basic`, coloque uma esfera sob câmera e luz, então ligue
|
|
154
|
-
> RotateY a uma rampa de tempo depois do import."*
|
|
155
|
-
|
|
156
|
-
<video :src="withBase('/examples/recipe-scene-3d-basic.mp4')" autoplay loop muted playsinline style="width:100%;max-width:480px;border-radius:8px;display:block"></video>
|
|
157
|
-
|
|
158
|
-
*A menor cena 3D renderizável: geometria, câmera, luz, Render TOP e Null. Boa base
|
|
159
|
-
para exercícios de material, instancing e audio-reactive.*
|
|
160
|
-
|
|
161
|
-
> *"Aplique `video_synth_oscillator`, faça um synth de cor com oscilador Lissajous e
|
|
162
|
-
> mantenha uFreqX / uFreqY / uColor expostos para ajuste ao vivo."*
|
|
163
|
-
|
|
164
|
-
<video :src="withBase('/examples/recipe-video-synth-oscillator.mp4')" autoplay loop muted playsinline style="width:100%;max-width:480px;border-radius:8px;display:block"></video>
|
|
165
|
-
|
|
166
|
-
*Um starter de video synth procedural, sem filmagem: um GLSL TOP desenha uma curva
|
|
167
|
-
de oscilador brilhante com controles seguros para show.*
|
|
168
|
-
|
|
169
|
-
> *"Aplique `kinetic_text_standalone`, faça a palavra respirar com LFO e deixe os
|
|
170
|
-
> bindings pós-import documentados para um iniciante terminar."*
|
|
171
|
-
|
|
172
|
-
<video :src="withBase('/examples/recipe-kinetic-text-standalone.mp4')" autoplay loop muted playsinline style="width:100%;max-width:480px;border-radius:8px;display:block"></video>
|
|
173
|
-
|
|
174
|
-
*Uma receita de kinetic type sem áudio para title cards, contagens regressivas e
|
|
175
|
-
labels de cue quando audio-reactivity ainda não é necessária.*
|
|
176
|
-
|
|
177
|
-
## Generativo & abstrato
|
|
178
|
-
|
|
179
|
-
> *"Crie um túnel de feedback a partir de ruído com blur e displace, adicione bloom
|
|
180
|
-
> e me mostre um preview."*
|
|
181
|
-
|
|
182
|
-
<video :src="withBase('/examples/feedback-tunnel.mp4')" autoplay loop muted playsinline style="width:100%;max-width:480px;border-radius:8px;display:block"></video>
|
|
183
|
-
|
|
184
|
-
*Uma rede de feedback de alto contraste (blur + displace + bloom), ajustada como
|
|
185
|
-
showpiece em vez de uma demonstração técnica simples.*
|
|
186
|
-
|
|
187
|
-
> *"Faça um padrão de reação-difusão em evolução, em verdes e pretos, lento e
|
|
188
|
-
> orgânico."*
|
|
189
|
-
|
|
190
|
-
<video :src="withBase('/examples/reaction-diffusion.mp4')" autoplay loop muted playsinline style="width:100%;max-width:480px;border-radius:8px;display:block"></video>
|
|
191
|
-
|
|
192
|
-
*Padrão estilo reação-difusão na GPU, com contraste mais forte e cor pronta para
|
|
193
|
-
palco, não uma simulação de laboratório chapada.*
|
|
194
|
-
|
|
195
|
-
> *"Construa uma paisagem de ruído fluida em 3D com uma câmera orbitando."*
|
|
196
|
-
|
|
197
|
-
<video :src="withBase('/examples/noise-landscape.mp4')" autoplay loop muted playsinline style="width:100%;max-width:560px;border-radius:8px;display:block"></video>
|
|
198
|
-
|
|
199
|
-
*Um terreno 3D deslocado por ruído.*
|
|
200
|
-
|
|
201
|
-
> *"Me dê um visual de atrator estranho Lorenz com partículas brilhantes no preto,
|
|
202
|
-
> engrossado como tubo e evoluindo só enquanto a timeline toca."*
|
|
203
|
-
|
|
204
|
-
<video :src="withBase('/examples/strange-attractor.mp4')" autoplay loop muted playsinline style="width:100%;max-width:480px;border-radius:8px;display:block"></video>
|
|
205
|
-
|
|
206
|
-
*`create_strange_attractor` integra ODEs Lorenz / Aizawa / Halvorsen num buffer
|
|
207
|
-
rolante de Script CHOP, renderiza a trilha como geometria SOP e pode engrossar a
|
|
208
|
-
linha com Tube SOP para virar um caminho 3D real.*
|
|
209
|
-
|
|
210
|
-
> *"Me dê um visual de sintetizador de vídeo analógico dos anos 70 — padrões de
|
|
211
|
-
> interferência suaves e scanlines rolando em verde-azulado elétrico e rosa."*
|
|
212
|
-
|
|
213
|
-
<video :src="withBase('/examples/analog-video-synth.mp4')" autoplay loop muted playsinline style="width:100%;max-width:480px;border-radius:8px;display:block"></video>
|
|
214
|
-
|
|
215
|
-
*Padrões procedurais de lissajous / interferência / scanline animados ao longo do
|
|
216
|
-
tempo com controles de frequência e cor — uma lavagem de osciloscópio estilo
|
|
217
|
-
Rutt-Etra autossuficiente, sem precisar de nenhuma filmagem.*
|
|
218
|
-
|
|
219
|
-
> *"Construa um túnel fractal por raymarching que eu possa atravessar voando, ciano
|
|
220
|
-
> brilhante no preto, com um botão de Velocidade."*
|
|
221
|
-
|
|
222
|
-
<video :src="withBase('/examples/raymarched-tunnel.mp4')" autoplay loop muted playsinline style="width:100%;max-width:480px;border-radius:8px;display:block"></video>
|
|
223
|
-
|
|
224
|
-
*Uma cena de campo de distância com sinal (SDF) renderizada inteiramente num GLSL
|
|
225
|
-
TOP — um túnel infinito que você atravessa voando, com controles de Velocidade da
|
|
226
|
-
câmera e de cor. Sem nós de geometria, só matemática.*
|
|
227
|
-
|
|
228
|
-
> *"Construa um campo SDF programável com uma esfera subtraindo uma caixa e uma
|
|
229
|
-
> união suave de torus, ciano-para-magenta, com controles vivos de CameraZ /
|
|
230
|
-
> StepCount / Rotate."*
|
|
231
|
-
|
|
232
|
-
<video :src="withBase('/examples/sdf-field-csg-raymarch.mp4')" autoplay loop muted playsinline style="width:100%;max-width:480px;border-radius:8px;display:block"></video>
|
|
233
|
-
|
|
234
|
-
*`create_sdf_field` é o raymarcher CSG mais novo: componha primitivas esfera /
|
|
235
|
-
caixa / torus com union, intersect, subtract e smooth blend, então performe o campo
|
|
236
|
-
com controles SDF expostos em vez de editar shader no meio do show.*
|
|
237
|
-
|
|
238
|
-
> *"Esculpa um blob de metaball macio e morfando em 3D que respira devagar,
|
|
239
|
-
> superfície iridescente num palco escuro."*
|
|
240
|
-
|
|
241
|
-
<video :src="withBase('/examples/shader-park-blobs.mp4')" autoplay loop muted playsinline style="width:100%;max-width:480px;border-radius:8px;display:block"></video>
|
|
242
|
-
|
|
243
|
-
*Uma escultura SDF estilo Shader Park (esferas e ruído mesclados) compilada num GLSL
|
|
244
|
-
TOP, com controles de Velocidade de morph e de superfície — volumes orgânicos, tipo
|
|
245
|
-
argila, que pulsam e se fundem.*
|
|
246
|
-
|
|
247
|
-
> *"Use estas três imagens de moodboard — oceano enevoado, cobre oxidado e luz fria
|
|
248
|
-
> de catedral — e construa um sistema generativo compatível com post-FX."*
|
|
249
|
-
|
|
250
|
-
<video :src="withBase('/examples/moodboard-to-system-dispatch.mp4')" autoplay loop muted playsinline style="width:100%;max-width:480px;border-radius:8px;display:block"></video>
|
|
251
|
-
|
|
252
|
-
*`moodboard_to_system` lê de 1 a 6 imagens, extrai intenção de paleta / movimento /
|
|
253
|
-
gerador com o LLM configurado (ou fallback determinístico) e dispara um sistema
|
|
254
|
-
Layer-1 compatível, com pós-processamento.*
|
|
255
|
-
|
|
256
|
-
> *"Faça crescer um sistema orgânico de galhos a partir de um único caule, verde
|
|
257
|
-
> musgo no preto, e deixe a taxa de crescimento reagir à música."*
|
|
258
|
-
|
|
259
|
-
<video :src="withBase('/examples/growth-system-branching.mp4')" autoplay loop muted playsinline style="width:100%;max-width:480px;border-radius:8px;display:block"></video>
|
|
260
|
-
|
|
261
|
-
*Um gerador de L-system / turtle-growth engrossado como geometria SOP renderizável,
|
|
262
|
-
com controles de gerações, ângulo de galho, passo e espessura — útil para vinhas,
|
|
263
|
-
raízes, circuitos e line-art viva.*
|
|
264
|
-
|
|
265
|
-
> *"Empacote os seis clássicos generativos canônicos — túnel de feedback, barras de
|
|
266
|
-
> espectro, paisagem de ruído, galáxia de partículas, reaction-diffusion e glitch de
|
|
267
|
-
> webcam — como um bundle portátil de receitas para importar em outra máquina."*
|
|
268
|
-
|
|
269
|
-
<video :src="withBase('/examples/generative-classics-pack.mp4')" autoplay loop muted playsinline style="width:100%;max-width:480px;border-radius:8px;display:block"></video>
|
|
270
|
-
|
|
271
|
-
*`generative_classics_pack` começa como uma lista read-only de receitas internas
|
|
272
|
-
disponíveis, então pode escrever um JSON compatível com `import_recipe_bundle`. É o
|
|
273
|
-
export rápido de "clássicos confiáveis" para workshops, instalações novas e rigs
|
|
274
|
-
offline.*
|
|
275
|
-
|
|
276
|
-
> *"Me puxe para um túnel de feedback infinito com zoom da minha webcam, deixando
|
|
277
|
-
> rastros e girando, magenta profundo."*
|
|
278
|
-
|
|
279
|
-
<video :src="withBase('/examples/feedback-tunnel-infinite.mp4')" autoplay loop muted playsinline style="width:100%;max-width:480px;border-radius:8px;display:block"></video>
|
|
280
|
-
|
|
281
|
-
*Um loop de feedback de zoom infinito dedicado (zoom + rotação + decay) semeado a
|
|
282
|
-
partir de qualquer fonte, com botões de Zoom / Giro / Rastro — o clássico túnel de
|
|
283
|
-
"cair dentro da tela".*
|
|
284
|
-
|
|
285
|
-
> *"Preencha o quadro com uma simulação de fluido de tinta em tempo real, ciano e
|
|
286
|
-
> magenta, com splats de áudio no bumbo mas auto-LFO quando não houver mic ligado."*
|
|
287
|
-
|
|
288
|
-
<video :src="withBase('/examples/fluid-sim-ink.mp4')" autoplay loop muted playsinline style="width:100%;max-width:480px;border-radius:8px;display:block"></video>
|
|
289
|
-
|
|
290
|
-
*`create_fluid_sim` constrói a pilha de advection / pressão / vorticity / dye em
|
|
291
|
-
GLSL TOPs, expõe controles de viscosidade / dissipação / splat e consegue se
|
|
292
|
-
autoanimar antes de você ligar uma fonte ao vivo.*
|
|
293
|
-
|
|
294
|
-
> *"Transforme este poster em milhares de partículas que explodem no drop e depois
|
|
295
|
-
> voltam como mola para formar a imagem original."*
|
|
296
|
-
|
|
297
|
-
<video :src="withBase('/examples/image-particles-burst.mp4')" autoplay loop muted playsinline style="width:100%;max-width:480px;border-radius:8px;display:block"></video>
|
|
298
|
-
|
|
299
|
-
*`image_to_particles` amostra os pixels da fonte como posições e cores de repouso, e
|
|
300
|
-
usa um loop de partículas na GPU para a imagem dissolver, espalhar e se recompor no
|
|
301
|
-
tempo da música.*
|
|
302
|
-
|
|
303
|
-
> *"Esculpe uma catedral de esferas fundidas e anéis de toroide em pura matemática
|
|
304
|
-
> SDF, iluminada por dentro de violeta, e me dê um botão de Camera-Z pra voar pra
|
|
305
|
-
> dentro."*
|
|
306
|
-
|
|
307
|
-
<video :src="withBase('/examples/sdf-csg-cathedral.mp4')" autoplay loop muted playsinline style="width:100%;max-width:480px;border-radius:8px;display:block"></video>
|
|
308
|
-
|
|
309
|
-
*Um único GLSL TOP faz raymarch de uma árvore CSG (union / subtract / smooth-blend de
|
|
310
|
-
primitivas esfera + caixa + torus) com controles ao vivo de CameraZ, StepCount,
|
|
311
|
-
Speed, ColorA / ColorB e Background. A saída é um sólido infinitamente detalhado por
|
|
312
|
-
onde você voa sem instanciar nenhum SOP.*
|
|
313
|
-
|
|
314
|
-
## Estudos artísticos & instalações
|
|
315
|
-
|
|
316
|
-
Estes prompts são para artistas visuais primeiro: loops de galeria, imagens de
|
|
317
|
-
palco, estudos de câmera, transformações com cara de impressão e peças de instalação.
|
|
318
|
-
|
|
319
|
-
> *"Faça uma murmuração de 4.000 agentes minúsculos respirando como um bando, com
|
|
320
|
-
> botões Separation / Alignment / Cohesion para eu performar devagar."*
|
|
321
|
-
|
|
322
|
-
<video :src="withBase('/examples/particle-flock-murmuration.mp4')" autoplay loop muted playsinline style="width:100%;max-width:480px;border-radius:8px;display:block"></video>
|
|
323
|
-
|
|
324
|
-
*`create_particle_flock` é a superfície de boids: um sistema comportamental na GPU em
|
|
325
|
-
que a imagem não é um efeito de partículas colado por cima, mas uma multidão em
|
|
326
|
-
movimento com regras sociais próprias. Bom para bandos, cardumes, campos de pessoas
|
|
327
|
-
e movimento ambiente de galeria.*
|
|
328
|
-
|
|
329
|
-
> *"Construa uma galáxia de partículas com curl-noise: centenas de milhares de
|
|
330
|
-
> pontos orbitando em braços suaves, reagindo devagar ao movimento da sala."*
|
|
331
|
-
|
|
332
|
-
<video :src="withBase('/examples/gpu-particle-curl-galaxy.mp4')" autoplay loop muted playsinline style="width:100%;max-width:480px;border-radius:8px;display:block"></video>
|
|
333
|
-
|
|
334
|
-
*`create_gpu_particle_field` é o campo de alta contagem para névoa, estrelas, cinza,
|
|
335
|
-
plâncton e poeira. Peça `reactivity:"motion"` quando uma câmera deve energizar o
|
|
336
|
-
drift sem transformar a peça num efeito literal de webcam.*
|
|
337
|
-
|
|
338
|
-
> *"Transforme o performer num recorte preto com aro ciano/magenta e use essa
|
|
339
|
-
> máscara para revelar um mundo generativo atrás dele."*
|
|
340
|
-
|
|
341
|
-
<video :src="withBase('/examples/depth-silhouette-neon-mask.mp4')" autoplay loop muted playsinline style="width:100%;max-width:480px;border-radius:8px;display:block"></video>
|
|
342
|
-
|
|
343
|
-
*`create_depth_silhouette` dá uma matte limpa para instalações: fonte sintética no
|
|
344
|
-
ensaio, câmera/depth source no local, controles de blur/threshold/invert para
|
|
345
|
-
ajustar a borda e uma máscara de saída pronta para composição.*
|
|
346
|
-
|
|
347
|
-
> *"Rastreie quatro blobs brilhantes da câmera e deixe cada um puxar um campo de cor,
|
|
348
|
-
> como visitantes movendo lanternas pela projeção."*
|
|
349
|
-
|
|
350
|
-
<video :src="withBase('/examples/blob-reactive-installation.mp4')" autoplay loop muted playsinline style="width:100%;max-width:480px;border-radius:8px;display:block"></video>
|
|
351
|
-
|
|
352
|
-
*`create_blob_reactive` transforma pontos de luz, mãos ou objetos rastreados em
|
|
353
|
-
canais como `blob0_x`, `blob0_y` e `blob0_size`. Use em instalações participativas
|
|
354
|
-
onde corpos controlam a obra sem ninguém segurar um controlador.*
|
|
355
|
-
|
|
356
|
-
> *"Rotoscope esta fonte em linhas vetoriais fluindo: congele um frame, trace os
|
|
357
|
-
> contornos e mantenha um botão de pulse para eu capturar um novo desenho ao vivo."*
|
|
358
|
-
|
|
359
|
-
<video :src="withBase('/examples/vector-lines-rotoscope.mp4')" autoplay loop muted playsinline style="width:100%;max-width:480px;border-radius:8px;display:block"></video>
|
|
360
|
-
|
|
361
|
-
*`create_vector_lines` é uma ponte entre vídeo e desenho: prepara uma máscara,
|
|
362
|
-
congela, traça como geometria SOP editável e depois renderiza ou exporta. Útil para
|
|
363
|
-
estudos de plotter, rotoscope ao vivo, testes de contorno para laser e fluxos de
|
|
364
|
-
impressão.*
|
|
365
|
-
|
|
366
|
-
> *"Faça uma tapeçaria de cellular automata, azul e âmbar, com regras que pareçam
|
|
367
|
-
> pixels tecidos crescendo pela parede."*
|
|
368
|
-
|
|
369
|
-
<video :src="withBase('/examples/cellular-automata-tapestry.mp4')" autoplay loop muted playsinline style="width:100%;max-width:480px;border-radius:8px;display:block"></video>
|
|
370
|
-
|
|
371
|
-
*`create_generative_art` aceita `cellular_automata` como estudo promptável. Funciona
|
|
372
|
-
especialmente bem quando o artista quer um tecido vivo, não um efeito de câmera nem
|
|
373
|
-
um visual musical.*
|
|
374
|
-
|
|
375
|
-
> *"Preencha a projeção do chão com trilhas de slime-mold: caminhos luminosos
|
|
376
|
-
> procuram, se sobrepõem, desaparecem e deixam memória de tinta molhada."*
|
|
377
|
-
|
|
378
|
-
<video :src="withBase('/examples/slime-trails-ink.mp4')" autoplay loop muted playsinline style="width:100%;max-width:480px;border-radius:8px;display:block"></video>
|
|
379
|
-
|
|
380
|
-
*`create_simulation` com `type:"slime"` entrega trilhas decaindo e movimento de
|
|
381
|
-
busca. Fica entre reaction-diffusion e fluid sim: menos diagrama científico, mais
|
|
382
|
-
rastro vivo.*
|
|
383
|
-
|
|
384
|
-
> *"Gere uma paleta harmônica contida a partir de um tom azul-esverdeado, construa
|
|
385
|
-
> uma faixa de gradiente e use isso como fonte de cor para o próximo visual."*
|
|
386
|
-
|
|
387
|
-
<video :src="withBase('/examples/palette-harmony-study.mp4')" autoplay loop muted playsinline style="width:100%;max-width:480px;border-radius:8px;display:block"></video>
|
|
388
|
-
|
|
389
|
-
*`create_palette` não é só encanamento utilitário: é ferramenta de direção de arte.
|
|
390
|
-
Use regras de harmonia para definir primeiro o mundo visual, depois alimente grade,
|
|
391
|
-
partículas, cor de SDF, tipografia ou projection mapping com esses swatches.*
|
|
392
|
-
|
|
393
|
-
> *"Crie traços de fitas fluindo a partir de um vector field, como caligrafia de
|
|
394
|
-
> tinta em longa exposição se movendo sobre preto."*
|
|
395
|
-
|
|
396
|
-
<video :src="withBase('/examples/flow-field-ribbons.mp4')" autoplay loop muted playsinline style="width:100%;max-width:480px;border-radius:8px;display:block"></video>
|
|
397
|
-
|
|
398
|
-
*`create_generative_art` com `flow_field` é a versão promptável de movimento em
|
|
399
|
-
linhas: boa para rastros caligráficos, mapas de corrente, desenhos de vento e
|
|
400
|
-
estudos de movimento sem dados externos.*
|
|
401
|
-
|
|
402
|
-
> *"Faça um relevo escultórico a partir de uma imagem: uma superfície iluminada de
|
|
403
|
-
> lado que sobe e desce como peça de parede de galeria, não um filtro de vídeo plano."*
|
|
404
|
-
|
|
405
|
-
<video :src="withBase('/examples/sculptural-relief-gallery.mp4')" autoplay loop muted playsinline style="width:100%;max-width:480px;border-radius:8px;display:block"></video>
|
|
406
|
-
|
|
407
|
-
*`create_depth_displacement` transforma brilho ou profundidade em forma 2.5D real,
|
|
408
|
-
com luz e controles de câmera orbitável. Use quando a imagem deve virar objeto.*
|
|
409
|
-
|
|
410
|
-
## Reativo a áudio
|
|
411
|
-
|
|
412
|
-
> *"Construa um espectro radial que floresce no grave e solta faíscas cromáticas
|
|
413
|
-
> nos agudos."*
|
|
414
|
-
|
|
415
|
-
**O que você recebe:** uma cadeia de análise (espectro + nível + batida) alimentando
|
|
416
|
-
um visual, geralmente com um botão de *Sensibilidade*. Veja a
|
|
417
|
-
[nota sobre permissão de microfone](/pt/guide/troubleshooting#macos-microphone-camera-permission)
|
|
418
|
-
no macOS, ou peça um **tom de teste** em vez do mic enquanto experimenta.
|
|
419
|
-
|
|
420
|
-
> *"Construa uma bola 3D de espinhos que se projetam para fora no grave e brilham
|
|
421
|
-
> nos agudos — mostre o preview num beat de teste."*
|
|
422
|
-
|
|
423
|
-
<video :src="withBase('/examples/audio-reactive-3d-spikes.mp4')" autoplay loop muted playsinline style="width:100%;max-width:480px;border-radius:8px;display:block"></video>
|
|
424
|
-
|
|
425
|
-
*Uma geometria 3D renderizada cujo deslocamento, escala e rotação são ligados a
|
|
426
|
-
bandas de áudio ao vivo (grave / médio / agudo) com um botão de Sensibilidade — um
|
|
427
|
-
sólido espinhento e respirante que dança com a faixa. Usa uma fonte sintética, então
|
|
428
|
-
dá preview sem permissão do mic.*
|
|
429
|
-
|
|
430
|
-
> *"Faça sidechain desta camada com o bumbo para ela abaixar e voltar pulsando a
|
|
431
|
-
> cada batida, como um compressor."*
|
|
432
|
-
|
|
433
|
-
*Um seguidor de envelope com ataque/release e gate/duck — faça sidechain da
|
|
434
|
-
opacidade ou do brilho de uma camada com o bumbo para ela pulsar no tempo, indo além
|
|
435
|
-
de um simples Lag de suavização. O "pump de sidechain" que todo produtor de
|
|
436
|
-
eletrônica conhece, aplicado a um visual.*
|
|
437
|
-
|
|
438
|
-
> *"Divida esta faixa em cor por classe de nota, flashes de transiente e uma
|
|
439
|
-
> estrutura lenta de energia, então conecte cada fluxo a uma parte diferente do
|
|
440
|
-
> visual."*
|
|
441
|
-
|
|
442
|
-
<video :src="withBase('/examples/chroma-transient-energy.mp4')" autoplay loop muted playsinline style="width:100%;max-width:480px;border-radius:8px;display:block"></video>
|
|
443
|
-
|
|
444
|
-
*Três caminhos novos de análise musical: `create_chroma_reactive` expõe 12 canais de
|
|
445
|
-
classe de nota, `create_transient_reactive` separa percussão de sustain, e
|
|
446
|
-
`create_energy_structure` detecta build / drop / breakdown com limiares adaptativos.*
|
|
447
|
-
|
|
448
|
-
> *"Escute esta faixa de referência, extraia fingerprint de tempo / brilho / densidade
|
|
449
|
-
> de ataques / dinâmica, e escolha automaticamente um sistema visual compatível."*
|
|
450
|
-
|
|
451
|
-
<video :src="withBase('/examples/audio-fingerprint-dispatch.mp4')" autoplay loop muted playsinline style="width:100%;max-width:480px;border-radius:8px;display:block"></video>
|
|
452
|
-
|
|
453
|
-
*`audio_fingerprint_to_visual` amostra áudio, classifica o fingerprint e dispara um
|
|
454
|
-
gerador ajustado, como glitch, caleidoscópio, feedback, partículas na GPU ou geometria
|
|
455
|
-
reativa a áudio. Use `dry_run` primeiro quando quiser inspecionar a escolha.*
|
|
456
|
-
|
|
457
|
-
> *"Divida o feed do DJ em quatro bandas limpas, roteie sub para displacement,
|
|
458
|
-
> médios para pulso de cor e agudos para densidade de faíscas, então conecte as
|
|
459
|
-
> mesmas bandas ao meu GLSL TOP como uniforms `uBass`, `uMid` e `uHigh`."*
|
|
460
|
-
|
|
461
|
-
*Use `create_band_router` quando uma entrada de áudio precisa virar canais de
|
|
462
|
-
controle legíveis `band0..bandN`, depois `create_audio_glsl_uniforms` quando esses
|
|
463
|
-
canais devem guiar uniforms do shader diretamente. O resultado não é só "reativo a
|
|
464
|
-
áudio": é um barramento de modulação nomeado e inspecionável que quem escreve shader
|
|
465
|
-
consegue ajustar sem reescrever GLSL a cada mudança.*
|
|
466
|
-
|
|
467
|
-
### MIDI & instrumentos
|
|
468
|
-
|
|
469
|
-
> *"Faça cada nota do meu teclado MIDI disparar um estouro de cor diferente — e me
|
|
470
|
-
> deixe testar sem plugar nada."*
|
|
471
|
-
|
|
472
|
-
*Mapeia notas MIDI recebidas para canais reativos por nota (um flash ou estouro por
|
|
473
|
-
altura), com uma fonte de notas sintética embutida, então dá preview e você pode
|
|
474
|
-
ensaiar o look antes do equipamento estar conectado.*
|
|
475
|
-
|
|
476
|
-
## Reativo a câmera & movimento
|
|
477
|
-
|
|
478
|
-
A contraparte da reatividade ao áudio — guie um visual pelo movimento ou pelo
|
|
479
|
-
brilho na frente da sua webcam.
|
|
480
|
-
|
|
481
|
-
> *"Faça um visual que reage ao movimento na frente da minha webcam, e dê
|
|
482
|
-
> preview."*
|
|
483
|
-
|
|
484
|
-
> *"Controle a quantidade de feedback pelo tanto de movimento que a câmera vê."*
|
|
485
|
-
|
|
486
|
-
> *"Reaja ao brilho da sala — aumente o bloom quando acenderem as luzes."*
|
|
487
|
-
|
|
488
|
-
**O que você recebe:** uma cadeia de análise expondo canais de *movimento* e
|
|
489
|
-
*brilho* mais um botão de *Sensibilidade*. Como o mic, a câmera ao vivo dispara o
|
|
490
|
-
[popup de permissão do macOS](/pt/guide/troubleshooting#macos-microphone-camera-permission)
|
|
491
|
-
— ou peça uma **fonte sintética de teste** para experimentar sem câmera.
|
|
492
|
-
|
|
493
|
-
> *"Analise o movimento deste clip como optical flow, suavize e use o campo vetorial
|
|
494
|
-
> para controlar um liquid displacement warp — use o clip Mosaic embutido se minha
|
|
495
|
-
> câmera ainda não estiver pronta."*
|
|
496
|
-
|
|
497
|
-
<video :src="withBase('/examples/optical-flow-vector-field.mp4')" autoplay loop muted playsinline style="width:100%;max-width:480px;border-radius:8px;display:block"></video>
|
|
498
|
-
|
|
499
|
-
*`create_optical_flow` monta um campo de movimento com TOPs nativos a partir do
|
|
500
|
-
frame atual versus o anterior, com controles de Sensitivity / Smoothing / Blur. Ele
|
|
501
|
-
emite um TOP de flow RG-packed que pode modular displacement, partículas ou qualquer
|
|
502
|
-
cadeia de movimento guiada por TOP.*
|
|
503
|
-
|
|
504
|
-
### Body tracking (webcam, sem hardware extra)
|
|
505
|
-
|
|
506
|
-
Rastreamento de corpo inteiro por uma webcam comum, via o plugin gratuito
|
|
507
|
-
[MediaPipe](https://github.com/torinmb/mediapipe-touchdesigner) (instale uma vez com
|
|
508
|
-
`tdmcp install mediapipe-touchdesigner`).
|
|
509
|
-
|
|
510
|
-
> *"Configure body tracking pela minha webcam e mostre o esqueleto."*
|
|
511
|
-
|
|
512
|
-
> *"Faça fitas brilhantes seguirem meus pulsos e ombros, deixando rastros neon longos
|
|
513
|
-
> enquanto eu me movo — use uma pose sintética no preview se a câmera ainda não
|
|
514
|
-
> estiver pronta."*
|
|
515
|
-
|
|
516
|
-
<video :src="withBase('/examples/pose-trails-skeleton.mp4')" autoplay loop muted playsinline style="width:100%;max-width:480px;border-radius:8px;display:block"></video>
|
|
517
|
-
|
|
518
|
-
> *"Controle a intensidade do visual pelo quanto meu corpo está se mexendo."*
|
|
519
|
-
|
|
520
|
-
**O que você recebe:** o engine MediaPipe carregado + um adaptador que emite um CHOP
|
|
521
|
-
de pose com 33 landmarks (tx/ty/tz/confidence), então um esqueleto ao vivo, trilhas
|
|
522
|
-
de fita ou um visual reativo à câmera. Mantenha a timeline do TD **tocando** (o
|
|
523
|
-
plugin captura por um browser embutido que só roda com a timeline ativa) e permita a
|
|
524
|
-
câmera se o macOS pedir. Sem webcam agora? Peça uma fonte de pose **sintética** para
|
|
525
|
-
montar e pré-visualizar o look offline.
|
|
526
|
-
|
|
527
|
-
> *"Renderize meu body tracking como um feed ControlNet limpo estilo OpenPose:
|
|
528
|
-
> fundo preto, membros coloridos, confidence gate e um sender NDI chamado
|
|
529
|
-
> controlnet_pose."*
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
*`create_pose_controlnet_driver` transforma o mesmo CHOP de 33 landmarks numa saída
|
|
533
|
-
TOP OpenPose-COCO com controles de JointRadius, LimbThickness, ConfidenceGate e
|
|
534
|
-
Mirror. Deixe interno para ComfyUI / StreamDiffusion local, ou publique por NDI /
|
|
535
|
-
Syphon-Spout quando outra máquina precisar do feed de pose.*
|
|
536
|
-
|
|
537
|
-
### Face, mãos & segmentação
|
|
538
|
-
|
|
539
|
-
> *"Configure MediaPipe face tracking, centralize os landmarks na ponta do nariz e
|
|
540
|
-
> use o CHOP de face para guiar uma máscara brilhante e highlights nos olhos."*
|
|
541
|
-
|
|
542
|
-
<video :src="withBase('/examples/face-tracking-landmarks.mp4')" autoplay loop muted playsinline style="width:100%;max-width:480px;border-radius:8px;display:block"></video>
|
|
543
|
-
|
|
544
|
-
*`setup_face_tracking` carrega o engine MediaPipe instalado e emite um CHOP com
|
|
545
|
-
468 landmarks (ou 478 com íris), centralizado no nariz, pronto para bind de
|
|
546
|
-
parâmetros ou visualização de dados.*
|
|
547
|
-
|
|
548
|
-
> *"Rastreie as duas mãos em coordenadas de mundo, detecte gestos de palma aberta /
|
|
549
|
-
> pinça e conecte a altura da mão direita ao feedback amount."*
|
|
550
|
-
|
|
551
|
-
<video :src="withBase('/examples/hand-tracking-gestures.mp4')" autoplay loop muted playsinline style="width:100%;max-width:480px;border-radius:8px;display:block"></video>
|
|
552
|
-
|
|
553
|
-
*`setup_hand_tracking` reutiliza o mesmo engine MediaPipe e emite
|
|
554
|
-
`max_hands × 21` samples com canais tx / ty / tz / confidence / handedness. Use
|
|
555
|
-
`coordinate_space:'world'` quando a profundidade do gesto importar.*
|
|
556
|
-
|
|
557
|
-
> *"Segmente o performer da webcam, aplique feather de 4 px na máscara, publique uma
|
|
558
|
-
> alpha matte limpa e um TOP person RGBA pré-keyado para composição."*
|
|
559
|
-
|
|
560
|
-
<video :src="withBase('/examples/segmentation-alpha-matte.mp4')" autoplay loop muted playsinline style="width:100%;max-width:480px;border-radius:8px;display:block"></video>
|
|
561
|
-
|
|
562
|
-
*`setup_segmentation` ativa o caminho de selfie-segmentation do MediaPipe e publica
|
|
563
|
-
um Null TOP de máscara mais uma saída opcional `person_rgba`, então mattes de corpo
|
|
564
|
-
podem alimentar keyers, silhuetas, partículas ou troca de fundo.*
|
|
565
|
-
|
|
566
|
-
> *"Olha o movimento da minha câmera e empurra 20.000 partículas brilhantes com ele
|
|
567
|
-
> — deixa rastros por onde eu me mexo."*
|
|
568
|
-
|
|
569
|
-
<video :src="withBase('/examples/optical-flow-particles-trail.mp4')" autoplay loop muted playsinline style="width:100%;max-width:480px;border-radius:8px;display:block"></video>
|
|
570
|
-
|
|
571
|
-
*Um campo vetorial de optical-flow em CPU (blur / mono / cache / composite-subtract /
|
|
572
|
-
feedback) emite um TOP de fluxo RG-packed, que é conectado direto num campo de
|
|
573
|
-
partículas na GPU como displacement. O resultado pinta rastros de movimento visíveis
|
|
574
|
-
seguindo o corpo em tempo real, sem CUDA, sem hardware extra.*
|
|
575
|
-
|
|
576
|
-
> *"Rastreia os pontos do meu rosto e costura uma máscara wireframe brilhante sobre
|
|
577
|
-
> as feições, com a webcam escurecida embaixo."*
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
*Adaptador MediaPipe ENGINE one-shot publica um CHOP de 468 landmarks (ou 478 com
|
|
581
|
-
íris). A receita instancia pontos / linhas em cada landmark, compõe sobre uma câmera
|
|
582
|
-
escurecida por `levelTOP` e expõe controles de Tint e Dim.*
|
|
583
|
-
|
|
584
|
-
> *"Usa minha mão na câmera como um pad XY — pinça pra confirmar — e mapeia pro
|
|
585
|
-
> Decay e Hue do visual atual."*
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
*CHOP de 21 landmarks da mão (coordenadas de mundo) alimenta um XY pad cujo X/Y vem
|
|
589
|
-
da ponta do indicador; a distância polegar↔indicador habilita um evento de
|
|
590
|
-
"confirm" que trava os valores XY atuais nos parâmetros-alvo. Vira um controlador
|
|
591
|
-
que você veste na mão.*
|
|
592
|
-
|
|
593
|
-
> *"Me recorta do meu quarto com segmentação selfie e me coloca dentro de uma
|
|
594
|
-
> nebulosa raymarched lenta, como se eu tivesse entrado num portal."*
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
*A selfie-segmentation do MediaPipe publica uma máscara alpha limpa mais um TOP
|
|
598
|
-
RGBA `person_rgba` pré-keyado. Composto sobre um fundo raymarched, o artista parece
|
|
599
|
-
estar dentro da cena gerada, com bordas de matte suaves em tempo real.*
|
|
600
|
-
|
|
601
|
-
## Partículas & 3D
|
|
602
|
-
|
|
603
|
-
> *"Construa um campo denso de blocos 3D instanciados que respira com uma onda de
|
|
604
|
-
> ruído e deixa rastro neon de profundidade enquanto a câmera orbita."*
|
|
605
|
-
|
|
606
|
-
<video :src="withBase('/examples/scene-3d.mp4')" autoplay loop muted playsinline style="width:100%;max-width:560px;border-radius:8px;display:block"></video>
|
|
607
|
-
|
|
608
|
-
*Uma cena de geometria instanciada mais densa, com profundidade, variação de cor e
|
|
609
|
-
movimento vivo, boa como base para áudio, câmera ou modulação de timeline.*
|
|
610
|
-
|
|
611
|
-
**O que você recebe:** um sistema de partículas ou geometria com botões de *Arrasto
|
|
612
|
-
/ Turbulência / Gravidade / Vida* para moldar o movimento.
|
|
613
|
-
|
|
614
|
-
> *"Mostre uma esfera metálica polida numa mesa giratória com iluminação de estúdio
|
|
615
|
-
> realista e reflexos suaves."*
|
|
616
|
-
|
|
617
|
-
<video :src="withBase('/examples/pbr-product-spin.mp4')" autoplay loop muted playsinline style="width:100%;max-width:480px;border-radius:8px;display:block"></video>
|
|
618
|
-
|
|
619
|
-
*Uma cena 3D baseada em física (material PBR + iluminação de ambiente + Render TOP)
|
|
620
|
-
com controles de rugosidade/metalicidade e um botão de giro — um render de estúdio
|
|
621
|
-
convincente de uma primitiva, não um cubo chapado padrão do TD.*
|
|
622
|
-
|
|
623
|
-
> *"Faça uma nuvem de pontos de uma esfera flutuando devagar, pontinhos brilhantes
|
|
624
|
-
> que cintilam, no preto profundo."*
|
|
625
|
-
|
|
626
|
-
<video :src="withBase('/examples/point-cloud-drift.mp4')" autoplay loop muted playsinline style="width:100%;max-width:480px;border-radius:8px;display:block"></video>
|
|
627
|
-
|
|
628
|
-
*Um render de nuvem de pontos de uma superfície amostrada (esfera/grade/modelo) como
|
|
629
|
-
milhares de pontos na GPU com controles de tamanho/jitter e deriva — um brilho
|
|
630
|
-
volumétrico parecido com uma constelação.*
|
|
631
|
-
|
|
632
|
-
> *"Empurre a imagem da minha webcam para um relevo 3D, onde as áreas claras saltam
|
|
633
|
-
> em direção à câmera, iluminadas de lado."*
|
|
634
|
-
|
|
635
|
-
<video :src="withBase('/examples/depth-displacement-relief.mp4')" autoplay loop muted playsinline style="width:100%;max-width:480px;border-radius:8px;display:block"></video>
|
|
636
|
-
|
|
637
|
-
*Um plano deslocado em geometria 2.5D real por um mapa de profundidade/luminância via
|
|
638
|
-
um estágio de vértice GLSL MAT, com controle de Quantidade de profundidade e
|
|
639
|
-
iluminação — sua imagem vira um terreno esculpido e iluminado de lado.*
|
|
640
|
-
|
|
641
|
-
> *"Renderize uma cena 3D com sombras de oclusão de ambiente e use a profundidade
|
|
642
|
-
> dela para empurrar outra imagem em relevo — e eu não tenho câmera de profundidade."*
|
|
643
|
-
|
|
644
|
-
<video :src="withBase('/examples/multipass-depth-no-camera.mp4')" autoplay loop muted playsinline style="width:100%;max-width:480px;border-radius:8px;display:block"></video>
|
|
645
|
-
|
|
646
|
-
*Um render 3D multi-passe (Render + passe de SSAO) que também emite uma saída de
|
|
647
|
-
**profundidade sintética**, que então alimenta o depth-displacement/silhueta — 3D com
|
|
648
|
-
sombras de contato mais um mapa de profundidade fabricado por software.*
|
|
649
|
-
|
|
650
|
-
> *"Adicione passes cinematográficos de pós 3D a esta cena: sombras SSAO de contato,
|
|
651
|
-
> um pouco de SSR, profundidade de campo rasa e motion blur nos movimentos rápidos."*
|
|
652
|
-
|
|
653
|
-
<video :src="withBase('/examples/post-passes-3d-cinematic.mp4')" autoplay loop muted playsinline style="width:100%;max-width:560px;border-radius:8px;display:block"></video>
|
|
654
|
-
|
|
655
|
-
*`post_passes_3d` é a cadeia dedicada para acabamento 3D com depth/normal/velocity;
|
|
656
|
-
`apply_post_processing` redireciona pedidos de SSAO / SSR / DOF / motion-blur para
|
|
657
|
-
ela em vez de fingir que esses passes funcionam num TOP chapado.*
|
|
658
|
-
|
|
659
|
-
> *"Monte um rig de geometria estilo POP com torus, duas subdivisões, noise
|
|
660
|
-
> displacement animado e controles ao vivo de RotateY / NoiseAmount, pronto para
|
|
661
|
-
> renderizar."*
|
|
662
|
-
|
|
663
|
-
<video :src="withBase('/examples/pop-geometry-noise-rig.mp4')" autoplay loop muted playsinline style="width:100%;max-width:480px;border-radius:8px;display:block"></video>
|
|
664
|
-
|
|
665
|
-
*`create_pop_geometry` envolve uma cadeia primitiva → transform → subdivide opcional
|
|
666
|
-
→ noise → material SOP num rig completo de render. Use quando você quer um objeto
|
|
667
|
-
3D editável, não apenas um shader fingindo ser geometria.*
|
|
668
|
-
|
|
669
|
-
> *"Monte uma tempestade de partículas POP onde 40.000 pontos nascem de uma
|
|
670
|
-
> nuvem-semente, atravessam um campo de força por textura e deixam um rastro
|
|
671
|
-
> brilhante de feedback."*
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
*`create_pop_particle_system` monta o instrumento POP renderizado: point-generator
|
|
675
|
-
de semente, Particle POP, Feedback POP, força por lookup-texture, visualização de
|
|
676
|
-
campo opcional e Render TOP de saída. EmissionRate, Lifetime e FeedbackGain ficam
|
|
677
|
-
expostos para tocar a tempestade em vez de congelar o resultado.*
|
|
678
|
-
|
|
679
|
-
> *"Faça crescer um organismo POP tipo coral: acreção densa para fora, movimento
|
|
680
|
-
> guiado por ruído, decaimento lento e controles de growth rate, threshold e
|
|
681
|
-
> feedback."*
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
*`create_pop_growth` é o preset orgânico em POP: modos dendritic, coral e lichen
|
|
685
|
-
com controles de GrowthRate, Decay, Threshold e FeedbackGain. Use quando o look
|
|
686
|
-
deve parecer acreção, fungo, coral ou fibra ramificada em vez de partículas comuns.*
|
|
687
|
-
|
|
688
|
-
> *"Faça uma nuvem de pontos plexus girando devagar: 1.000 pontos, conecte só
|
|
689
|
-
> vizinhos próximos, degrade linhas pela distância e deixe pontinhos por cima."*
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
*`create_pop_lines_pointcloud` roda um Neighbor POP sobre uma nuvem de pontos
|
|
693
|
-
gerada ou externa, emite linhas deduplicadas via Script SOP e renderiza a teia com
|
|
694
|
-
controles de MaxDistance, MaxNeighbors, MaxLines, Spin e PointSize. É o look plexus
|
|
695
|
-
sem escrever o loop de vizinhança à mão.*
|
|
696
|
-
|
|
697
|
-
> *"Use minha máscara de segmentação como campo de profundidade e espalhe 25.000
|
|
698
|
-
> pontos ao redor do meu corpo, coloridos por profundidade perto/longe e girando
|
|
699
|
-
> devagar em 3D."*
|
|
700
|
-
|
|
701
|
-
<video :src="withBase('/examples/depth-pop-field-performer.mp4')" autoplay loop muted playsinline style="width:100%;max-width:480px;border-radius:8px;display:block"></video>
|
|
702
|
-
|
|
703
|
-
*`create_depth_pop_field` aceita um TOP de profundidade/máscara existente ou sobe
|
|
704
|
-
uma cadeia de segmentação, então usa lookup-texture POPs, jitter e proxy de
|
|
705
|
-
displacement para transformar a máscara num campo espacial de pontos renderizado.
|
|
706
|
-
DepthScale, PointSize e Spin fazem a câmera plana se comportar como volume de palco.*
|
|
707
|
-
|
|
708
|
-
> *"Carregue este scan .splat como cena Gaussian Splat, conecte na minha câmera de
|
|
709
|
-
> órbita, gere 1080p e exponha o caminho do asset e a referência da câmera no
|
|
710
|
-
> wrapper."*
|
|
711
|
-
|
|
712
|
-
|
|
713
|
-
*`create_gaussian_splat_scene` envolve o TDGS.tox quando ele está instalado,
|
|
714
|
-
valida assets `.ply` / `.splat`, conecta uma câmera opcional e promove controles
|
|
715
|
-
de SplatAssetPath, CameraRef e OutputRes. Se o TDGS estiver ausente, falha rápido
|
|
716
|
-
com instrução de instalação em vez de travar o TouchDesigner.*
|
|
717
|
-
|
|
718
|
-
> *"Estime profundidade a partir deste feed 2D de câmera, mantenha o depth map
|
|
719
|
-
> cozinhando e use isso como fonte para um visual de relevo/displacement."*
|
|
720
|
-
|
|
721
|
-
|
|
722
|
-
*`create_depth_from_2d` carrega o TDDepthAnything quando disponível, conecta um TOP
|
|
723
|
-
de origem, configura modelo/resolução e devolve um Null TOP `depth_out` vivo com
|
|
724
|
-
frame cooker. A saída pode alimentar `create_depth_pop_field`, displacement,
|
|
725
|
-
silhuetas ou qualquer cadeia depth-aware sem câmera de profundidade.*
|
|
726
|
-
|
|
727
|
-
> *"Crie um volume de nebulosa lento: 24 fatias empilhadas, paleta roxo-magenta,
|
|
728
|
-
> alta densidade, pouca turbulência e controles ao vivo de densidade e color map."*
|
|
729
|
-
|
|
730
|
-
<video :src="withBase('/examples/volumetric-field-nebula.mp4')" autoplay loop muted playsinline style="width:100%;max-width:480px;border-radius:8px;display:block"></video>
|
|
731
|
-
|
|
732
|
-
*`create_volumetric_field` simula volume com noise 3D animado, displacement
|
|
733
|
-
opcional, pilha de fatias em Cache TOP e acumulação GLSL Beer-Lambert. Density,
|
|
734
|
-
Turbulence e ColorMap transformam isso em fumaça, nebulosa, brasa, gelo, tóxico ou
|
|
735
|
-
mono.*
|
|
736
|
-
|
|
737
|
-
> *"Transforme este feed de câmera numa cidade voxel isométrica: brilho controla a
|
|
738
|
-
> altura das torres, a cor da fonte pinta cada bloco e eu ganho controles de
|
|
739
|
-
> HeightScale e RotateY."*
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
*`create_voxel_stack` amostra um TOP em canais de instância, mescla barramentos de
|
|
743
|
-
posição, altura, escala e cor, e instancia box geometry por uma câmera isométrica
|
|
744
|
-
ou de perspectiva. É footage plano virando campo performável de cubos, não um
|
|
745
|
-
filtro 2D pixelado.*
|
|
746
|
-
|
|
747
|
-
> *"Transforme este retrato num estudo de nuvem de pontos pontilhada: pontos
|
|
748
|
-
> quentes sobre preto, luminância controlando densidade, jitter aleatório sutil e
|
|
749
|
-
> uma órbita lenta de câmera como uma impressão se dissolvendo no espaço."*
|
|
750
|
-
|
|
751
|
-
*`create_stipple_pointcloud` converte luminância de TOP em densidade POP e renderiza
|
|
752
|
-
milhares de pontos pequenos com controles de DotSize, JitterAmount e CameraRotate.
|
|
753
|
-
Fica entre gravura e partículas 3D: mais tátil que halftone, mais leve que uma
|
|
754
|
-
simulação completa de fluido ou partículas.*
|
|
755
|
-
|
|
756
|
-
## Vídeo & câmera
|
|
757
|
-
|
|
758
|
-
> *"Passe minha webcam por detecção de bordas, um RGB split e um loop de feedback
|
|
759
|
-
> para um visual glitchado."*
|
|
760
|
-
|
|
761
|
-
<video :src="withBase('/examples/video-glitch.mp4')" autoplay loop muted playsinline style="width:100%;max-width:480px;border-radius:8px;display:block"></video>
|
|
762
|
-
|
|
763
|
-
*O look de glitch / VHS — scanlines, RGB split e datamosh (mostrado sobre uma fonte
|
|
764
|
-
sintética em vez de uma webcam ao vivo).*
|
|
765
|
-
|
|
766
|
-
> *"Pegue minha webcam e deixe com cara de fita VHS velha e degradada."*
|
|
767
|
-
|
|
768
|
-
> *"Monte dois decks de vídeo com um crossfader grande para eu misturar dois clipes
|
|
769
|
-
> como um DJ."*
|
|
770
|
-
|
|
771
|
-
<video :src="withBase('/examples/dj-decks-crossfade.mp4')" autoplay loop muted playsinline style="width:100%;max-width:480px;border-radius:8px;display:block"></video>
|
|
772
|
-
|
|
773
|
-
*Decks A/B mesclados por um crossfader mestre (Cross TOP) com ganho por deck; cada
|
|
774
|
-
deck puxa uma fonte TOP ou uma fonte de teste embutida — o equivalente visual de uma
|
|
775
|
-
mesa de DJ.*
|
|
776
|
-
|
|
777
|
-
> *"Monte um mixer VJ de quatro decks: câmera, loops, camada generativa e vinheta de
|
|
778
|
-
> logo, cada um com ganho e FX-send, mais um seletor de hard-cut para transições ao vivo."*
|
|
779
|
-
|
|
780
|
-
<video :src="withBase('/examples/nchannel-decks-fx-send.mp4')" autoplay loop muted playsinline style="width:100%;max-width:480px;border-radius:8px;display:block"></video>
|
|
781
|
-
|
|
782
|
-
*`create_decks` agora tem modo N-channel: 2-8 decks, ganho por deck, FX send por
|
|
783
|
-
deck, mix contínuo de programa e um barramento de transition-cut. Use o prompt A/B
|
|
784
|
-
antigo para crossfader simples; use `decks[]` quando o rig já estiver parecendo um
|
|
785
|
-
mixer VJ de verdade.*
|
|
786
|
-
|
|
787
|
-
> *"Coloque waveform, RGB parade e vectorscope ao lado deste feed de câmera para eu
|
|
788
|
-
> ajustar a grade antes da abertura do show."*
|
|
789
|
-
|
|
790
|
-
<video :src="withBase('/examples/video-scopes-monitor.mp4')" autoplay loop muted playsinline style="width:100%;max-width:480px;border-radius:8px;display:block"></video>
|
|
791
|
-
|
|
792
|
-
*`create_video_scopes` monta uma superfície de monitoramento estilo broadcast para
|
|
793
|
-
uma fonte TOP: painéis de waveform, parade e vectorscope que mostram problemas de
|
|
794
|
-
cor / exposição antes de eles virarem problema no projetor.*
|
|
795
|
-
|
|
796
|
-
> *"Adicione um histogram scope de luminância a este feed de câmera com 128 bins,
|
|
797
|
-
> escala log e traço verde-fósforo para eu enxergar pretos esmagados antes do
|
|
798
|
-
> projetor."*
|
|
799
|
-
|
|
800
|
-
<video :src="withBase('/examples/histogram-scope-rgb.mp4')" autoplay loop muted playsinline style="width:100%;max-width:480px;border-radius:8px;display:block"></video>
|
|
801
|
-
|
|
802
|
-
*`create_histogram_scope` transforma um TOP num painel de histograma com preview,
|
|
803
|
-
usando uma passada GLSL de bins, normalização TOP-to-CHOP e traço renderizado. Pode
|
|
804
|
-
rodar a partir de padrão de teste, arquivo, TOP existente ou device ao vivo.*
|
|
805
|
-
|
|
806
|
-
> *"Extrai as cores dominantes do meu clipe principal e usa elas pra seedar um
|
|
807
|
-
> color grade combinando pro resto do show."*
|
|
808
|
-
|
|
809
|
-
<video :src="withBase('/examples/palette-extract-and-grade.mp4')" autoplay loop muted playsinline style="width:100%;max-width:480px;border-radius:8px;display:block"></video>
|
|
810
|
-
|
|
811
|
-
*`extract_palette` amostra o preview do TOP via `get_preview` e roda k-means
|
|
812
|
-
determinístico nos pixels RGB decodificados, devolvendo swatches hex ponderados.
|
|
813
|
-
Esses swatches alimentam diretamente alvos de lift / gamma / gain em
|
|
814
|
-
`create_color_grade`.*
|
|
815
|
-
|
|
816
|
-
> *"Transforme a câmera num espelho de IA com prompt de água etérea, mostre a
|
|
817
|
-
> câmera crua no painel de controle e envie a saída gerada por Syphon/Spout quando
|
|
818
|
-
> estiver pronta."*
|
|
819
|
-
|
|
820
|
-
|
|
821
|
-
*`create_ai_mirror` envolve entrada de câmera, sintética ou TOP existente pelo
|
|
822
|
-
StreamDiffusionTD com controles de Prompt, Negative Prompt, Strength e CFG, mais
|
|
823
|
-
preview opcional da câmera. A saída pode ficar interna ou ir para Syphon-Spout /
|
|
824
|
-
NDI, e a falta do TOX de StreamDiffusion vira aviso amigável com o esqueleto ainda
|
|
825
|
-
montado.*
|
|
826
|
-
|
|
827
|
-
> *"Monte meu rack de ingest ao vivo: uma fonte segura de screen-grab para ensaio,
|
|
828
|
-
> um media bin de loops vindo de uma pasta e um chroma keyer que possa alternar
|
|
829
|
-
> entre câmera e cartão de teste antes do show."*
|
|
830
|
-
|
|
831
|
-
*`create_live_source`, `create_media_bin` e `create_keyer` são o trio prático de
|
|
832
|
-
entrada de vídeo: um normaliza feeds ao vivo, outro varre uma pasta em clipes
|
|
833
|
-
alternáveis e o terceiro compõe footage keyado sobre um fundo. Câmera, NDI,
|
|
834
|
-
Syphon/Spout e streams continuam gated por plataforma/permissão, então o prompt deve
|
|
835
|
-
pedir warnings e caminhos `out1` estáveis antes de ligar no mix do show.*
|
|
836
|
-
|
|
837
|
-
## Texto & títulos
|
|
838
|
-
|
|
839
|
-
> *"Monte um hit de lyric com alpha seguro: pisque a palavra 'DROP' enorme no beat
|
|
840
|
-
> e faça ela sumir limpa entre os golpes por cima do visual rodando."*
|
|
841
|
-
|
|
842
|
-
<video :src="withBase('/examples/kinetic-lyrics-flash.mp4')" autoplay loop muted playsinline style="width:100%;max-width:480px;border-radius:8px;display:block"></video>
|
|
843
|
-
|
|
844
|
-
*`create_kinetic_text` em `mode: "flash"` cria Text TOP, LFO, gate de alpha e
|
|
845
|
-
composite opcional por cima de um TOP de entrada. O detalhe importante para show: o
|
|
846
|
-
texto fica transparente entre os hits em vez de piscar preto.*
|
|
847
|
-
|
|
848
|
-
> *"Faça um lower third pulsando para a vocalista: nome da artista, label do palco e
|
|
849
|
-
> um indicador pequeno de beat, composto por cima do program feed."*
|
|
850
|
-
|
|
851
|
-
<video :src="withBase('/examples/kinetic-lower-third-pulse.mp4')" autoplay loop muted playsinline style="width:100%;max-width:480px;border-radius:8px;display:block"></video>
|
|
852
|
-
|
|
853
|
-
*Use `create_text_overlay` para uma camada title-safe e troque para
|
|
854
|
-
`create_kinetic_text` em `mode: "pulse"` quando o lower third deve respirar com a
|
|
855
|
-
música em vez de ficar chapado.*
|
|
856
|
-
|
|
857
|
-
> *"Crie um ticker de setlist no rodapé da saída: seção atual, próximo cue, lado do
|
|
858
|
-
> palco e nota da artista, em loop infinito."*
|
|
859
|
-
|
|
860
|
-
<video :src="withBase('/examples/text-crawl-setlist-ticker.mp4')" autoplay loop muted playsinline style="width:100%;max-width:480px;border-radius:8px;display:block"></video>
|
|
861
|
-
|
|
862
|
-
*`create_text_crawl` com `mode: "crawl_horizontal"` é a camada de ticker para texto
|
|
863
|
-
contínuo, contagens, notas de stage manager e mensagens de status de instalação.*
|
|
864
|
-
|
|
865
|
-
> *"Role os créditos finais para cima sobre a cena ambiente final, com fade lento no
|
|
866
|
-
> topo e na base do quadro."*
|
|
867
|
-
|
|
868
|
-
<video :src="withBase('/examples/text-roll-credits-stage.mp4')" autoplay loop muted playsinline style="width:100%;max-width:480px;border-radius:8px;display:block"></video>
|
|
869
|
-
|
|
870
|
-
*A mesma ferramenta `create_text_crawl` em `mode: "roll_vertical"` resolve créditos
|
|
871
|
-
multi-linha, statements de artista e texto de parede de galeria. Use `\n` para
|
|
872
|
-
manter cada linha editável.*
|
|
873
|
-
|
|
874
|
-
> *"Revele um manifesto curto caractere por caractere antes da instalação abrir:
|
|
875
|
-
> 'NO PREVIEW / NO PANIC / BUILD THE LIGHT / THEN PERFORM IT'."*
|
|
876
|
-
|
|
877
|
-
<video :src="withBase('/examples/typewriter-manifesto-reveal.mp4')" autoplay loop muted playsinline style="width:100%;max-width:480px;border-radius:8px;display:block"></video>
|
|
878
|
-
|
|
879
|
-
*`create_text_crawl` também expõe `mode: "typewriter"` para reveals caractere a
|
|
880
|
-
caractere. Ele está marcado como experimental na documentação da ferramenta, então
|
|
881
|
-
use para ensaio ou docs gerados e valide a expressão do Text TOP no build de
|
|
882
|
-
TouchDesigner alvo antes do show.*
|
|
883
|
-
|
|
884
|
-
> *"Faça o nome do meu festival em letras 3D extrudadas grossas de cromo, girando
|
|
885
|
-
> devagar com um holofote."*
|
|
886
|
-
|
|
887
|
-
<video :src="withBase('/examples/3d-extruded-title.mp4')" autoplay loop muted playsinline style="width:100%;max-width:480px;border-radius:8px;display:block"></video>
|
|
888
|
-
|
|
889
|
-
*`create_text_3d` monta Text SOP -> Extrude SOP -> material -> Camera/Light/Render
|
|
890
|
-
como uma cena de título autocontida, com controles ao vivo de Spin e Depth.*
|
|
891
|
-
|
|
892
|
-
> *"Transforme a palavra 'NOISE' em geometria SOP, adicione point noise e renderize
|
|
893
|
-
> como uma escultura tipográfica deformada em vez de um card chapado."*
|
|
894
|
-
|
|
895
|
-
<video :src="withBase('/examples/pop-text-noise-sculpture.mp4')" autoplay loop muted playsinline style="width:100%;max-width:480px;border-radius:8px;display:block"></video>
|
|
896
|
-
|
|
897
|
-
*`create_pop_geometry` com `primitive: "text"` e `text_string` coloca o texto dentro
|
|
898
|
-
do pipeline de geometria. Adicione `noise_amount` quando o título deve parecer um
|
|
899
|
-
objeto vivo, não uma legenda.*
|
|
900
|
-
|
|
901
|
-
> *"Gere um padrão de alinhamento de projetor com label OUTPUT 02 / LEFT para a
|
|
902
|
-
> equipe identificar a superfície física de longe."*
|
|
903
|
-
|
|
904
|
-
<video :src="withBase('/examples/projector-label-test-pattern.mp4')" autoplay loop muted playsinline style="width:100%;max-width:480px;border-radius:8px;display:block"></video>
|
|
905
|
-
|
|
906
|
-
*`create_test_pattern` consegue desenhar grids de calibração, crosshairs, números
|
|
907
|
-
de saída e labels. Ele entra em Texto & títulos porque esses labels são a tipografia
|
|
908
|
-
que mantém a instalação compreensível durante a montagem.*
|
|
909
|
-
|
|
910
|
-
> *"Mapeie meus pads MIDI para palavras: KICK, BASS, SNARE, VOX, CLAP e PAD devem
|
|
911
|
-
> piscar quando o canal de nota correspondente disparar."*
|
|
912
|
-
|
|
913
|
-
<video :src="withBase('/examples/midi-note-type-hits.mp4')" autoplay loop muted playsinline style="width:100%;max-width:480px;border-radius:8px;display:block"></video>
|
|
914
|
-
|
|
915
|
-
*Combine `create_midi_note_reactive` com `create_kinetic_text` quando a tipografia
|
|
916
|
-
deve responder a eventos de nota individuais em vez de um nível global de áudio.*
|
|
917
|
-
|
|
918
|
-
> *"Coloque o título 'DEEP FIELD' num caminho circular e deixe as letras orbitarem
|
|
919
|
-
> ao redor do centro antes da cena principal começar."*
|
|
920
|
-
|
|
921
|
-
<video :src="withBase('/examples/path-title-orbit.mp4')" autoplay loop muted playsinline style="width:100%;max-width:480px;border-radius:8px;display:block"></video>
|
|
922
|
-
|
|
923
|
-
*Aplique a receita `kinetic_text_path_follow` quando o título precisa seguir um
|
|
924
|
-
caminho: bugs orbitais, logos circulares de show, labels se movendo em torno de
|
|
925
|
-
esculturas e loops de wayfinding.*
|
|
926
|
-
|
|
927
|
-
**O que você recebe:** um kit performável de tipografia: hits de lyric com alpha,
|
|
928
|
-
lower thirds pulsando, ticker crawls, créditos rolando, reveals typewriter, texto 3D
|
|
929
|
-
extrudado, geometria tipográfica com noise, labels de projetor, palavras disparadas
|
|
930
|
-
por MIDI e títulos seguindo paths.
|
|
931
|
-
|
|
932
|
-
## Performance ao vivo & controle
|
|
933
|
-
|
|
934
|
-
> *"Adicione botões de feedback, zoom, giro e blur para eu tocar isto ao vivo."*
|
|
935
|
-
|
|
936
|
-
> *"Anime o botão de giro com um LFO lento."*
|
|
937
|
-
|
|
938
|
-
> *"Crie um relógio de tempo a 128 BPM e sincronize o movimento à batida."*
|
|
939
|
-
|
|
940
|
-
> *"Faça bridge do Ableton Live para o TouchDesigner: clips, tracks, transporte e
|
|
941
|
-
> macros de device como canais CHOP nomeados, com fallback OSC se o TDAbleton não
|
|
942
|
-
> estiver instalado."*
|
|
943
|
-
|
|
944
|
-
|
|
945
|
-
*`setup_tdableton` procura primeiro o componente Palette e depois cai para um OSC In
|
|
946
|
-
simples, então o mesmo patch de show consegue ensaiar mesmo sem setup perfeito de
|
|
947
|
-
estúdio.*
|
|
948
|
-
|
|
949
|
-
> *"Monte um holograma futurista de mão: um cubo ciano transparente com scanlines
|
|
950
|
-
> violetas flutuando acima da minha palma aberta. Comece com o preview sintético de
|
|
951
|
-
> duas mãos, exponha controles de Size, FloatHeight, Glow e PinchScale, e faça uma
|
|
952
|
-
> pinça da outra mão aumentar o cubo e intensificar o brilho."*
|
|
953
|
-
|
|
954
|
-
*`create_hand_hologram` monta o visual completo e aninha `create_hand_gesture_bus`
|
|
955
|
-
dentro dele. O bus estabiliza a âncora da palma, mantém a palma ativa travada
|
|
956
|
-
quando a mão de controle entra no frame, e publica `pinch_power`, `light_gain` e
|
|
957
|
-
`audio_level` para o mesmo tracking depois guiar lasers, partículas ou áudio.*
|
|
958
|
-
|
|
959
|
-
> *"Monte um controlador de gestos pelo celular na porta 9982: X/Y multitouch para
|
|
960
|
-
> feedback e hue, inclinação para roll da câmera e shake como gatilho de flash
|
|
961
|
-
> seguro para panic. Me dê a URL e os nomes dos canais CHOP antes de eu fazer
|
|
962
|
-
> bind."*
|
|
963
|
-
|
|
964
|
-
*`create_phone_gesture` serve uma página local do próprio TouchDesigner e publica
|
|
965
|
-
canais de touch, tilt, gyro e shake por Script CHOP. Sensores de movimento no iOS
|
|
966
|
-
precisam de toque explícito de permissão no navegador e muitas vezes HTTPS, então
|
|
967
|
-
isso entra primeiro como superfície de ensaio; só depois vira controle de show,
|
|
968
|
-
quando as faixas dos canais já foram observadas.*
|
|
969
|
-
|
|
970
|
-
> *"Transforme minhas mãos na webcam em um controlador de Ableton Auto Filter com
|
|
971
|
-
> quatro canais via TDAbleton, sem AbletonMCP. Use rastreamento de mãos do
|
|
972
|
-
> MediaPipe, monte um overlay de esqueleto com estrelinhas nas juntas, publique
|
|
973
|
-
> `mapper_send` para que `map1` seja a pinça esquerda, `map2` a pinça direita,
|
|
974
|
-
> `map3` a rotação do punho esquerdo e `map4` a rotação do punho direito, então
|
|
975
|
-
> diagnostique o roteamento do `TDA_Mapper` antes de eu mapear os quatro slots no
|
|
976
|
-
> Ableton."*
|
|
977
|
-
|
|
978
|
-
*`create_hand_ableton_mapper` monta o lado TouchDesigner do controlador performático
|
|
979
|
-
e `diagnose_tdableton_mapper` confere caminho do mapper, CHOP de entrada, `Reorder`,
|
|
980
|
-
bypasses e ranges. O caminho de runtime é TouchDesigner -> `TDA_Mapper` do
|
|
981
|
-
TDAbleton -> parâmetros mapeados de Auto Filter ou macros de rack no Ableton;
|
|
982
|
-
AbletonMCP não é necessário.*
|
|
983
|
-
|
|
984
|
-
> *"Monte um rig de ensaio de harpa de parede com Kinect em modo sintético:
|
|
985
|
-
> 16 zonas musicais pela parede, 128 linhas laser sutis, flashes âmbar de pluck,
|
|
986
|
-
> pontos de mão em debug e controles expostos de calibração, decay de áudio e
|
|
987
|
-
> reverb para eu testar a peça antes de conectar o Kinect."*
|
|
988
|
-
|
|
989
|
-
*`create_kinect_wall_harp` monta o instrumento de parede como um COMP no TD:
|
|
990
|
-
linhas projetadas da harpa, saídas de debug de depth / mask / mãos, barramentos CHOP de
|
|
991
|
-
mão e pluck, além de uma cadeia interna de áudio sine/reverb. Use
|
|
992
|
-
`source:"synthetic"` ou mantenha `fallback_to_synthetic:true` para ensaio; só
|
|
993
|
-
adicione vídeo no cookbook depois de capturar o `output_top` real do TouchDesigner.*
|
|
994
|
-
|
|
995
|
-
> *"Monte uma camada de controle performável para este look: quatro moduladores
|
|
996
|
-
> travados no tempo chamados breathe, shimmer, wobble e random_hold, um XY pad para
|
|
997
|
-
> blur/hue e um look bank com slots ambient, chorus e blackout-safe mais um botão de
|
|
998
|
-
> morph A/B."*
|
|
999
|
-
|
|
1000
|
-
*`create_modulators`, `create_xy_pad` e `create_look_bank` transformam um patch
|
|
1001
|
-
gerado em instrumento: modulação CHOP nomeada, controle direto em dois eixos e looks
|
|
1002
|
-
salvos que podem saltar, quantizar ou morfar. Use quando o visual já funciona e o
|
|
1003
|
-
próximo problema é repetir os controles sob pressão de show.*
|
|
1004
|
-
|
|
1005
|
-
> *"Monte dois cues — 'intro' e 'drop' — entre os quais eu possa transicionar."*
|
|
1006
|
-
|
|
1007
|
-
> *"Deixe eu controlar os botões principais pelo meu celular."*
|
|
1008
|
-
|
|
1009
|
-
> *"Mapeie o primeiro fader do meu controlador MIDI para o botão de
|
|
1010
|
-
> Sensibilidade."*
|
|
1011
|
-
|
|
1012
|
-
> *"Indo ao vivo agora — ligue o perform mode para nada engasgar no meio do show."*
|
|
1013
|
-
|
|
1014
|
-
|
|
1015
|
-
*`set_perform_mode` agora prefere o endpoint hardened `POST /api/perform` e devolve
|
|
1016
|
-
um snapshot tipado dizendo se o store da raiz, o perform mode da UI e o perform
|
|
1017
|
-
mode do projeto foram realmente ligados. Ainda faz fallback em bridges antigas, mas
|
|
1018
|
-
o caminho de show vira uma chamada REST real.*
|
|
1019
|
-
|
|
1020
|
-
> *"Monte uma grade de botões estilo Ableton para eu disparar meus looks salvos ao
|
|
1021
|
-
> vivo, um toque cada."*
|
|
1022
|
-
|
|
1023
|
-
*Uma grade de botões que disparam cues (reaproveitando o motor de recall/morph do
|
|
1024
|
-
manage_cue) — toque numa célula para pular ou morfar para uma cena salva, abrível no
|
|
1025
|
-
modo Perform como uma superfície de toque.*
|
|
1026
|
-
|
|
1027
|
-
> *"Faça uma grade de 16 passos que dispara um strobe nas batidas fortes e um efeito
|
|
1028
|
-
> nas fracas, travada no meu tempo."*
|
|
1029
|
-
|
|
1030
|
-
*Uma grade de passos por compasso/batida que dispara um parâmetro ou cue por passo
|
|
1031
|
-
ativo — a contraparte determinística e programável do auto-VJ; ligue e desligue
|
|
1032
|
-
passos para compor um padrão repetido travado no relógio.*
|
|
1033
|
-
|
|
1034
|
-
> *"Monte um sequenciador probabilístico onde calm quase sempre deriva para shimmer,
|
|
1035
|
-
> shimmer às vezes salta para um estouro de glitch, e blackout só acontece em drops
|
|
1036
|
-
> raros."*
|
|
1037
|
-
|
|
1038
|
-
<video :src="withBase('/examples/prob-sequencer-markov.mp4')" autoplay loop muted playsinline style="width:100%;max-width:480px;border-radius:8px;display:block"></video>
|
|
1039
|
-
|
|
1040
|
-
*Um sequenciador de passos Markov para estados de show: a cada batida ele amostra a
|
|
1041
|
-
tabela de transições ponderadas, emite `state` e `trigger`, e guia cues ou parâmetros
|
|
1042
|
-
sem repetir um loop fixo.*
|
|
1043
|
-
|
|
1044
|
-
> *"Monte uma timeline de três cenas para um set a 128 BPM: intro é um túnel de
|
|
1045
|
-
> feedback, drop é uma bola de espinhos reativa ao áudio, breakdown é uma correção
|
|
1046
|
-
> de cor cinematográfica. Deixe scrubbable e mantenha os ids dos slots do setlist."*
|
|
1047
|
-
|
|
1048
|
-
<video :src="withBase('/examples/scene-timeline-arranger.mp4')" autoplay loop muted playsinline style="width:100%;max-width:480px;border-radius:8px;display:block"></video>
|
|
1049
|
-
|
|
1050
|
-
*Uma timeline mestra de show: cenas viram blocos sobre um playhead de Timer CHOP,
|
|
1051
|
-
recalls de cue caem nas fronteiras das cenas e ferramentas seguintes conseguem
|
|
1052
|
-
manter as referências de slot do setlist em cada cena.*
|
|
1053
|
-
|
|
1054
|
-
> *"Escaneie esta pasta de loops e monte um auto-montage quantizado na batida, que
|
|
1055
|
-
> embaralha clipes a cada compasso com meio segundo de crossfade."*
|
|
1056
|
-
|
|
1057
|
-
<video :src="withBase('/examples/auto-montage-shuffle.mp4')" autoplay loop muted playsinline style="width:100%;max-width:480px;border-radius:8px;display:block"></video>
|
|
1058
|
-
|
|
1059
|
-
*Um seletor automático de media-bin: clipes/imagens alimentam um Switch TOP, um
|
|
1060
|
-
relógio de compasso/batida/intervalo avança o índice, e modos shuffle/random/weighted
|
|
1061
|
-
evitam deixar o mesmo clipe tempo demais.*
|
|
1062
|
-
|
|
1063
|
-
> *"Crie um sequenciador Euclidiano com 5 batidas em 16 passos e conecte os hits a
|
|
1064
|
-
> um strobe, um estouro de glitch e a quantidade de preset-morph."*
|
|
1065
|
-
|
|
1066
|
-
<video :src="withBase('/examples/euclidean-strobe-pattern.mp4')" autoplay loop muted playsinline style="width:100%;max-width:480px;border-radius:8px;display:block"></video>
|
|
1067
|
-
|
|
1068
|
-
*Ritmo estilo Bjorklund para visuais — pulsos esparsos e musicais que disparam cues,
|
|
1069
|
-
parâmetros ou scripts em vez de um metrônomo simples.*
|
|
1070
|
-
|
|
1071
|
-
> *"Misture quatro looks salvos com um único botão Morph, com pesos para eu ficar
|
|
1072
|
-
> no meio entre neon ciano e âmbar quente durante o breakdown."*
|
|
1073
|
-
|
|
1074
|
-
<video :src="withBase('/examples/preset-morph-blend.mp4')" autoplay loop muted playsinline style="width:100%;max-width:480px;border-radius:8px;display:block"></video>
|
|
1075
|
-
|
|
1076
|
-
*Um blend real entre N presets: em vez de saltar de um cue para outro, estados de
|
|
1077
|
-
parâmetros salvos viram pesos numa tabela de morph que você pode automatizar, mapear
|
|
1078
|
-
em MIDI ou guiar por uma timeline de cenas.*
|
|
1079
|
-
|
|
1080
|
-
> *"Grave minha varredura de cutoff do filtro por quatro compassos, então faça loop
|
|
1081
|
-
> como uma automation lane para eu tirar as mãos durante o drop."*
|
|
1082
|
-
|
|
1083
|
-
<video :src="withBase('/examples/automation-lane-loop.mp4')" autoplay loop muted playsinline style="width:100%;max-width:480px;border-radius:8px;display:block"></video>
|
|
1084
|
-
|
|
1085
|
-
*`create_automation_lane` amostra um parâmetro-alvo num buffer em fase com o compasso
|
|
1086
|
-
e depois toca isso de volta por um Lookup CHOP. Chame a mesma lane em modo `record`
|
|
1087
|
-
ou `loop` para armar, capturar e tocar movimentos reutilizáveis de botão.*
|
|
1088
|
-
|
|
1089
|
-
> *"Grave meu CHOP do controlador manual por oito compassos, faça loop do melhor
|
|
1090
|
-
> take e toque de volta como fonte de modulação reutilizável."*
|
|
1091
|
-
|
|
1092
|
-
<video :src="withBase('/examples/chop-recorder-replay.mp4')" autoplay loop muted playsinline style="width:100%;max-width:480px;border-radius:8px;display:block"></video>
|
|
1093
|
-
|
|
1094
|
-
*`create_chop_recorder` transforma qualquer fluxo CHOP (OSC, MIDI, feature de áudio,
|
|
1095
|
-
pose ou controle customizado) numa superfície de captura / playback / loop, então um
|
|
1096
|
-
gesto ao vivo vira parte do rig em vez de sumir depois do ensaio.*
|
|
1097
|
-
|
|
1098
|
-
> *"No compasso 32 dispare o cue do drop, no compasso 64 inicie o auto-montage e no
|
|
1099
|
-
> fim da faixa congele a saída até eu limpar."*
|
|
1100
|
-
|
|
1101
|
-
**O que você recebe:** uma primitiva de scheduler baseada em timers/segmentos
|
|
1102
|
-
nomeados. Use para callbacks temporizados pequenos, ou coloque `create_scene_timeline`
|
|
1103
|
-
por cima quando quiser um arranjador de música scrubbable.
|
|
1104
|
-
|
|
1105
|
-
> *"Monte um dashboard de celular com botões de cue para intro/drop/break, dois
|
|
1106
|
-
> faders mestres, uma faixa VU ao vivo e botões grandes de Blackout / Freeze para
|
|
1107
|
-
> recuperação de emergência."*
|
|
1108
|
-
|
|
1109
|
-
<video :src="withBase('/examples/live-dashboard-panic.mp4')" autoplay loop muted playsinline style="width:100%;max-width:480px;border-radius:8px;display:block"></video>
|
|
1110
|
-
|
|
1111
|
-
*Um cockpit único de performance servido pelo TouchDesigner: disparo de cues,
|
|
1112
|
-
faders, leitura ao vivo e controles de panic numa página para celular/laptop. Use
|
|
1113
|
-
apenas numa rede confiável.*
|
|
1114
|
-
|
|
1115
|
-
> *"Atualize o stage dashboard para layout v2: VU estéreo, BPM vindo de
|
|
1116
|
-
> `/project1/tempo_null`, marcadores de timeline de cue vindos do meu setlist e
|
|
1117
|
-
> uma barra PANIC fixa com toque de confirmação."*
|
|
1118
|
-
|
|
1119
|
-
<video :src="withBase('/examples/stage-dashboard-v2.mp4')" autoplay loop muted playsinline style="width:100%;max-width:480px;border-radius:8px;display:block"></video>
|
|
1120
|
-
|
|
1121
|
-
*`create_stage_dashboard` com `layout:"v2"` mantém compatibilidade com o dashboard
|
|
1122
|
-
original e adiciona leitura de front-of-house: VU estéreo, BPM, overlay de FPS /
|
|
1123
|
-
cook, faixa de timeline de cues e uma superfície de panic em duas etapas.*
|
|
1124
|
-
|
|
1125
|
-
> *"Rode um dry-run do AI show director: permita um cue de intro de banda
|
|
1126
|
-
> pré-aprovado, coloque um pedido de fog de três segundos na fila de aprovação do
|
|
1127
|
-
> operador, e bloqueie um pedido de blackout."*
|
|
1128
|
-
|
|
1129
|
-
|
|
1130
|
-
*`tdmcp-agent show-director` é uma superfície de política, não um gatilho perigoso
|
|
1131
|
-
de hardware. Ele valida intents estruturadas de show, retorna decisões allow /
|
|
1132
|
-
approval / block, mantém fila de aprovação e audit log, e marca todo plano de ação
|
|
1133
|
-
como dry-run-only até um caminho humano/de operador resolver aquilo.*
|
|
1134
|
-
|
|
1135
|
-
> *"Antes da banda entrar, arme a cena Soundcraft pré-declarada `band_a_intro`
|
|
1136
|
-
> pelo AI Show Director. Coloque na fila de aprovação, amarre o hash do catálogo e
|
|
1137
|
-
> mostre o plano dry-run sem contatar o mixer."*
|
|
1138
|
-
|
|
1139
|
-
*`arm_mixer_scene` é separado de `arm_effect`: só um `scene_id` pré-declarado no
|
|
1140
|
-
catálogo entra na fila de aprovação, a aprovação revalida o hash do catálogo atual
|
|
1141
|
-
e o adapter dry-run devolve `hardware_changed:false`. A saída útil é o plano
|
|
1142
|
-
revisado pelo operador e o estado de auditoria, não uma ilustração decorativa de
|
|
1143
|
-
mixer.*
|
|
1144
|
-
|
|
1145
|
-
> *"Trave o show em timecode OSC de entrada, siga a timeline quadro a quadro e pule
|
|
1146
|
-
> para cues nomeados se o rótulo de timecode disser chorus ou blackout."*
|
|
1147
|
-
|
|
1148
|
-
|
|
1149
|
-
*`sync_timecode` conecta MTC / LTC / OSC timecode a um CHOP normalizado e pode guiar
|
|
1150
|
-
a timeline do TD. Combine com `control_timeline_transport` para comandos explícitos
|
|
1151
|
-
de play, pause, seek, rate e cue.*
|
|
1152
|
-
|
|
1153
|
-
> *"Agende a instalação do lobby: iniciar a cena ocean todo dia útil às 09:00,
|
|
1154
|
-
> trocar para o set dusk às 18:00 e rodar um dry-run do agendamento primeiro."*
|
|
1155
|
-
|
|
1156
|
-
|
|
1157
|
-
*`tdmcp-agent schedule` é o companheiro cron-lite para instalações sem operador. Ele
|
|
1158
|
-
usa agendamento por relógio de parede com timezone, pode fazer dry-run e pode disparar
|
|
1159
|
-
comandos, cues ou setlists.*
|
|
1160
|
-
|
|
1161
|
-
> *"Grave as próximas chamadas MCP como uma macro chamada soundcheck, então rode de
|
|
1162
|
-
> novo na segunda máquina depois que a rede do palco estiver online."*
|
|
1163
|
-
|
|
1164
|
-
|
|
1165
|
-
*Use `macro_recorder` para capturar uma macro JSON portátil e `run_macro_script` para
|
|
1166
|
-
reproduzi-la depois. O lado CLI também consegue fazer fanout de um comando para
|
|
1167
|
-
vários agentes remotos quando várias máquinas TD precisam do mesmo setup.*
|
|
1168
|
-
|
|
1169
|
-
> *"Planeja um set de 20 minutos atravessando minhas três cenas em modo dry-run —
|
|
1170
|
-
> me mostra o que o diretor de IA vai fazer antes de tocar em qualquer coisa."*
|
|
1171
|
-
|
|
1172
|
-
|
|
1173
|
-
*A camada de política do AI Show Director avalia cada chamada de ferramenta de
|
|
1174
|
-
show em modo dry-run e devolve a ação planejada + justificativa (qual cena, qual
|
|
1175
|
-
transição, quando), então o artista pré-visualiza um set autônomo antes de
|
|
1176
|
-
encostar na bridge. Aprove, edite ou rejeite antes do show rodar.*
|
|
1177
|
-
|
|
1178
|
-
> *"Me dá um dashboard de FOH com VU estéreo, BPM ao vivo do meu detector de tempo,
|
|
1179
|
-
> overlay de FPS, faixa da próxima cue e uma barra PANIC fixa."*
|
|
1180
|
-
|
|
1181
|
-
<video :src="withBase('/examples/stage-dashboard-v2.mp4')" autoplay loop muted playsinline style="width:100%;max-width:480px;border-radius:8px;display:block"></video>
|
|
1182
|
-
|
|
1183
|
-
*`layout:"v2"` adiciona um par VU estéreo, leitura de BPM alimentada por um Null
|
|
1184
|
-
CHOP de `detect_tempo`, overlay de FPS / cook-time / frame, faixa de timeline de
|
|
1185
|
-
cues vinda de um array de pares de `compose_cue_list` e uma barra PANIC com toque de
|
|
1186
|
-
confirmação — sem quebrar o dashboard v1 byte por byte.*
|
|
1187
|
-
|
|
1188
|
-
> *"Pula minha timeline pra cue do refrão, coloca rate 1.25 e dá play — pelo
|
|
1189
|
-
> caminho REST rápido, não por exec de Python."*
|
|
1190
|
-
|
|
1191
|
-
|
|
1192
|
-
*O novo endpoint `POST /api/transport` lida com play / pause / seek / cue / rate
|
|
1193
|
-
sem `executePythonScript`. A ferramenta prefere o endpoint via `tryEndpoint` e cai
|
|
1194
|
-
para exec apenas em bridges antigas. Latência mais baixa, amigável a bridge
|
|
1195
|
-
hardenada.*
|
|
1196
|
-
|
|
1197
|
-
> *"Adiciona uma corrente de segurança kill/dimmer na saída master com fade de
|
|
1198
|
-
> 2 segundos e um botão Emergency de pânico que eu posso apertar pelo celular."*
|
|
1199
|
-
|
|
1200
|
-
<video :src="withBase('/examples/safety-blackout-chain.mp4')" autoplay loop muted playsinline style="width:100%;max-width:480px;border-radius:8px;display:block"></video>
|
|
1201
|
-
|
|
1202
|
-
*`create_safety_blackout_chain` envolve o TOP de programa com um Level/dim
|
|
1203
|
-
controlado por um Null CHOP `safety_dim` (0 = aceso, 1 = preto total), um fade de
|
|
1204
|
-
2 segundos controlado por Speed, e um toggle `Panic` exposto. Faça bind do
|
|
1205
|
-
`safety_dim` a um fader do celular com `bind_to_channel`, ou ligue um botão
|
|
1206
|
-
"dead-man" físico ao Panic. Funciona offline e é seguro instalar em uma bridge com
|
|
1207
|
-
`TDMCP_BRIDGE_ALLOW_EXEC=0`.*
|
|
1208
|
-
|
|
1209
|
-
> *"Monta um setlist cronometrado que cicla por três cenas — intro 30s, drop 60s,
|
|
1210
|
-
> outro 45s — com crossfades de 2 segundos e um HUD mostrando agora/próximo/restante."*
|
|
1211
|
-
|
|
1212
|
-
<video :src="withBase('/examples/setlist-runner-hud.mp4')" autoplay loop muted playsinline style="width:100%;max-width:480px;border-radius:8px;display:block"></video>
|
|
1213
|
-
|
|
1214
|
-
*`create_setlist_runner` instala um Timer CHOP com um segmento por cena, um bus de
|
|
1215
|
-
crossfade e um Text TOP HUD lendo agora/próximo/segundos restantes. O Parameter
|
|
1216
|
-
Execute DAT `param_engine` escuta Play/Row/Skip/Prev para você sobrescrever a
|
|
1217
|
-
programação ao vivo — pausar numa cena, pular adiante ou voltar sem reescrever o
|
|
1218
|
-
timer.*
|
|
1219
|
-
|
|
1220
|
-
> *"Envolve minha entrada NDI num watchdog que troca automaticamente pra um MP4
|
|
1221
|
-
> pré-renderizado se a câmera cair, com crossfade de 250ms e um toggle de recuperação fixo."*
|
|
1222
|
-
|
|
1223
|
-
|
|
1224
|
-
*`create_show_failover` roda um Info CHOP na fonte ao vivo e observa o delta de
|
|
1225
|
-
`total_cooks` — quando ele para de subir, o watchdog roteia um Switch TOP pro
|
|
1226
|
-
MoviefileIn de backup num crossfade de 250ms. O toggle `sticky_recover` impede o
|
|
1227
|
-
ping-pong quando o NDI pisca, então o show não fica estroboscópico numa câmera
|
|
1228
|
-
instável.*
|
|
1229
|
-
|
|
1230
|
-
> *"Liga minha pose corporal ao visual: quando eu levanto a mão direita o
|
|
1231
|
-
> caleidoscópio gira, quando eu abro os braços o bloom dobra de intensidade."*
|
|
1232
|
-
|
|
1233
|
-
<video :src="withBase('/examples/pose-reactive-bindings.mp4')" autoplay loop muted playsinline style="width:100%;max-width:480px;border-radius:8px;display:block"></video>
|
|
1234
|
-
|
|
1235
|
-
*Encadeie `setup_body_tracking` (fonte de pose MediaPipe) em `create_pose_reactive`
|
|
1236
|
-
para obter canais CHOP nomeados por articulação e gestos derivados
|
|
1237
|
-
(`right_hand_up`, `arms_open`, `lean_left`). Mapeie esses canais para a rotação do
|
|
1238
|
-
caleidoscópio e o nível do bloom — a pose vira uma superfície de controle, sem
|
|
1239
|
-
MIDI.*
|
|
1240
|
-
|
|
1241
|
-
> *"Cria o meu reativo, mas usa o novo gate de transiente pra palmas dispararem
|
|
1242
|
-
> um strobe, e dá um duck no bloom em cada bumbo tipo sidechain compressor."*
|
|
1243
|
-
|
|
1244
|
-
<video :src="withBase('/examples/audio-reactive-gate-duck.mp4')" autoplay loop muted playsinline style="width:100%;max-width:480px;border-radius:8px;display:block"></video>
|
|
1245
|
-
|
|
1246
|
-
*`create_audio_reactive` agora aceita `transient_gate:true` (+ `transient_threshold`,
|
|
1247
|
-
`transient_hold_ms`) e `sidechain_duck:true` (+ `duck_depth`, `duck_release_ms`)
|
|
1248
|
-
para adicionar buses de gate e duck à mesma rede. Os defaults continuam desligados,
|
|
1249
|
-
então containers reativos existentes ficam byte-idênticos — opte por dentro só
|
|
1250
|
-
quando quiser os buses novos.*
|
|
1251
|
-
|
|
1252
|
-
> *"Enfileire meus cues de strobe e logo quando eu apertar o botão, mas só dispare
|
|
1253
|
-
> no próximo limite de frase de 16 compassos para o drop cair musicalmente."*
|
|
1254
|
-
|
|
1255
|
-
|
|
1256
|
-
*`create_phrase_locked_cue_engine` observa um CHOP de cue pendente, coloca pulsos
|
|
1257
|
-
numa fila e trava o disparo contra um Beat CHOP local de frase. O Null CHOP de
|
|
1258
|
-
saída emite o trigger quantizado musicalmente, enquanto PhraseLength, Active, Flush
|
|
1259
|
-
e QueueDepth dão controle ao operador sobre a fila.*
|
|
1260
|
-
|
|
1261
|
-
## Saída & mapeamento
|
|
1262
|
-
|
|
1263
|
-
> *"Mande o visual final para uma janela em tela cheia no meu segundo monitor."*
|
|
1264
|
-
|
|
1265
|
-
> *"Envie isto via NDI para eu usar no OBS."*
|
|
1266
|
-
|
|
1267
|
-
> *"Faça corner-pin disto num projetor e me deixe arrastar os cantos."*
|
|
1268
|
-
|
|
1269
|
-
<video :src="withBase('/examples/projection-mapping.mp4')" autoplay loop muted playsinline style="width:100%;max-width:480px;border-radius:8px;display:block"></video>
|
|
1270
|
-
|
|
1271
|
-
*Uma fonte distorcida por um corner-pin (keystone) — arraste os quatro cantos para
|
|
1272
|
-
alinhar com uma parede, tela ou objeto.*
|
|
1273
|
-
|
|
1274
|
-
> *"Grave a saída em um arquivo de vídeo por 30 segundos."*
|
|
1275
|
-
|
|
1276
|
-
> *"Inspecione a GPU e os displays conectados, então me diga qual plano de saída é
|
|
1277
|
-
> seguro para este rig de projetores."*
|
|
1278
|
-
|
|
1279
|
-
> *"Faça bridge deste TOP por shared memory para a máquina Unreal, e receba de volta
|
|
1280
|
-
> um fluxo CHOP de controle vindo do processo de luz."*
|
|
1281
|
-
|
|
1282
|
-
> *"Monte uma pipeline de fixtures DMX para oito barras RGBW via Art-Net universo 1,
|
|
1283
|
-
> com canais de dimmer, cor e strobe expostos."*
|
|
1284
|
-
|
|
1285
|
-
*`create_dmx_fixture_pipeline` organiza perfis de fixture, padding de slots DMX e
|
|
1286
|
-
um DMX Out CHOP para Art-Net ou sACN. Ele deve mostrar sobreposições, warnings acima
|
|
1287
|
-
do canal 512 e nomes exatos dos canais antes de qualquer coisa ir ao vivo; saída de
|
|
1288
|
-
fixture é hardware, então o cookbook mantém isso como relatório de
|
|
1289
|
-
roteamento/controle verificado, não como preview falso de luz.*
|
|
1290
|
-
|
|
1291
|
-
> *"Crie um arquivo inicial de config `TDMCP_*` para este notebook de show, mas deixe
|
|
1292
|
-
> segredos comentados e recuse sobrescrever o arquivo existente sem `force`."*
|
|
1293
|
-
|
|
1294
|
-
|
|
1295
|
-
*`tdmcp-agent config init` imprime ou escreve toda a superfície `.env` que o servidor lê,
|
|
1296
|
-
com segredos de bridge/LLM comentados para preenchimento manual. É pequeno, mas torna
|
|
1297
|
-
o setup de máquinas de turnê repetível em vez de depender de memória oral.*
|
|
1298
|
-
|
|
1299
|
-
**O que você recebe:** ferramentas de preparação de palco para displays, capacidade
|
|
1300
|
-
de GPU, DMX / Art-Net, IPC por shared memory e fanout multi-agente. Nesses casos de
|
|
1301
|
-
infraestrutura, a saída útil costuma ser um relatório de roteamento verificado em vez
|
|
1302
|
-
de um preview bonito.
|
|
1303
|
-
|
|
1304
|
-
> *"Põe um scope de histograma RGB+luma estilo broadcast no canto da minha saída
|
|
1305
|
-
> pra eu ver se estou esmagando os pretos."*
|
|
1306
|
-
|
|
1307
|
-
|
|
1308
|
-
*Um GLSL TOP agrupa luminância e RGB por canal, normaliza por CHOPs e renderiza as
|
|
1309
|
-
barras via Script SOP + Render TOP num Null TOP pronto pra overlay. Visual de
|
|
1310
|
-
waveform-monitor de verdade, atualizando ao vivo com o seu programa.*
|
|
1311
|
-
|
|
1312
|
-
> *"Monta um ensaio com dois projetores pra AI-Controlled Party — uma parede pro
|
|
1313
|
-
> visual principal, outra pras letras — e sincroniza ambos na mesma cue list."*
|
|
1314
|
-
|
|
1315
|
-
<video :src="withBase('/examples/ai-party-two-projector-rehearsal.mp4')" autoplay loop muted playsinline style="width:100%;max-width:480px;border-radius:8px;display:block"></video>
|
|
1316
|
-
|
|
1317
|
-
*Dois `outTOP`s conectados a dois displays físicos via `setup_output`,
|
|
1318
|
-
compartilhando um único clock de `compose_cue_list` pra que o overlay de letra vire
|
|
1319
|
-
em sincronia com as mudanças de cena. Espelha o harness de ensaio que a
|
|
1320
|
-
AI-Controlled Party usa para ensaios offline.*
|
|
1321
|
-
|
|
1322
|
-
> *"Monte um rig de projection mapping interativo para webcam e projetor:
|
|
1323
|
-
> movimento acorda partículas ciano, cards magenta flutuam pela parede, e eu
|
|
1324
|
-
> consigo alternar entre final, câmera, movimento, blobs e calibração."*
|
|
1325
|
-
|
|
1326
|
-
<video :src="withBase('/examples/interactive-projection-motion-dots.mp4')" autoplay loop muted playsinline style="width:100%;max-width:480px;border-radius:8px;display:block"></video>
|
|
1327
|
-
|
|
1328
|
-
*`create_interactive_projection_mapping` monta o rig de ensaio com fonte de câmera,
|
|
1329
|
-
sintética ou TOP existente, campo de movimento por diferença de frames, branch de
|
|
1330
|
-
blob-mask, saída de projection mapping com corner pin e switch de debug. Sensitivity,
|
|
1331
|
-
TrailDecay, BlobThreshold e ProjectionBrightness ficam expostos para calibração na sala.*
|
|
1332
|
-
|
|
1333
|
-
> *"Envie meu TOP final como NDI chamado stage_program, mantenha inativo até eu
|
|
1334
|
-
> aprovar e também crie um sender Syphon/Spout para a máquina local de captura."*
|
|
1335
|
-
|
|
1336
|
-
<video :src="withBase('/examples/external-io-ndi-syphon-return.mp4')" autoplay loop muted playsinline style="width:100%;max-width:480px;border-radius:8px;display:block"></video>
|
|
1337
|
-
|
|
1338
|
-
*`create_external_io` agora inclui `ndi_out` e `syphon_spout_out` junto de OSC,
|
|
1339
|
-
MIDI, DMX, Art-Net e modos de streaming. Ele conecta o TOP de origem, define os
|
|
1340
|
-
nomes de sender/source e deixa Active desligado a menos que o prompt peça para
|
|
1341
|
-
começar a transmitir.*
|
|
1342
|
-
|
|
1343
|
-
> *"Monte um esqueleto de facade mapping para três projetores com edge blend
|
|
1344
|
-
> horizontal, brilho por projetor, canvas de preview e curvas smoothstep."*
|
|
1345
|
-
|
|
1346
|
-
<video :src="withBase('/examples/facade-mapping-edge-blend.mp4')" autoplay loop muted playsinline style="width:100%;max-width:480px;border-radius:8px;display:block"></video>
|
|
1347
|
-
|
|
1348
|
-
*`create_facade_mapping` distribui um TOP de origem em 1-8 branches de projetor,
|
|
1349
|
-
recorta cada fatia com overlap, aplica ramps de blend / branches de corner pin, cria
|
|
1350
|
-
Nulls de saída por projetor e expõe brilho mais controles de largura/curva de blend.
|
|
1351
|
-
É o esqueleto de setup antes do alinhamento físico dos projetores.*
|
|
1352
|
-
|
|
1353
|
-
> *"Prepare testes fulldome sem hardware para este feed glitch gerado: faça um dome
|
|
1354
|
-
> master fisheye com controles de Rotation de horizonte e FOV, então monte uma cena
|
|
1355
|
-
> de teste cubemap real para eu comparar o caminho de maior fidelidade."*
|
|
1356
|
-
|
|
1357
|
-
<video :src="withBase('/examples/dome-output-glitch.mp4')" autoplay loop muted playsinline style="width:100%;max-width:480px;border-radius:8px;display:block"></video>
|
|
1358
|
-
|
|
1359
|
-
<video :src="withBase('/examples/cubemap-dome-master.mp4')" autoplay loop muted playsinline style="width:100%;max-width:480px;border-radius:8px;display:block"></video>
|
|
1360
|
-
|
|
1361
|
-
*Use `create_dome_output` para uma fonte 2D equirectangular/panorâmica e
|
|
1362
|
-
`create_cubemap_dome` quando você tem, ou quer gerar, uma fonte cubemap real. Os
|
|
1363
|
-
dois produzem um dome master quadrado, mas geometria final, FOV e costuras precisam
|
|
1364
|
-
ser ajustados contra o dome ou simulador real; a saída útil é o caminho do TOP
|
|
1365
|
-
mapeado e os controles, não uma ilustração genérica de planetário.*
|
|
1366
|
-
|
|
1367
|
-
## Consertar & entender
|
|
1368
|
-
|
|
1369
|
-
> *"Algo parece quebrado — confira a rede em busca de erros e conserte."*
|
|
1370
|
-
|
|
1371
|
-
> *"Pegue um inline preview de `/project1/out1`: me dê um thumbnail de 256 px,
|
|
1372
|
-
> metadados de cook, parâmetros alterados e erros dos pais numa resposta
|
|
1373
|
-
> estruturada."*
|
|
1374
|
-
|
|
1375
|
-
<video :src="withBase('/examples/inline-preview-snapshot.mp4')" autoplay loop muted playsinline style="width:100%;max-width:480px;border-radius:8px;display:block"></video>
|
|
1376
|
-
|
|
1377
|
-
*`get_inline_preview` é a passada compacta de inspeção para agentes: uma chamada
|
|
1378
|
-
retorna thumbnail limitado, resolução / formato de pixel / stats de cook,
|
|
1379
|
-
parâmetros alterados e uma varredura de erros nos pais sem encadear várias
|
|
1380
|
-
ferramentas de preview e erro.*
|
|
1381
|
-
|
|
1382
|
-
> *"Explique o que esta rede está fazendo, passo a passo."*
|
|
1383
|
-
|
|
1384
|
-
> *"Leia os modos de parâmetro de todos os nós importantes em `/project1/hero`
|
|
1385
|
-
> numa chamada batch, então me diga quais parâmetros são expressão, bind ou canal
|
|
1386
|
-
> exportado."*
|
|
1387
|
-
|
|
1388
|
-
|
|
1389
|
-
*O caminho `POST /api/param_modes/batch` da bridge deixa agentes inspecionarem
|
|
1390
|
-
modos expression, bind, export e constant de muitos nós em uma rodada só. Ele
|
|
1391
|
-
substitui o loop antigo de vários execs quando você precisa entender por que um rig
|
|
1392
|
-
está reagindo, travado ou sobrescrito.*
|
|
1393
|
-
|
|
1394
|
-
> *"Isto está lento — ache o gargalo e otimize."*
|
|
1395
|
-
|
|
1396
|
-
> *"Pontue este build em paleta, movimento, complexidade, erros e performance, então
|
|
1397
|
-
> sugira as menores mudanças que melhorariam o resultado."*
|
|
1398
|
-
|
|
1399
|
-
|
|
1400
|
-
*`score_build` é read-only e devolve uma rubrica de 0 a 100 com sugestões
|
|
1401
|
-
determinísticas. `enhance_build` pode pré-visualizar ou aplicar um pequeno ciclo de
|
|
1402
|
-
melhoria permitido, então pontuar de novo para mostrar se a intervenção ajudou.*
|
|
1403
|
-
|
|
1404
|
-
> *"Extraia as cinco cores dominantes de `/project1/look/out1` e use-as como
|
|
1405
|
-
> swatches para a próxima paleta e correção de cor."*
|
|
1406
|
-
|
|
1407
|
-
<video :src="withBase('/examples/palette-extraction-swatches.mp4')" autoplay loop muted playsinline style="width:100%;max-width:480px;border-radius:8px;display:block"></video>
|
|
1408
|
-
|
|
1409
|
-
*`extract_palette` captura um preview TOP e roda k-means determinístico nos pixels.
|
|
1410
|
-
É read-only, então é seguro para ciclos de crítica, hand-off de paleta e prompts do
|
|
1411
|
-
tipo "faça o próximo look combinar com este".*
|
|
1412
|
-
|
|
1413
|
-
> *"Pergunte ao vision copilot o que domina este TOP, se o assunto é legível do fundo
|
|
1414
|
-
> da sala e qual única mudança mais melhoraria o resultado."*
|
|
1415
|
-
|
|
1416
|
-
|
|
1417
|
-
*`copilot_vision` envia um TOP renderizado mais a sua pergunta ao LLM multimodal
|
|
1418
|
-
configurado. Ele complementa ferramentas determinísticas como `caption_top` e
|
|
1419
|
-
`score_build` quando você quer resposta de direção de arte, não só medições.*
|
|
1420
|
-
|
|
1421
|
-
> *"Eu sei que quero `create_audio_reactive`, mas só disse 'barras neon do microfone'
|
|
1422
|
-
> — infira os argumentos obrigatórios ausentes pelo schema e mostre a chamada
|
|
1423
|
-
> proposta."*
|
|
1424
|
-
|
|
1425
|
-
|
|
1426
|
-
*`elicit_missing_args` usa o schema registrado da ferramenta mais o contexto da
|
|
1427
|
-
conversa para propor apenas os campos ausentes. É read-only e ajuda agentes a fazerem
|
|
1428
|
-
menos perguntas manuais sem inventar parâmetros inexistentes.*
|
|
1429
|
-
|
|
1430
|
-
> *"Faça profile de cook cost por 60 frames e ranqueie os nós com maior chance de
|
|
1431
|
-
> causar queda de frame."*
|
|
1432
|
-
|
|
1433
|
-
> *"Arrume o layout para eu conseguir ler."*
|
|
1434
|
-
|
|
1435
|
-
> *"Troque este `noiseTOP` por um `rampTOP`, mantenha o nome e os fios, preserve os
|
|
1436
|
-
> parâmetros compatíveis e relate o que não pôde ser carregado."*
|
|
1437
|
-
|
|
1438
|
-
|
|
1439
|
-
*`swap_operator` é a versão cuidadosa de "substitua este nó": ele tira snapshot dos
|
|
1440
|
-
fios e parâmetros, recria o tipo de operador no mesmo lugar, reconecta o que consegue
|
|
1441
|
-
e devolve parâmetros descartados/falhas explicitamente.*
|
|
1442
|
-
|
|
1443
|
-
> *"Tenta consertar essa cadeia de render quebrada — mas se a contagem de erros
|
|
1444
|
-
> aumentar, desfaça toda mudança que você fez."*
|
|
1445
|
-
|
|
1446
|
-
|
|
1447
|
-
*O loop de repair agora tira snapshot de `(par.path, par.mode)` e `(op.path,
|
|
1448
|
-
op.bypass, op.display)` antes de cada passo. Se `errors_after >= errors_before` e
|
|
1449
|
-
não for dry-run, todo passo aplicado é revertido e o relatório carrega uma flag
|
|
1450
|
-
`rolled_back: true` — o agente não consegue piorar a situação. Uma passada de
|
|
1451
|
-
reparo que se desfaz sozinha, a rede de segurança que todo artista queria do "AI,
|
|
1452
|
-
conserta aí".*
|
|
1453
|
-
|
|
1454
|
-
> *"Roda um auto-repair em `/project1` — até três passadas, para se os erros
|
|
1455
|
-
> pararem de cair e desfaz qualquer passada que piore o estado."*
|
|
1456
|
-
|
|
1457
|
-
|
|
1458
|
-
*`auto_repair_loop` é o verbo "conserta tudo": ele dirige `repair_network` em
|
|
1459
|
-
iterações, marca `errors_before`/`errors_after` por passada, para no platô e
|
|
1460
|
-
herda o mesmo rollback de segurança. Uma chamada no lugar do ciclo manual
|
|
1461
|
-
reparar/checar/repetir.*
|
|
1462
|
-
|
|
1463
|
-
> *"Antes de tocar neste patch de show, amostre `/project1/out1` num grid 8x8 e
|
|
1464
|
-
> me diga se ele está vivo, quais cores aparecem por alto e se vale gastar uma
|
|
1465
|
-
> captura completa."*
|
|
1466
|
-
|
|
1467
|
-
*`get_preview` com `sample_grid` devolve um grid de amostras RGBA mais estatísticas
|
|
1468
|
-
min/max/mean por canal em JSON, sem codificar imagem. Use como checagem barata de
|
|
1469
|
-
"este TOP está vivo?" antes de gastar contexto com preview completo ou crítica.*
|
|
1470
|
-
|
|
1471
|
-
<video :src="withBase('/examples/cookbook-ops-sample-grid-source.mp4')" autoplay loop muted playsinline style="width:100%;max-width:480px;border-radius:8px;display:block"></video>
|
|
1472
|
-
|
|
1473
|
-
*Capturado ao vivo do TOP
|
|
1474
|
-
`/project1/cookbook_ops_demo/sample_grid_halftone_source/out1` amostrado com
|
|
1475
|
-
`sample_grid:8`. O clipe mostra o output do TouchDesigner sendo amostrado; a
|
|
1476
|
-
resposta real da ferramenta é o grid RGBA e as estatísticas em JSON.*
|
|
1477
|
-
|
|
1478
|
-
> *"Dispare o reset de `/project1/trails/feedback1`, espere 12 frames e depois
|
|
1479
|
-
> colete o preview para eu ver o burst depois que o feedback loop estabilizar."*
|
|
1480
|
-
|
|
1481
|
-
*`get_preview` agora aceita `pre_pulses` e `delay_frames`: pulsa um ou mais
|
|
1482
|
-
parâmetros no mesmo frame, adia a captura e depois coleta por `job_id`. É para
|
|
1483
|
-
looks transitórios que somem se você capturar um frame cedo demais.*
|
|
1484
|
-
|
|
1485
|
-
<video :src="withBase('/examples/cookbook-ops-preview-burst.mp4')" autoplay loop muted playsinline style="width:100%;max-width:480px;border-radius:8px;display:block"></video>
|
|
1486
|
-
|
|
1487
|
-
*Capturado ao vivo do TOP `/project1/cookbook_ops_demo/preview_burst/out1` depois
|
|
1488
|
-
de disparar `reset` em `/project1/cookbook_ops_demo/preview_burst/feedback1` e
|
|
1489
|
-
esperar 12 frames pelo tdmcp. Este clipe é o resultado do TouchDesigner, não uma
|
|
1490
|
-
ilustração do prompt.*
|
|
1491
|
-
|
|
1492
|
-
> *"Antes de setar o device de entrada em `/project1/live_in/moviefilein1`, leia
|
|
1493
|
-
> os valores de menu e me mostre os nomes de máquina exatos que posso usar sem o
|
|
1494
|
-
> TouchDesigner escolher silenciosamente o primeiro item."*
|
|
1495
|
-
|
|
1496
|
-
*`get_parameter_menu` busca ao vivo `menuNames`, `menuLabels` e o valor atual do
|
|
1497
|
-
menu no build de TouchDesigner rodando. Peça isso antes de setar parâmetros Menu /
|
|
1498
|
-
StrMenu; se raw exec estiver desligado, o fallback vem marcado como catálogo
|
|
1499
|
-
embutido possivelmente defasado.*
|
|
1500
|
-
|
|
1501
|
-
> *"Leia as linhas 500-560 de `/project1/show/state_table`, inclua o header e as
|
|
1502
|
-
> cinco primeiras linhas, e me diga se algum estado de cue parece errado."*
|
|
1503
|
-
|
|
1504
|
-
*`get_dat_content` lê Text DATs e Table DATs em páginas: `offset`, `limit`,
|
|
1505
|
-
`include_header` e `preview_rows` impedem uma tabela enorme de cues de inundar o
|
|
1506
|
-
modelo. O resultado inclui contagem de linhas, estado de truncamento e a janela
|
|
1507
|
-
exata lida.*
|
|
1508
|
-
|
|
1509
|
-
> *"Depois de montar o hero look, foque o Network Editor no novo output, no painel
|
|
1510
|
-
> de controle e no composite final para eu inspecionar os nós exatos sem caçar na
|
|
1511
|
-
> rede."*
|
|
1512
|
-
|
|
1513
|
-
*`focus_network_editor` é um movimento de UI: ele faz pan/zoom no Network Editor do
|
|
1514
|
-
TouchDesigner para enquadrar os operadores selecionados e não muda nada no grafo. É
|
|
1515
|
-
o passo de handoff depois de um build gerado, não um efeito visual.*
|
|
1516
|
-
|
|
1517
|
-
> *"Arrume `/project1/hero` recursivamente, mas mantenha todo DAT de shader
|
|
1518
|
-
> dockado junto do nó a que pertence."*
|
|
1519
|
-
|
|
1520
|
-
*`arrange_network` mantém a limpeza left-to-right do fluxo de dados, e
|
|
1521
|
-
`include_docked` agora move DATs dockados de GLSL / callbacks pelo mesmo delta do
|
|
1522
|
-
nó dono. Use quando a rede gerada só fica legível se os DATs auxiliares viajarem
|
|
1523
|
-
junto.*
|
|
1524
|
-
|
|
1525
|
-
> *"Desative `/project1/hero/old_grade` para o ensaio, mas não delete — quero
|
|
1526
|
-
> poder reativar se o diretor sentir falta daquele look."*
|
|
1527
|
-
|
|
1528
|
-
*`delete_td_node` com `mode:"bypass"` liga o bypass do operador em vez de destruir
|
|
1529
|
-
o nó. É o meio-termo reversível entre deixar um operador quebrado na cadeia e apagar
|
|
1530
|
-
trabalho de show permanentemente.*
|
|
1531
|
-
|
|
1532
|
-
> *"Reconstrua esta pequena cadeia de post a partir do spec salvo com auto-layout
|
|
1533
|
-
> ligado, para os reruns não deixarem nós empilhados e os fios ficarem legíveis da
|
|
1534
|
-
> esquerda para a direita."*
|
|
1535
|
-
|
|
1536
|
-
*`rebuild_network` com `auto_layout:true` calcula posições a partir do grafo de
|
|
1537
|
-
inputs do spec e sobrescreve coordenadas manuais velhas antes de criar os nós. É
|
|
1538
|
-
útil para round-trips de receita/spec em que a rede correta ainda precisa ficar
|
|
1539
|
-
legível no layout do TD.*
|
|
1540
|
-
|
|
1541
|
-
## Looks reutilizáveis & handoff de show
|
|
1542
|
-
|
|
1543
|
-
Use estes quando o look já funciona e você quer tocar de novo, ensinar, levar para
|
|
1544
|
-
outra sala ou transformar em saída física.
|
|
1545
|
-
|
|
1546
|
-
> *"Deixe este hero look pronto para turnê: exponha controles Speed, Palette, Glow e
|
|
1547
|
-
> Reset, coloque labels claros, salve como `.tox` portátil e inclua uma imagem de
|
|
1548
|
-
> preview para eu reconhecer antes de abrir o TouchDesigner."*
|
|
1549
|
-
|
|
1550
|
-
|
|
1551
|
-
*As ferramentas de pacote ajudam quando servem ao artista: `.tox` portátil,
|
|
1552
|
-
controles visíveis, notas simples e thumbnail da saída real. O resultado é um
|
|
1553
|
-
instrumento visual para colocar no show, não um exercício de handoff técnico.*
|
|
1554
|
-
|
|
1555
|
-
> *"Transforme `/project1/hero_look` num starter de workshop: preserve a rede visual,
|
|
1556
|
-
> capture os controles que eu devo explicar e deixe fácil aplicar em um projeto
|
|
1557
|
-
> vazio na semana que vem."*
|
|
1558
|
-
|
|
1559
|
-
|
|
1560
|
-
*`scaffold_recipe_from_network` pode transformar uma subárvore TD pronta numa
|
|
1561
|
-
receita reaplicável. Para artista, a utilidade é ensino e ensaio repetíveis:
|
|
1562
|
-
reconstruir o look do zero e ajustar os controles expostos na frente das pessoas.*
|
|
1563
|
-
|
|
1564
|
-
> *"Faça um mapa de uma página deste patch: thumbnail da saída final, os três
|
|
1565
|
-
> controles que devo tocar ao vivo e um diagrama simples da esquerda para a direita
|
|
1566
|
-
> mostrando como o sinal vira imagem."*
|
|
1567
|
-
|
|
1568
|
-
|
|
1569
|
-
*Notas geradas só entram aqui quando parecem mapa de estúdio: o que é o look, quais
|
|
1570
|
-
controles importam, o que alimenta a saída e como está o preview atual.*
|
|
1571
|
-
|
|
1572
|
-
> *"Salve este look com três variantes — ambient lenta, refrão de alta energia e
|
|
1573
|
-
> blackout-safe — e marque a favorita para eu encontrar rápido no próximo ensaio."*
|
|
1574
|
-
|
|
1575
|
-
|
|
1576
|
-
*Tags, variantes e notas de versão no vault ajudam artistas a manter uma biblioteca
|
|
1577
|
-
ao vivo organizada: a pergunta vira "qual look eu confio para este cue?", não
|
|
1578
|
-
"qual arquivo eu exportei mês passado?"*
|
|
1579
|
-
|
|
1580
|
-
> *"Monte uma cadeia de controle de grave chamada `bass_energy`, `bass_peak` e
|
|
1581
|
-
> `bass_gate`, depois me mostre onde ligar brightness, blur e pulse no visual
|
|
1582
|
-
> atual."*
|
|
1583
|
-
|
|
1584
|
-
<video :src="withBase('/examples/audio-reactive-gate-duck.mp4')" autoplay loop muted playsinline style="width:100%;max-width:480px;border-radius:8px;display:block"></video>
|
|
1585
|
-
|
|
1586
|
-
*Builders Layer-2 ficam artist-facing quando produzem fontes de modulação limpas,
|
|
1587
|
-
com nomes legíveis. Você ganha canais estáveis para performar, enquanto os detalhes
|
|
1588
|
-
CHOP continuam editáveis quando quiser aprender.*
|
|
1589
|
-
|
|
1590
|
-
> *"Exporte esta escultura generativa de linhas como SVG de polilinhas para meu
|
|
1591
|
-
> AxiDraw, mantendo a escala e orientação do preview para o plot parecer a versão
|
|
1592
|
-
> da tela."*
|
|
1593
|
-
|
|
1594
|
-
<video :src="withBase('/examples/sop-to-svg-plotter.mp4')" autoplay loop muted playsinline style="width:100%;max-width:480px;border-radius:8px;display:block"></video>
|
|
1595
|
-
|
|
1596
|
-
*`export_sop_to_svg` lê primitivas SOP e escreve vetores prontos para plotter. É a
|
|
1597
|
-
ponte da imagem generativa ao vivo para canetas, lasers e impressão.*
|
|
1598
|
-
|
|
1599
|
-
## Autoria de shader & material
|
|
1600
|
-
|
|
1601
|
-
> *"Crie um material GLSL para esta esfera: faixas iridescentes tipo óleo, rim light
|
|
1602
|
-
> suave e um uniform `uTime` que eu possa guiar pela timeline."*
|
|
1603
|
-
|
|
1604
|
-
<video :src="withBase('/examples/glsl-material-iridescent.mp4')" autoplay loop muted playsinline style="width:100%;max-width:480px;border-radius:8px;display:block"></video>
|
|
1605
|
-
|
|
1606
|
-
*`create_glsl_material` cria o GLSL MAT mais os Text DATs auxiliares, conecta os
|
|
1607
|
-
shaders de pixel/vértice e avisa sobre armadilhas de GLSL no TouchDesigner, como
|
|
1608
|
-
`fragColor` ausente, colisões com o preâmbulo F1/F2 e `uTime` não declarado.*
|
|
1609
|
-
|
|
1610
|
-
> *"Importe este sketch do Shadertoy, conecte placeholders nos iChannels se precisar,
|
|
1611
|
-
> exponha controles de Speed e Mouse, e faça preview do GLSL TOP traduzido."*
|
|
1612
|
-
|
|
1613
|
-
<video :src="withBase('/examples/import-shadertoy-nebula.mp4')" autoplay loop muted playsinline style="width:100%;max-width:480px;border-radius:8px;display:block"></video>
|
|
1614
|
-
|
|
1615
|
-
*`import_shadertoy` mapeia `iTime`, `iResolution`, `iMouse` e `iChannelN` para
|
|
1616
|
-
uniforms / entradas TOP amigáveis ao TouchDesigner. Cole `raw_source` quando quiser
|
|
1617
|
-
manter a importação inteira offline.*
|
|
1618
|
-
|
|
1619
|
-
> *"Importe este shader ISF, gere uma página limpa de parâmetros customizados a partir
|
|
1620
|
-
> dos INPUTS e mantenha o GLSL editável no TouchDesigner."*
|
|
1621
|
-
|
|
1622
|
-
<video :src="withBase('/examples/import-isf-plasma-controls.mp4')" autoplay loop muted playsinline style="width:100%;max-width:480px;border-radius:8px;display:block"></video>
|
|
1623
|
-
|
|
1624
|
-
*`import_isf_shader` parseia o cabeçalho JSON do ISF e transforma entradas float /
|
|
1625
|
-
color / bool / event / long em controles TouchDesigner, então sketches de biblioteca
|
|
1626
|
-
viram redes tocáveis em vez de blocos de código colados.*
|
|
1627
|
-
|
|
1628
|
-
> *"Transforme este sketch de GLSL TOP num material no logo 3D, exponha Color, Speed
|
|
1629
|
-
> e Fresnel, depois renderize um preview."*
|
|
1630
|
-
|
|
1631
|
-
**O que você recebe:** uma etapa de autoria de shader que mantém o código editável em
|
|
1632
|
-
DATs enquanto transforma os uniforms importantes em controles tocáveis no
|
|
1633
|
-
TouchDesigner.
|
|
1634
|
-
|
|
1635
|
-
## Efeitos e looks marcantes
|
|
1636
|
-
|
|
1637
|
-
> *"Dobre minha webcam num caleidoscópio de seis lados girando devagar, em tons de
|
|
1638
|
-
> joia profundos, e me mostre um preview."*
|
|
1639
|
-
|
|
1640
|
-
<video :src="withBase('/examples/kaleidoscope-webcam.mp4')" autoplay loop muted playsinline style="width:100%;max-width:480px;border-radius:8px;display:block"></video>
|
|
1641
|
-
|
|
1642
|
-
*Um espelho de dobra polar em GLSL ao vivo transforma qualquer fonte numa mandala
|
|
1643
|
-
simétrica; expõe os Segmentos e um botão de rotação/Velocidade. Apontado para a
|
|
1644
|
-
webcam, faz a sala desabrochar em pétalas caleidoscópicas.*
|
|
1645
|
-
|
|
1646
|
-
> *"Faça meu vídeo parecer um arquivo corrompido que borra e derrete a cada corte
|
|
1647
|
-
> seco — datamosh pesado."*
|
|
1648
|
-
|
|
1649
|
-
<video :src="withBase('/examples/datamosh-pixel-melt.mp4')" autoplay loop muted playsinline style="width:100%;max-width:480px;border-radius:8px;display:block"></video>
|
|
1650
|
-
|
|
1651
|
-
*Um borrão de deslocamento de pixels guiado por feedback que sangra vetores de
|
|
1652
|
-
movimento entre quadros, com controles de Quantidade/Decay — o clássico look de
|
|
1653
|
-
"codec quebrado" que floresce e derrete, numa fonte de teste padrão (troque pelo seu
|
|
1654
|
-
clipe).*
|
|
1655
|
-
|
|
1656
|
-
> *"Transforme isto em pontos de meio-tom âmbar quentes, como impressão de jornal
|
|
1657
|
-
> antigo, e mostre o preview."*
|
|
1658
|
-
|
|
1659
|
-
<video :src="withBase('/examples/halftone-amber-print.mp4')" autoplay loop muted playsinline style="width:100%;max-width:480px;border-radius:8px;display:block"></video>
|
|
1660
|
-
|
|
1661
|
-
*Uma tela de meio-tom em GLSL converte a imagem numa grade de pontos de tinta cujo
|
|
1662
|
-
tamanho acompanha o brilho; expõe a escala dos pontos / Ângulo / matiz. O tom âmbar
|
|
1663
|
-
mais o fundo branco-papel dão uma sensação de impressão retrô.*
|
|
1664
|
-
|
|
1665
|
-
> *"Deixe esta fonte como um sonho febril de Game Boy: dither ordenado de 4 cores,
|
|
1666
|
-
> pixels crocantes, threshold animado e controle Mix ao vivo."*
|
|
1667
|
-
|
|
1668
|
-
<video :src="withBase('/examples/dither-gameboy-poster.mp4')" autoplay loop muted playsinline style="width:100%;max-width:480px;border-radius:8px;display:block"></video>
|
|
1669
|
-
|
|
1670
|
-
*`create_dither` monta dither Bayer / checker / noise / error-diffusion com
|
|
1671
|
-
quantização mono, duotone ou RGB. É um look, não só um filtro utilitário.*
|
|
1672
|
-
|
|
1673
|
-
> *"Gere um campo Voronoi de vitral com sementes animadas, linhas escuras grossas e
|
|
1674
|
-
> controles de paleta para Color A / Color B."*
|
|
1675
|
-
|
|
1676
|
-
<video :src="withBase('/examples/jfa-voronoi-stained-glass.mp4')" autoplay loop muted playsinline style="width:100%;max-width:480px;border-radius:8px;display:block"></video>
|
|
1677
|
-
|
|
1678
|
-
*`create_jfa_voronoi` usa uma cadeia Jump-Flooding (seed init, passes por metade,
|
|
1679
|
-
color pass) para criar mosaicos / vitrais animados com controles ao vivo de sementes
|
|
1680
|
-
e bordas.*
|
|
1681
|
-
|
|
1682
|
-
> *"Distorça esta filmagem com uma distorção líquida fluida que ondula como calor
|
|
1683
|
-
> sobre o quadro inteiro."*
|
|
1684
|
-
|
|
1685
|
-
<video :src="withBase('/examples/displacement-warp-liquid.mp4')" autoplay loop muted playsinline style="width:100%;max-width:480px;border-radius:8px;display:block"></video>
|
|
1686
|
-
|
|
1687
|
-
*Guia um Displace TOP a partir de um campo de ruído animado, então a fonte ondula e
|
|
1688
|
-
flui, com controles de Quantidade/Velocidade — uma distorção de calor / submersa
|
|
1689
|
-
sobre qualquer entrada.*
|
|
1690
|
-
|
|
1691
|
-
> *"Transforme este feed de câmera em linhas de tinta fluindo, como um frame de
|
|
1692
|
-
> videoclipe desenhado com edge tangent flow e carvão animado."*
|
|
1693
|
-
|
|
1694
|
-
<video :src="withBase('/examples/flow-abstraction-ink-lines.mp4')" autoplay loop muted playsinline style="width:100%;max-width:480px;border-radius:8px;display:block"></video>
|
|
1695
|
-
|
|
1696
|
-
*`create_flow_abstraction` monta o caminho ETF / FDoG painterly: fluxo coerente de
|
|
1697
|
-
linhas em vez de bordas Sobel simples, bom para looks de quadrinho, tinta e câmera
|
|
1698
|
-
gravada em metal.*
|
|
1699
|
-
|
|
1700
|
-
> *"Dê a este shot um filtro Kuwahara de pintura a óleo, e me deixe alternar entre
|
|
1701
|
-
> oil, pencil e watercolor durante o set."*
|
|
1702
|
-
|
|
1703
|
-
<video :src="withBase('/examples/npr-kuwahara-paint.mp4')" autoplay loop muted playsinline style="width:100%;max-width:480px;border-radius:8px;display:block"></video>
|
|
1704
|
-
|
|
1705
|
-
*`create_npr_filter` expõe o look não-fotorrealista como componente controlável;
|
|
1706
|
-
`apply_post_processing` também entende `npr_oil`, `npr_pencil` e `npr_watercolor`
|
|
1707
|
-
para cadeias rápidas.*
|
|
1708
|
-
|
|
1709
|
-
> *"Dê a isto uma correção de cor cinematográfica teal-and-orange — afunde um pouco
|
|
1710
|
-
> os pretos e levante as altas-luzes."*
|
|
1711
|
-
|
|
1712
|
-
<video :src="withBase('/examples/cinematic-color-grade.mp4')" autoplay loop muted playsinline style="width:100%;max-width:480px;border-radius:8px;display:block"></video>
|
|
1713
|
-
|
|
1714
|
-
*Uma correção de lift/gamma/gain + saturação/matiz (com LUT opcional) sobre qualquer
|
|
1715
|
-
fonte, expondo as rodas como botões — o look teal/laranja de Hollywood como uma
|
|
1716
|
-
camada de finalização.*
|
|
1717
|
-
|
|
1718
|
-
> *"Dê a esta câmera uma correção de três rodas de verdade: sombras frias, altas-luzes
|
|
1719
|
-
> quentes, um pequeno black offset e controles ao vivo de Lift/Gamma/Gain por canal."*
|
|
1720
|
-
|
|
1721
|
-
<video :src="withBase('/examples/color-wheels-lift-gamma-gain.mp4')" autoplay loop muted playsinline style="width:100%;max-width:480px;border-radius:8px;display:block"></video>
|
|
1722
|
-
|
|
1723
|
-
*`create_color_wheels` monta a superfície clássica de colorista: três Level TOPs
|
|
1724
|
-
tingidos para sombras/médios/altas, offset preto master e saturação. Use quando
|
|
1725
|
-
sliders simples de grade não forem expressivos o bastante.*
|
|
1726
|
-
|
|
1727
|
-
> *"Aplique este LUT .cube ao feed de câmera, mostre um split antes/depois e caia
|
|
1728
|
-
> para GLSL se OCIO não estiver disponível."*
|
|
1729
|
-
|
|
1730
|
-
<video :src="withBase('/examples/lut-film-grade.mp4')" autoplay loop muted playsinline style="width:100%;max-width:480px;border-radius:8px;display:block"></video>
|
|
1731
|
-
|
|
1732
|
-
*`apply_lut` escolhe a melhor rota disponível: OCIO quando existe, lookup por imagem
|
|
1733
|
-
para previews de LUT, ou fallback GLSL a partir de `.cube` parseado quando a máquina
|
|
1734
|
-
está sem dependências extras.*
|
|
1735
|
-
|
|
1736
|
-
> *"Quando eu mover este slider, faça um corte com glitch do primeiro clipe para o
|
|
1737
|
-
> segundo, com um estouro de ruído digital."*
|
|
1738
|
-
|
|
1739
|
-
<video :src="withBase('/examples/transition-glitch-cut.mp4')" autoplay loop muted playsinline style="width:100%;max-width:480px;border-radius:8px;display:block"></video>
|
|
1740
|
-
|
|
1741
|
-
*Uma transição A→B sobre um único botão de Progresso de 0–1 com estilos selecionáveis
|
|
1742
|
-
(dissolve / luma_wipe / slide / zoom / glitch_cut) — arraste o fader para fazer um
|
|
1743
|
-
wipe entre duas fontes no meio do show.*
|
|
1744
|
-
|
|
1745
|
-
> *"Renderize minha câmera como ASCII verde-fósforo brilhante, com cor da fonte nas
|
|
1746
|
-
> áreas claras e um botão Mix para voltar ao original."*
|
|
1747
|
-
|
|
1748
|
-
<video :src="withBase('/examples/ascii-phosphor-camera.mp4')" autoplay loop muted playsinline style="width:100%;max-width:480px;border-radius:8px;display:block"></video>
|
|
1749
|
-
|
|
1750
|
-
*`create_ascii_render` reduz a fonte para células, cria um atlas de glifos em Text
|
|
1751
|
-
TOP e renderiza uma grade de caracteres em GLSL. Os modos mono, source-color e
|
|
1752
|
-
two-color cobrem terminal fósforo, câmera posterizada e palco duotone.*
|
|
1753
|
-
|
|
1754
|
-
> *"Faça um slit-scan vertical da dançarina: cada linha deve ser um momento
|
|
1755
|
-
> diferente no tempo, 120 frames de profundidade, subindo como fitas de tempo."*
|
|
1756
|
-
|
|
1757
|
-
|
|
1758
|
-
*`create_slit_scan` grava a fonte num ring buffer de Cache TOP e amostra isso em
|
|
1759
|
-
GLSL para que cada linha ou coluna venha de um frame passado diferente. O controle
|
|
1760
|
-
Depth define quanto tempo é esticado pela saída.*
|
|
1761
|
-
|
|
1762
|
-
> *"Dê a este feed glitch gerado um time echo: rastros fantasmas recursivos em modo
|
|
1763
|
-
> echo no verso, depois um derretimento time-displace guiado por ramp vertical no
|
|
1764
|
-
> breakdown."*
|
|
1765
|
-
|
|
1766
|
-
<video :src="withBase('/examples/time-echo-glitch.mp4')" autoplay loop muted playsinline style="width:100%;max-width:480px;border-radius:8px;display:block"></video>
|
|
1767
|
-
|
|
1768
|
-
*`create_time_echo` é o container mais amplo de efeitos de tempo: `echo` para
|
|
1769
|
-
trails recursivos por feedback, `slit_scan` para fatias de tempo por linha/coluna e
|
|
1770
|
-
`time_displace` para offsets de frame por pixel guiados por ramp ou noise TOP. Peça
|
|
1771
|
-
resolução fixa e warnings porque nomes de operador cache/time-machine variam entre
|
|
1772
|
-
builds do TD.*
|
|
1773
|
-
|
|
1774
|
-
> *"Gere blobs de cromo líquido num fundo preto de estúdio, metal azulado,
|
|
1775
|
-
> movimento lento e controle de Speed para aquele momento de logo Y2K."*
|
|
1776
|
-
|
|
1777
|
-
<video :src="withBase('/examples/chrome-blobs-y2k.mp4')" autoplay loop muted playsinline style="width:100%;max-width:480px;border-radius:8px;display:block"></video>
|
|
1778
|
-
|
|
1779
|
-
*`create_chrome_blobs` transforma noise animado em metaballs borrados/thresholded e
|
|
1780
|
-
sombreia tudo com um passe GLSL de chrome por environment-map falso. Tints de metal
|
|
1781
|
-
e presets de fundo tornam isso útil como vinheta de logo, não só teste de textura.*
|
|
1782
|
-
|
|
1783
|
-
> *"Crie um look Gray-Scott de reaction-diffusion com cores coral, manchas tipo
|
|
1784
|
-
> labirinto e controles ao vivo de Feed/Kill/Diffusion para morph biológico lento."*
|
|
1785
|
-
|
|
1786
|
-
<video :src="withBase('/examples/reaction-diffusion-coral-maze.mp4')" autoplay loop muted playsinline style="width:100%;max-width:480px;border-radius:8px;display:block"></video>
|
|
1787
|
-
|
|
1788
|
-
*`create_reaction_diffusion` parte da receita Gray-Scott incluída, corrige os
|
|
1789
|
-
uniforms GLSL de Feed/Kill/Diffusion A/B, aplica opcionalmente um ramp de LUT e
|
|
1790
|
-
expõe os parâmetros químicos como controles performáveis.*
|
|
1791
|
-
|
|
1792
|
-
> *"Pixel-sort este feed ao vivo em rastros verticais de chuva: ordene por
|
|
1793
|
-
> luminância acima do threshold, descendente, 96 iterações, com Mix em 0.8."*
|
|
1794
|
-
|
|
1795
|
-
|
|
1796
|
-
*`create_pixel_sort` usa um loop GLSL de odd-even sort com Feedback TOP, Switch TOP
|
|
1797
|
-
e máscara de threshold. Axis, SortBy, Direction, Threshold, Iterations e Mix ficam
|
|
1798
|
-
ao vivo para ajustar o smear estilo Asendorf em vez de colar um shader uma vez.*
|
|
1799
|
-
|
|
1800
|
-
## Mixagem e camadas
|
|
1801
|
-
|
|
1802
|
-
> *"Empilhe quatro camadas com modos de mistura e opacidade, cada uma com mute e
|
|
1803
|
-
> solo, para eu mixar um look na hora."*
|
|
1804
|
-
|
|
1805
|
-
<video :src="withBase('/examples/layer-stack-mute-solo.mp4')" autoplay loop muted playsinline style="width:100%;max-width:480px;border-radius:8px;display:block"></video>
|
|
1806
|
-
|
|
1807
|
-
*Um compositor de N camadas com modo de mistura + opacidade + mute/solo por camada e
|
|
1808
|
-
uma faixa de controle gerada — uma pilha de camadas estilo Photoshop/After Effects
|
|
1809
|
-
que você pode tocar.*
|
|
1810
|
-
|
|
1811
|
-
> *"Monta um rig de quatro decks com FX sends por deck pra um bus de retorno
|
|
1812
|
-
> compartilhado e um switch de hard cut que eu posso mesclar de volta."*
|
|
1813
|
-
|
|
1814
|
-
<video :src="withBase('/examples/nchan-decks-fx-bus.mp4')" autoplay loop muted playsinline style="width:100%;max-width:480px;border-radius:8px;display:block"></video>
|
|
1815
|
-
|
|
1816
|
-
*O modo `decks[]` monta rigs de 2 a 8 decks com ganho por deck, branches de FX-send
|
|
1817
|
-
por deck num bus / retorno aditivo, um mix de programa contínuo via Cross TOP e um
|
|
1818
|
-
hard-cut Switch TOP mesclado de volta no programa com `cut_mix`. O mixer A/B
|
|
1819
|
-
antigo continua compatível.*
|
|
1820
|
-
|
|
1821
|
-
## Visuais orientados a dados
|
|
1822
|
-
|
|
1823
|
-
> *"Puxe o preço do BTC ao vivo de uma API web e controle a cor e a velocidade do
|
|
1824
|
-
> visual pela rapidez com que ele se move."*
|
|
1825
|
-
|
|
1826
|
-
<video :src="withBase('/examples/live-data-btc-feed.mp4')" autoplay loop muted playsinline style="width:100%;max-width:480px;border-radius:8px;display:block"></video>
|
|
1827
|
-
|
|
1828
|
-
*O create_data_source puxa um feed JSON/web ao vivo para canais CHOP; o
|
|
1829
|
-
create_data_reactive mapeia esses canais nos parâmetros de um visual com remapeamento
|
|
1830
|
-
de faixa por mapeamento — a contraparte de dados da reatividade ao áudio.*
|
|
1831
|
-
|
|
1832
|
-
> *"Prototipe um dashboard visual guiado por WebSocket a partir deste stream de
|
|
1833
|
-
> eventos, mas rode em modo dry-run / experimental primeiro e relate erros de bridge
|
|
1834
|
-
> antes de ligar no show."*
|
|
1835
|
-
|
|
1836
|
-
<video :src="withBase('/examples/data-source-http-ws-hotfix.mp4')" autoplay loop muted playsinline style="width:100%;max-width:480px;border-radius:8px;display:block"></video>
|
|
1837
|
-
|
|
1838
|
-
*`create_data_source_http_ws` é a ponte HTTP/WebSocket para transformar seletores JSON
|
|
1839
|
-
em canais CHOP. O corte público v0.7.0 inclui o hotfix de HTTP-poll, então o prompt
|
|
1840
|
-
já pode pedir status, seletores, nomes de canais e warnings como parte do relatório
|
|
1841
|
-
de build.*
|
|
1842
|
-
|
|
1843
|
-
> *"Transforme esta planilha de vendas mensais em barras 3D animadas que crescem, com
|
|
1844
|
-
> rótulos de valor."*
|
|
1845
|
-
|
|
1846
|
-
<video :src="withBase('/examples/table-3d-bars.mp4')" autoplay loop muted playsinline style="width:100%;max-width:480px;border-radius:8px;display:block"></video>
|
|
1847
|
-
|
|
1848
|
-
*Uma rede de visualização orientada a dados (barras/gráfico a partir de uma tabela)
|
|
1849
|
-
com um botão de Escala e uma entrada animada — um infográfico em tempo real e
|
|
1850
|
-
tocável, não um gráfico estático.*
|
|
1851
|
-
|
|
1852
|
-
> *"Clone este cartãozinho uma vez por linha da minha tabela, cada um com o nome
|
|
1853
|
-
> daquela linha."*
|
|
1854
|
-
|
|
1855
|
-
<video :src="withBase('/examples/replicator-table-cards.mp4')" autoplay loop muted playsinline style="width:100%;max-width:480px;border-radius:8px;display:block"></video>
|
|
1856
|
-
|
|
1857
|
-
*Um Replicator COMP que clona um COMP de template por linha de um Table DAT,
|
|
1858
|
-
parametrizando cada clone a partir da sua linha — instanciamento orientado a dados de
|
|
1859
|
-
sub-redes inteiras, não só de geometria.*
|
|
1860
|
-
|
|
1861
|
-
> *"Monte uma cadeia LLM offline com Ollama dentro do TouchDesigner: prompt DAT
|
|
1862
|
-
> entrando, response DAT saindo, botão Send exposto e JSON mode pronto para notas
|
|
1863
|
-
> de cue."*
|
|
1864
|
-
|
|
1865
|
-
<video :src="withBase('/examples/llm-chain-stage-notes.mp4')" autoplay loop muted playsinline style="width:100%;max-width:480px;border-radius:8px;display:block"></video>
|
|
1866
|
-
|
|
1867
|
-
*`create_llm_chain` cria um wrapper LLM baseado em webclientDAT para Ollama, OpenAI,
|
|
1868
|
-
Anthropic ou endpoint custom compatível com OpenAI. Prompt e Response DATs, canal de
|
|
1869
|
-
status e controles de provider/model/temperature/max-token ficam dentro do TD,
|
|
1870
|
-
enquanto as chaves de API são lidas por variáveis de ambiente e nunca aparecem via Node.*
|
|
1871
|
-
|
|
1872
|
-
## Checagens de ensaio & feedback artístico
|
|
1873
|
-
|
|
1874
|
-
Use estes quando quiser que o tdmcp teste o trabalho como um artista testaria:
|
|
1875
|
-
consigo ver, consigo tocar, reage direito e é seguro continuar ensaiando?
|
|
1876
|
-
|
|
1877
|
-
> *"Antes do ensaio, abra meu output principal, tire um snapshot rápido do preview e
|
|
1878
|
-
> me diga se está preto, em baixa resolução, congelado ou com erro."*
|
|
1879
|
-
|
|
1880
|
-
|
|
1881
|
-
*`get_inline_preview` transforma "isso está vivo?" em uma checagem: thumbnail,
|
|
1882
|
-
resolução, formato de pixel, metadados de cook e erros recentes. A resposta deve
|
|
1883
|
-
vir primeiro como imagem e linguagem simples.*
|
|
1884
|
-
|
|
1885
|
-
> *"Observe o analyze CHOP do grave por cinco segundos e me diga o min/max real para
|
|
1886
|
-
> eu ajustar a faixa do visual antes do DJ chegar."*
|
|
1887
|
-
|
|
1888
|
-
|
|
1889
|
-
*`watch_node` é útil quando lê um sinal do jeito que performer precisa: faixa real,
|
|
1890
|
-
picos, momentos quietos e se o canal está estável o bastante para ligar num look.*
|
|
1891
|
-
|
|
1892
|
-
> *"Cheque o perfil de venue `club` sem mostrar segredos: o TouchDesigner está
|
|
1893
|
-
> alcançável, a bridge está na porta esperada e o que eu preciso corrigir antes da
|
|
1894
|
-
> abertura da casa?"*
|
|
1895
|
-
|
|
1896
|
-
|
|
1897
|
-
*Checagem de venue/perfil só pertence ao cookbook quando responde uma pergunta de
|
|
1898
|
-
show: para qual sala estou configurado, a bridge ao vivo responde e qual ação
|
|
1899
|
-
concreta mantém o ensaio andando?*
|
|
1900
|
-
|
|
1901
|
-
> *"Leia o mapa compacto de `/project1/hero` e explique os controles visíveis em
|
|
1902
|
-
> linguagem simples: o que muda cor, movimento, intensidade e reset?"*
|
|
1903
|
-
|
|
1904
|
-
|
|
1905
|
-
*`compact_graph_digest` resume uma rede sem afogar o artista em nós: contagens, fios
|
|
1906
|
-
e parâmetros-chave viram um mapa curto do que o look sabe fazer.*
|
|
1907
|
-
|
|
1908
|
-
> *"Durante o soundcheck, escute eventos de beat e onset por dez segundos e me diga
|
|
1909
|
-
> se o fluxo de cues está estável o bastante para guiar cortes; não dispare nada no
|
|
1910
|
-
> palco."*
|
|
1911
|
-
|
|
1912
|
-
|
|
1913
|
-
*Observar eventos da bridge pode continuar read-only: use para provar que tempo,
|
|
1914
|
-
batida ou gesto estão chegando antes de mapear isso para mudanças visíveis.*
|
|
1915
|
-
|
|
1916
|
-
> *"Me ensine TouchDesigner o suficiente para mexer neste patch com segurança:
|
|
1917
|
-
> mostre o caminho do operador que devo abrir, um parâmetro para testar primeiro e
|
|
1918
|
-
> um fallback se quebrar."*
|
|
1919
|
-
|
|
1920
|
-
|
|
1921
|
-
*Recursos de aprendizado e cheatsheets ficam artist-facing quando reduzem medo no
|
|
1922
|
-
patch: um operador, um parâmetro seguro, um caminho de volta.*
|
|
1923
|
-
|
|
1924
|
-
> *"Olhe para a saída atual e critique como motion designer: paleta, contraste,
|
|
1925
|
-
> ritmo, legibilidade e um próximo ajuste concreto."*
|
|
1926
|
-
|
|
1927
|
-
|
|
1928
|
-
*O copiloto local deve fechar o ciclo entre rede gerada e resultado visível:
|
|
1929
|
-
descrever o que está na tela, nomear a escolha artística mais fraca e propor uma
|
|
1930
|
-
mudança pequena para o artista aprovar.*
|
|
1931
|
-
|
|
1932
|
-
## Conhecimento TD offline & rascunhos de receita
|
|
1933
|
-
|
|
1934
|
-
Use estes prompts quando quiser que o agente leia conhecimento TouchDesigner
|
|
1935
|
-
embutido antes de criar nós. As tools desta seção são read-only e funcionam sem
|
|
1936
|
-
bridge TD ao vivo; qualquer cook ou checagem de projetor continua
|
|
1937
|
-
**UNVERIFIED-pending-td** até você rodar o rascunho contra uma instância
|
|
1938
|
-
TouchDesigner conectada.
|
|
1939
|
-
|
|
1940
|
-
> *"Antes de escolher o estágio de blur, busque operadores TOP embutidos no
|
|
1941
|
-
> TouchDesigner 2023 com busca por parâmetros ligada. Mostre quais operadores
|
|
1942
|
-
> expõem controles ligados a borda, raio ou feedback, e ainda não crie nós."*
|
|
1943
|
-
|
|
1944
|
-
```bash
|
|
1945
|
-
tdmcp-agent operators \
|
|
1946
|
-
--params '{"query":"edge radius feedback blur","category":"TOP","version":"2023","parameter_search":true,"limit":8}'
|
|
1947
|
-
```
|
|
1948
|
-
|
|
1949
|
-
*O `search_operators` expandido filtra por categoria, versão do TouchDesigner e
|
|
1950
|
-
metadados de parâmetros antes de o agente mexer no projeto. Use quando a pergunta
|
|
1951
|
-
é "qual operador expõe o controle de que preciso?", não só "como chama este op?".*
|
|
1952
|
-
|
|
1953
|
-
> *"Estou migrando um patch de feedback de 2022 para 2024 e quero uma cadeia de
|
|
1954
|
-
> trails segura para câmera. Planeje primeiro a migração de versão do TD, depois
|
|
1955
|
-
> sugira uma cadeia TOP e valide antes de rascunhar a receita."*
|
|
1956
|
-
|
|
1957
|
-
```bash
|
|
1958
|
-
tdmcp-agent versions migration-plan \
|
|
1959
|
-
--params '{"from_version":"2022","to_version":"2024","query":"TOP feedback camera trails"}'
|
|
1960
|
-
tdmcp-agent operators suggest-chain \
|
|
1961
|
-
--params '{"goal":"camera-safe feedback trails","family":"TOP","max_steps":5}'
|
|
1962
|
-
tdmcp-agent operators validate-chain \
|
|
1963
|
-
--params '{"chain":["Video Device In TOP","Feedback TOP","Transform TOP","Level TOP","Null TOP"],"family":"TOP"}'
|
|
1964
|
-
tdmcp-agent recipes draft-chain \
|
|
1965
|
-
--params '{"chain":["Video Device In TOP","Feedback TOP","Transform TOP","Level TOP","Null TOP"],"id":"camera_feedback_trails_draft","tags":["draft","feedback","migration"]}'
|
|
1966
|
-
```
|
|
1967
|
-
|
|
1968
|
-
*Este é um preflight atento à versão: notas de release e registros de
|
|
1969
|
-
compatibilidade orientam a sugestão de cadeia, `validate_operator_chain` checa as
|
|
1970
|
-
adjacências de operadores e o rascunho de receita continua offline até um
|
|
1971
|
-
`apply_recipe` posterior com cook ao vivo no TD.*
|
|
1972
|
-
|
|
1973
|
-
> *"Abra o pacote embutido de técnicas GLSL, inspecione uma técnica de
|
|
1974
|
-
> reaction-diffusion com notas de setup e código, então gere um rascunho de
|
|
1975
|
-
> receita válido no schema em modo non-strict. Deixe aplicar isso para uma passada
|
|
1976
|
-
> ao vivo no TD depois."*
|
|
1977
|
-
|
|
1978
|
-
```bash
|
|
1979
|
-
tdmcp-agent techniques get \
|
|
1980
|
-
--params '{"category":"glsl","technique_id":"reaction_diffusion_gs","include_code":true,"include_setup":true}'
|
|
1981
|
-
tdmcp-agent techniques draft-recipe \
|
|
1982
|
-
--params '{"category":"glsl","technique_id":"reaction_diffusion_gs","id":"reaction_diffusion_gs_technique_draft","strict":false}'
|
|
1983
|
-
```
|
|
1984
|
-
|
|
1985
|
-
*`get_technique_detail` e `draft_recipe_from_technique` transformam pacotes
|
|
1986
|
-
embutidos de técnicas TouchDesigner em candidatos `RecipeSchema` sem afirmar que a
|
|
1987
|
-
rede já cozinhou. Preserve warnings e próximos passos sugeridos, então valide o
|
|
1988
|
-
rascunho no TouchDesigner antes de virar receita de show.*
|
|
1989
|
-
|
|
1990
|
-
> *"Encontre o tutorial embutido para escrever um GLSL TOP, tente um rascunho de
|
|
1991
|
-
> tutorial em modo de triagem non-strict e me mostre por que ele é ou não é seguro
|
|
1992
|
-
> antes de aplicar qualquer coisa."*
|
|
1993
|
-
|
|
1994
|
-
```bash
|
|
1995
|
-
tdmcp-agent tutorials get \
|
|
1996
|
-
--params '{"name":"write_a_glsl_top","include_content":true}'
|
|
1997
|
-
tdmcp-agent tutorials draft-recipe \
|
|
1998
|
-
--params '{"name":"write_a_glsl_top","strict":false,"max_steps":5}'
|
|
1999
|
-
```
|
|
2000
|
-
|
|
2001
|
-
*`get_tutorial` recupera o texto estruturado do tutorial e os blocos de código; a
|
|
2002
|
-
tool `draft_recipe_from_tutorial` valida a cadeia extraída com checagens de
|
|
2003
|
-
conexões documentadas. Para o tutorial embutido `write_a_glsl_top`, o resultado
|
|
2004
|
-
esperado é continuar sem rascunho: a cadeia extraída de texto/TOC inclui links
|
|
2005
|
-
adjacentes sem documentação, como `GLSL TOP -> GLSL Multi TOP`; o relatório deve
|
|
2006
|
-
incluir `undocumented_connection`, omitir `apply_recipe` e deixar o grafo TD
|
|
2007
|
-
intocado.*
|
|
2008
|
-
|
|
2009
|
-
> *"Antes de criar uma cadeia de post com feedback, compare os docs de operator de
|
|
2010
|
-
> Blur TOP e Level TOP, valide `Noise TOP -> Blur TOP -> Level TOP -> Null TOP`,
|
|
2011
|
-
> então gere uma receita dessa cadeia sem tocar no projeto."*
|
|
2012
|
-
|
|
2013
|
-
```bash
|
|
2014
|
-
tdmcp-agent operators compare-docs \
|
|
2015
|
-
--params '{"operator_a":"Blur TOP","operator_b":"Level TOP"}'
|
|
2016
|
-
tdmcp-agent operators validate-chain \
|
|
2017
|
-
--params '{"chain":["Noise TOP","Blur TOP","Level TOP","Null TOP"],"family":"TOP"}'
|
|
2018
|
-
tdmcp-agent recipes draft-chain \
|
|
2019
|
-
--params '{"chain":["Noise TOP","Blur TOP","Level TOP","Null TOP"],"id":"feedback_post_draft","tags":["draft","feedback"]}'
|
|
2020
|
-
```
|
|
2021
|
-
|
|
2022
|
-
*Este é o loop seguro de "ler, comparar, validar e rascunhar": o agente explica os
|
|
2023
|
-
tradeoffs dos operadores e entrega um rascunho de receita válido no schema enquanto
|
|
2024
|
-
o grafo TouchDesigner real permanece inalterado.*
|
|
2025
|
-
|
|
2026
|
-
> *"Busque tutoriais embutidos sobre fluxos CHOP, copie um id de tutorial dos
|
|
2027
|
-
> resultados, tente `draft_recipe_from_tutorial` em modo non-strict e, se não der
|
|
2028
|
-
> para gerar uma receita, explique o motivo. Use os operadores extraídos como
|
|
2029
|
-
> entrada para `validate_operator_chain` e só gere uma receita quando a cadeia
|
|
2030
|
-
> corrigida não tiver erros. Trate `apply_recipe` como handoff posterior, não como
|
|
2031
|
-
> parte desta execução."*
|
|
2032
|
-
|
|
2033
|
-
```bash
|
|
2034
|
-
tdmcp-agent tutorials get \
|
|
2035
|
-
--params '{"query":"CHOP","include_content":true,"limit":3}'
|
|
2036
|
-
tdmcp-agent tutorials draft-recipe \
|
|
2037
|
-
--params '{"name":"anatomy_of_a_chop","strict":false,"max_steps":5}'
|
|
2038
|
-
```
|
|
2039
|
-
|
|
2040
|
-
*Esse é o modo de falha útil: um tutorial ainda pode ensinar o que o agente deve
|
|
2041
|
-
inspecionar ou validar, mesmo quando não vira uma receita segura automaticamente.
|
|
2042
|
-
`draft_recipe_from_tutorial` recebe um id de tutorial ou nome exato, não uma busca
|
|
2043
|
-
livre; substitua pelo id escolhido no resultado anterior.*
|
|
2044
|
-
|
|
2045
|
-
## Biblioteca criativa (Creative RAG)
|
|
2046
|
-
|
|
2047
|
-
O repertório criativo é um índice local opt-in de referências artísticas com
|
|
2048
|
-
licença aberta. O CLI é `tdmcp creative-rag <sync|index|search>`; tanto
|
|
2049
|
-
`tdmcp://creative/cards/{id}` quanto
|
|
2050
|
-
`tdmcp://creative/search{?q,k,license,type,tags}` são recursos MCP somente
|
|
2051
|
-
leitura. A RAG fornece obras de fonte, paletas, linguagem de movimento e
|
|
2052
|
-
affordances de tools; o build TouchDesigner continua acontecendo pelas tools
|
|
2053
|
-
normais do tdmcp.
|
|
2054
|
-
|
|
2055
|
-
> *"Use a Creative RAG para encontrar o card CC0 da Cleveland `The Biglin Brothers
|
|
2056
|
-
> Turning the Stake`. Use a própria pintura como material de origem: estique a
|
|
2057
|
-
> linha d'água em trilhas horizontais, detecte bordas nos remos e corpos, e
|
|
2058
|
-
> transforme isso num visual de movimento de remo com grade fria de palco."*
|
|
2059
|
-
|
|
2060
|
-
<video :src="withBase('/examples/creative-rag-rowing-motion-remix.mp4')" autoplay loop muted playsinline style="width:100%;max-width:480px;border-radius:8px;display:block"></video>
|
|
2061
|
-
|
|
2062
|
-
*Uma obra da RAG vira material de entrada, não uma linha de resultado: a imagem
|
|
2063
|
-
CC0 do card é remixada em um novo estudo de trilhas cinéticas usando água, ritmo
|
|
2064
|
-
dos remos e silhuetas da pintura como partitura visual.*
|
|
2065
|
-
|
|
2066
|
-
> *"Busque na Creative RAG o card CC0 de retrato `Nathaniel Hurd`. Crie um novo
|
|
2067
|
-
> look de máscara ao vivo a partir dele: extraia uma paleta quente do retrato,
|
|
2068
|
-
> pixelize o rosto em blocos, adicione contornos e faça um drift sutil de dupla
|
|
2069
|
-
> exposição para backdrop performável."*
|
|
2070
|
-
|
|
2071
|
-
<video :src="withBase('/examples/creative-rag-portrait-mask-remix.mp4')" autoplay loop muted playsinline style="width:100%;max-width:480px;border-radius:8px;display:block"></video>
|
|
2072
|
-
|
|
2073
|
-
*O retrato recuperado dirige o look: cor, luz e estrutura do rosto viram um novo
|
|
2074
|
-
sistema de máscara/mosaico que pode ser recriado com `create_palette`,
|
|
2075
|
-
`create_pixel_sort` e passes de post-processing.*
|
|
2076
|
-
|
|
2077
|
-
> *"Abra o card `Composition` de Wassily Kandinsky na Creative RAG. Use sua
|
|
2078
|
-
> geometria hard-edged, a paleta de tríade primária e os affordances
|
|
2079
|
-
> `create_generative_art` / `create_color_grade` para construir um sistema TD
|
|
2080
|
-
> geométrico novo, não uma cópia da pintura."*
|
|
2081
|
-
|
|
2082
|
-
<video :src="withBase('/examples/creative-rag-kandinsky-remix.mp4')" autoplay loop muted playsinline style="width:100%;max-width:480px;border-radius:8px;display:block"></video>
|
|
2083
|
-
|
|
2084
|
-
*O card passa paleta e linguagem visual; o resultado é uma composição procedural
|
|
2085
|
-
nova com grid animado, círculos e planos de cor, mantendo a obra original como
|
|
2086
|
-
contexto de repertório em vez de algo que a RAG executa diretamente.*
|
|
2087
|
-
|
|
2088
|
-
### Busca e filtros de licença
|
|
2089
|
-
|
|
2090
|
-
O repertório criativo é um índice local opt-in de referências artísticas com
|
|
2091
|
-
licença aberta. O CLI é `tdmcp creative-rag <sync|index|search>`; tanto
|
|
2092
|
-
`tdmcp://creative/cards/{id}` quanto
|
|
2093
|
-
`tdmcp://creative/search{?q,k,license,type,tags}` são recursos MCP somente
|
|
2094
|
-
leitura. A allowlist padrão (`TDMCP_RAG_LICENSE_ALLOWLIST`, default
|
|
2095
|
-
`CC0,PublicDomain`) só barra **download de binários** no `sync` — o `search`
|
|
2096
|
-
continua devolvendo qualquer card do índice. Passe `--license` explicitamente
|
|
2097
|
-
quando precisar de garantia firme sobre o que vai reusar.
|
|
2098
|
-
|
|
2099
|
-
> *"Busque na biblioteca criativa referências kinéticas em monocromático —
|
|
2100
|
-
> muito movimento, preto e branco, geométrico. Limite a CC0 + domínio público
|
|
2101
|
-
> para eu poder reusar tudo que vier."*
|
|
2102
|
-
|
|
2103
|
-
```bash
|
|
2104
|
-
tdmcp creative-rag search "kinetic monochrome geometric" \
|
|
2105
|
-
--license CC0,PublicDomain --k 5 --json
|
|
2106
|
-
```
|
|
2107
|
-
|
|
2108
|
-
```json
|
|
2109
|
-
[
|
|
2110
|
-
{
|
|
2111
|
-
"id": "a1b2c3d4...",
|
|
2112
|
-
"score": 0.78,
|
|
2113
|
-
"title": "Composition with Black Lines",
|
|
2114
|
-
"sourceUrl": "https://www.artic.edu/...",
|
|
2115
|
-
"license": "PublicDomain",
|
|
2116
|
-
"type": "artwork",
|
|
2117
|
-
"tags": ["geometric", "monochrome", "motion-study"]
|
|
2118
|
-
},
|
|
2119
|
-
{
|
|
2120
|
-
"id": "e5f6a7b8...",
|
|
2121
|
-
"score": 0.74,
|
|
2122
|
-
"title": "Rhythm of a Russian Dance",
|
|
2123
|
-
"sourceUrl": "https://www.rijksmuseum.nl/...",
|
|
2124
|
-
"license": "CC0",
|
|
2125
|
-
"type": "artwork",
|
|
2126
|
-
"tags": ["kinetic", "dance", "geometry"]
|
|
2127
|
-
}
|
|
2128
|
-
]
|
|
2129
|
-
```
|
|
2130
|
-
|
|
2131
|
-
*Use `--json` quando precisar dos ids para o próximo passo. A tabela humana é mais
|
|
2132
|
-
curta de propósito e imprime score, título, tipo/licença e source URL; o payload
|
|
2133
|
-
estruturado adiciona `id`, `tags` e outros campos do card para agentes ou scripts.*
|
|
2134
|
-
|
|
2135
|
-
> *"Me mostre só obras de arquitetura com licença CC0 da biblioteca criativa."*
|
|
2136
|
-
|
|
2137
|
-
```bash
|
|
2138
|
-
tdmcp creative-rag search "architecture facade" \
|
|
2139
|
-
--license CC0 --type artwork --tags architecture --k 5 --json
|
|
2140
|
-
```
|
|
2141
|
-
|
|
2142
|
-
```json
|
|
2143
|
-
[
|
|
2144
|
-
{
|
|
2145
|
-
"id": "3f4d5e6a...",
|
|
2146
|
-
"score": 0.81,
|
|
2147
|
-
"title": "Facade Study, Rietveld Schroder House",
|
|
2148
|
-
"sourceUrl": "https://www.rijksmuseum.nl/...",
|
|
2149
|
-
"license": "CC0",
|
|
2150
|
-
"type": "artwork",
|
|
2151
|
-
"tags": ["architecture", "de-stijl", "geometric"]
|
|
2152
|
-
},
|
|
2153
|
-
{
|
|
2154
|
-
"id": "c7d8e9f0...",
|
|
2155
|
-
"score": 0.77,
|
|
2156
|
-
"title": "Steel Frame, Construction Series",
|
|
2157
|
-
"sourceUrl": "https://www.clevelandart.org/...",
|
|
2158
|
-
"license": "CC0",
|
|
2159
|
-
"type": "artwork",
|
|
2160
|
-
"tags": ["architecture", "structure", "grid"]
|
|
2161
|
-
}
|
|
2162
|
-
]
|
|
2163
|
-
```
|
|
2164
|
-
|
|
2165
|
-
*`--license CC0` estreita mais que o padrão (descarta PublicDomain), então o
|
|
2166
|
-
resultado é estritamente CC0. `--type` aceita o enum da CLI
|
|
2167
|
-
(`project|artist|artwork|technique|cue_reference`); use `--tags` (CSV) para
|
|
2168
|
-
filtros mais finos como `architecture`, `geometric`, `sculpture`. Todos os
|
|
2169
|
-
filtros empilham.*
|
|
2170
|
-
|
|
2171
|
-
> *"Abra o card `3f4d5e6a…` da biblioteca criativa e resuma a intenção do artista
|
|
2172
|
-
> para eu construir uma cena no TD a partir dela."*
|
|
2173
|
-
|
|
2174
|
-
O cliente MCP busca `tdmcp://creative/cards/3f4d5e6a…` (onde `id =
|
|
2175
|
-
sha256(sourceUrl)`) e recebe o card completo em JSON:
|
|
2176
|
-
|
|
2177
|
-
```json
|
|
2178
|
-
{
|
|
2179
|
-
"id": "3f4d5e6a...",
|
|
2180
|
-
"schemaVersion": 1,
|
|
2181
|
-
"type": "artwork",
|
|
2182
|
-
"title": "Facade Study, Rietveld Schroder House",
|
|
2183
|
-
"sourceUrl": "https://www.rijksmuseum.nl/...",
|
|
2184
|
-
"sourceName": "rijksmuseum",
|
|
2185
|
-
"license": "CC0",
|
|
2186
|
-
"body": "Frontal study of a De Stijl facade with rigid planes and window-grid rhythm.",
|
|
2187
|
-
"tags": ["architecture", "de-stijl", "geometric", "primary-colors"],
|
|
2188
|
-
"palette": ["#E63946", "#F1FAEE", "#1D3557", "#FFD166"],
|
|
2189
|
-
"visualLanguage": "rigid orthogonal grid, flat planes",
|
|
2190
|
-
"tdmcpAffordances": ["create_glsl_shader", "create_grid_layout"],
|
|
2191
|
-
"contentHash": "sha256:..."
|
|
2192
|
-
}
|
|
2193
|
-
```
|
|
2194
|
-
|
|
2195
|
-
*A shape real do card é plana: `body`, `palette` e `visualLanguage` são campos
|
|
2196
|
-
opcionais de primeiro nível, `type` precisa ser um dos valores do enum da Creative
|
|
2197
|
-
RAG, e `tdmcpAffordances` é `string[]` com nomes de tools sugeridas (veja
|
|
2198
|
-
`src/creativeRag/schema.ts`). Leia o card, destile a intenção em prosa e então
|
|
2199
|
-
repasse os affordances + paleta para a tool de Layer 1 que se encaixar — por
|
|
2200
|
-
exemplo, "usa essa paleta e o `visualLanguage` em grade pra montar uma cena GLSL
|
|
2201
|
-
monocromática kinética". O cookbook para aqui; o build real fica para a tool de
|
|
2202
|
-
Layer 1 que os affordances indicam.*
|
|
2203
|
-
|
|
2204
|
-
## Biblioteca de projetos (Project RAG)
|
|
2205
|
-
|
|
2206
|
-
O **repertório de projetos** é o primo dev da Creative RAG: um índice local
|
|
2207
|
-
opt-in de *projetos, componentes e snippets* de TouchDesigner sob licença
|
|
2208
|
-
aberta — arquivos `.toe`/`.tox` e trechos de shader puxados de fontes
|
|
2209
|
-
curadas no GitHub — para que o agente possa basear um efeito em **código
|
|
2210
|
-
TD real** antes de escrever qualquer node novo. O CLI é
|
|
2211
|
-
`tdmcp project-rag <sync|index|search>`; `tdmcp://project/cards/{id}`,
|
|
2212
|
-
`tdmcp://project/search{?q,k,license,type,operator,tags}` e o novo
|
|
2213
|
-
`tdmcp://project/sources` são resources MCP read-only. O prompt MCP
|
|
2214
|
-
`project_rag_context` e a tool de copiloto `project_rag_search` expõem o
|
|
2215
|
-
mesmo índice para clientes LLM — ambos gated por
|
|
2216
|
-
`TDMCP_RAG_ENABLED=1 && TDMCP_PROJECT_RAG_ENABLED=1`.
|
|
2217
|
-
|
|
2218
|
-
### Quando usar Project RAG vs Creative RAG
|
|
2219
|
-
|
|
2220
|
-
Duas RAGs, duas perguntas. A Creative RAG responde *"como isso deveria
|
|
2221
|
-
parecer?"* — ela traz obras, paletas e linguagem visual. A Project RAG
|
|
2222
|
-
responde *"como isso é de fato construído no TD?"* — ela traz networks
|
|
2223
|
-
`.toe`/`.tox` funcionais e o wiring de operators que você pode ler ou
|
|
2224
|
-
adaptar. Misturar as duas é a ideia.
|
|
2225
|
-
|
|
2226
|
-
> *"Quero montar uma peça de feedback com hand tracking. Primeiro rode o
|
|
2227
|
-
> prompt `project_rag_context` com `query: 'hand tracking mediapipe feedback'`
|
|
2228
|
-
> para eu ver como projetos TD reais fazem o wiring; depois escolha o de
|
|
2229
|
-
> licença mais permissiva e adapte a cadeia de operators para uma network
|
|
2230
|
-
> nova."*
|
|
2231
|
-
|
|
2232
|
-
```text
|
|
2233
|
-
tdmcp://project/search?q=hand+tracking+mediapipe+feedback&k=5
|
|
2234
|
-
→
|
|
2235
|
-
0.823 MediaPipe Hand Pose Demo [project] — MIT — tdmcp://project/cards/abc123…
|
|
2236
|
-
0.781 Real-time Hand Tracker [project] — CC-BY-4.0 — tdmcp://project/cards/def456…
|
|
2237
|
-
0.704 Feedback Optical Flow Hands [snippet] — Apache-2.0 — tdmcp://project/cards/789abc…
|
|
2238
|
-
```
|
|
2239
|
-
|
|
2240
|
-
*O prompt retorna títulos, licenças e URIs `tdmcp://project/cards/{id}` —
|
|
2241
|
-
não embeddings opacos. Inspecione cada card via `read_resource` para ver a
|
|
2242
|
-
lista completa de operators e o caminho do binário que dá para abrir no TD.
|
|
2243
|
-
Use a Creative RAG para **paleta/clima**; use a Project RAG para **o wiring
|
|
2244
|
-
TD que faz a coisa se mover**.*
|
|
2245
|
-
|
|
2246
|
-
### Buscando exemplos reais antes de codar um efeito
|
|
2247
|
-
|
|
2248
|
-
Quando o modelo vai *gerar* um efeito novo, o primeiro passo mais seguro é
|
|
2249
|
-
**buscar antes de sintetizar** — descobrir o que já existe, em código, sob
|
|
2250
|
-
uma licença que dá para reaproveitar.
|
|
2251
|
-
|
|
2252
|
-
> *"Vou montar uma network de trails audio-reactive. Antes de criar qualquer
|
|
2253
|
-
> op, rode `tdmcp project-rag search 'audio reactive trails feedback'
|
|
2254
|
-
> --license CC0,MIT,Apache-2.0 --k 5` e cite os três cards do topo
|
|
2255
|
-
> (título + licença + URI). Abra o de licença mais permissiva via
|
|
2256
|
-
> `tdmcp://project/cards/{id}` e me diga quais operators ele usa. Aí a
|
|
2257
|
-
> gente decide se copia, adapta ou constrói do zero."*
|
|
2258
|
-
|
|
2259
|
-
```bash
|
|
2260
|
-
tdmcp project-rag search "audio reactive trails feedback" \
|
|
2261
|
-
--license CC0,MIT,Apache-2.0 --k 5
|
|
2262
|
-
```
|
|
2263
|
-
|
|
2264
|
-
*O CLI espelha `tdmcp creative-rag search` — mesmo layout de flags, mesma
|
|
2265
|
-
história de reuso gated por licença. A diferença é que os cards aqui apontam
|
|
2266
|
-
para networks TD executáveis em vez de obras estáticas, e
|
|
2267
|
-
`--operator AudioSpectrumCHOP` filtra ainda mais para cards que de fato wirem
|
|
2268
|
-
um op específico. Quando a busca do lado creative volta com poucos
|
|
2269
|
-
resultados, o CLI também imprime no stderr uma dica sugerindo
|
|
2270
|
-
`tdmcp project-rag search "<q>"` como cross-link, então o agente pivota
|
|
2271
|
-
entre as duas bibliotecas sem perder a query.*
|
|
2272
|
-
|
|
2273
|
-
> *"Hoje à noite preciso de um look rápido de organismo de neblina. Liste
|
|
2274
|
-
> primeiro as fontes Project RAG configuradas via `tdmcp://project/sources`
|
|
2275
|
-
> — quero saber quais estão ready vs planned antes de buscar, para não
|
|
2276
|
-
> caçar cards que ainda não foram indexados."*
|
|
2277
|
-
|
|
2278
|
-
```json
|
|
2279
|
-
[
|
|
2280
|
-
{ "name": "github-repo", "displayName": "GitHub seed repos", "status": "ready" },
|
|
2281
|
-
{ "name": "github-topic", "displayName": "GitHub topic scanner", "status": "ready" },
|
|
2282
|
-
{ "name": "matthewragan", "displayName": "Matthew Ragan", "status": "planned" }
|
|
2283
|
-
]
|
|
2284
|
-
```
|
|
2285
|
-
|
|
2286
|
-
*`tdmcp://project/sources` é o mapa honesto do que está indexado localmente.
|
|
2287
|
-
Uma fonte com `status: "planned"` significa que o adapter existe mas não está
|
|
2288
|
-
wired no seu sync atual — contexto útil quando os resultados de busca vêm
|
|
2289
|
-
mais finos do que você esperava. Combine com o prompt `project_rag_context`
|
|
2290
|
-
para deixar o agente raciocinar sobre cobertura antes de comprometer com
|
|
2291
|
-
um caminho de build.*
|
|
2292
|
-
|
|
2293
|
-
### Habilitando o manual do Interactive & Immersive HQ (não comercial)
|
|
2294
|
-
|
|
2295
|
-
Um manual inteiro de TouchDesigner está disponível como cards `tutorial`
|
|
2296
|
-
pesquisáveis — mas vem **desligado por padrão** porque sua licença é
|
|
2297
|
-
**CC-BY-NC-SA-4.0** (não comercial, share-alike, atribuição obrigatória).
|
|
2298
|
-
Ative-o apenas para uso pessoal/aprendizado:
|
|
2299
|
-
|
|
2300
|
-
```bash
|
|
2301
|
-
export TDMCP_PROJECT_RAG_IIHQ=1
|
|
2302
|
-
tdmcp project-rag sync --source iihq
|
|
2303
|
-
tdmcp project-rag search "otimizar uma rede de CHOP lenta" --type tutorial --k 3
|
|
2304
|
-
```
|
|
2305
|
-
|
|
2306
|
-
> *"Habilite a fonte de tutoriais IIHQ e encontre capítulos que expliquem GLSL
|
|
2307
|
-
> TOPs. Cite a licença de cada card e me lembre dos termos de reuso antes de eu
|
|
2308
|
-
> copiar qualquer coisa para um show comercial."*
|
|
2309
|
-
|
|
2310
|
-
*Todo card IIHQ é carimbado de forma rígida como `CC-BY-NC-SA · não comercial` e
|
|
2311
|
-
carrega notas de direitos dizendo para atribuir **The Interactive & Immersive
|
|
2312
|
-
HQ**, manter o uso não comercial e compartilhar sob a mesma licença. Apenas o
|
|
2313
|
-
**texto** do manual é indexado — nenhum binário `.tox`/`.toe`/exemplo é baixado
|
|
2314
|
-
(a política de licença nega binários CC-BY-NC-SA por completo). Se você está
|
|
2315
|
-
construindo para um trabalho pago, trate esses cards como leitura de referência,
|
|
2316
|
-
não como assets para distribuir.*
|
|
2317
|
-
|
|
2318
|
-
## Trabalhando a partir das suas notas (vault Obsidian)
|
|
2319
|
-
|
|
2320
|
-
Se você mantém um [vault Obsidian](/reference/tools#obsidian-vault) conectado:
|
|
2321
|
-
|
|
2322
|
-
> *"Monte o set de hoje a partir da minha nota de setlist 'Sexta'."*
|
|
2323
|
-
|
|
2324
|
-
> *"Gere um visual a partir do meu moodboard 'fundo do oceano'."*
|
|
2325
|
-
|
|
2326
|
-
> *"Salve este visual como uma receita no meu vault, rode auto-tagging e registre no
|
|
2327
|
-
> meu diário de shows."*
|
|
2328
|
-
|
|
2329
|
-
> *"Lembre que meu estilo de show evita gradientes arco-íris chapados, prefere névoa
|
|
2330
|
-
> fria, luz de borda âmbar e câmera lenta, e use essa memória no próximo look."*
|
|
2331
|
-
|
|
2332
|
-
> *"Ache trabalhos anteriores no meu vault parecidos com 'catedral submersa, névoa
|
|
2333
|
-
> azul, strobes lentos' e use o mais próximo como ponto de partida."*
|
|
2334
|
-
|
|
2335
|
-
> *"Faça lint da minha biblioteca de receitas antes do show e me diga quais notas
|
|
2336
|
-
> têm assets ausentes, ids duplicados ou operadores desconhecidos."*
|
|
2337
|
-
|
|
2338
|
-
**O que você recebe:** uma biblioteca local de show, amigável a git.
|
|
2339
|
-
`scaffold_vault` cria as pastas iniciais, incluindo `Memory/style.md`; as ferramentas
|
|
2340
|
-
de salvar podem usar auto-tags determinísticas; `recall_similar_work` busca seus
|
|
2341
|
-
próprios looks anteriores; e `lint_recipe_library` pega notas ruins antes delas
|
|
2342
|
-
chegarem ao projetor.
|