--- description: "Use Shader Park com o tdmcp: compile código Shader Park para uma rede GLSL MAT no TouchDesigner, baixe o plugin oficial .tox e monte um visualizador nativo inspirado no Animus." --- # Shader Park e packs de visualizer O tdmcp suporta dois caminhos práticos para Shader Park: | Caminho | Melhor para | Como | |---------|-------------|------| | Tool do tdmcp | Cenas criadas pela IA, scripts repetíveis, previews | `create_shader_park` / `tdmcp-agent shaderpark` compila o código com `shader-park-core` e monta uma rede GLSL MAT. | | Plugin oficial | Edição manual de Shader Park dentro do TouchDesigner | `npm run shader-park:tox` baixa o `Shader_Park_TD.tox` oficial de `shader-park-touchdesigner`. | O repo `codygibb/animus-visualizer` é diferente: ele é um sketch Processing/Java, não um pacote npm nem um componente TouchDesigner. O tdmcp inclui uma receita nativa inspirada no estilo de anéis de áudio dele, então você consegue montar a ideia sem instalar Processing. ## Compile código Shader Park `create_shader_park` usa a dependência peer opcional `shader-park-core`. O install padrão/hosted não inclui essa dependência porque `shader-park-core@0.2.8` publica uma entrada de binário `toMinimal` quebrada que faz o pnpm emitir warnings de instalação. Para compilar Shader Park localmente, instale-a junto do tdmcp primeiro: ```bash npm install shader-park-core ``` Peça ao assistente: > *"Crie uma escultura Shader Park com `rotateY(time * 0.25); color(vec3(0.2, 0.8, 1.0)); sphere(0.45);`, exponha os controles e me mostre um preview."* Ou rode pelo terminal: ```bash tdmcp-agent shaderpark --params '{ "code": "let size = input(); rotateY(time * 0.2); sphere(size);", "uniform_values": { "size": 0.55 }, "speed": 1, "scale": 1, "camera_z": 4 }' ``` A tool cria um COMP novo com: - um Text DAT `shaderpark_code` com o código Shader Park original - um Text DAT `shaderpark_pixel` compilado - um `glslMAT` aplicado a uma caixa renderizável - câmera, luz, Render TOP e `out1` - controles ao vivo para Speed, Scale, Opacity, StepSize, CameraZ e qualquer uniform float vindo de `input()`, como `Size` Use `uniform_values` quando seu código Shader Park tiver `input()`. Por exemplo, `let size = input(); sphere(size);` precisa de `{"size": 0.55}` ou o uniform começa no valor padrão do Shader Park. ## Baixe o `.tox` oficial Shader Park também oferece um plugin TouchDesigner pronto. Baixe com: ```bash npm run shader-park:tox ``` Isso baixa `Shader_Park_TD.tox` em: ```text vendor/shader-park/Shader_Park_TD.tox ``` O arquivo é ignorado pelo git de propósito. Solte ele no TouchDesigner quando quiser o fluxo oficial do plugin: um Text DAT com código Shader Park conectado ao plugin. Se seu código usa `input()`, adicione um uniform com o mesmo nome no GLSL MAT do plugin, seguindo as instruções upstream. ## Anéis estilo Animus Monte a receita nativa: ```bash tdmcp-agent recipe --params '{"id":"animus_rings_visualizer"}' ``` Ela usa um `audiooscillatorCHOP` sintético, converte o canal para TOP e desenha anéis radiais pulsantes em um GLSL TOP. Troque o oscilador por Audio Device In ou Audio File In quando quiser música ao vivo. ## Fontes - [shader-park-core](https://github.com/shader-park/shader-park-core) - [shader-park-touchdesigner](https://github.com/shader-park/shader-park-touchdesigner) - [animus-visualizer](https://github.com/codygibb/animus-visualizer)