# Noisemaker Noisemaker is an open source shader framework for humans and coding agents. Use it to build expressive, extensible visual tools in the browser. It supports: - WebGL2 and WebGPU. - The high-level Polymorphic DSL. - Declarative effect definitions. - Portable effect packages. - External media/audio/MIDI inputs. - Shader bundles distributed through a CDN. Use this file as the short public map. For a fuller agent-oriented overview, read `/llms-full.txt`. ## Primary Links - [Homepage](https://noisemaker.app/): Product overview and demos. - [Shader demo](https://noisemaker.app/demo/shaders/): Interactive effect browser and DSL editor. - [Docs](https://docs.noisemaker.app/): In-house documentation root. - [Source](https://github.com/noisefactorllc/noisemaker): Noisemaker repository. ## Core Documentation - [Shader integration](https://docs.noisemaker.app/shaders/integration/): Embedding `CanvasRenderer` from the CDN or local bundles. - [Shader specs](https://docs.noisemaker.app/shaders/specs/): Effect format, Polymorphic DSL, pipeline, compiler, and effect reference. - [Pipeline spec](https://docs.noisemaker.app/shaders/pipeline/): DSL to render graph, resource allocation, and GPU dispatch. - [Language spec](https://docs.noisemaker.app/shaders/language/): Polymorphic DSL syntax and semantics. - [Effect definition spec](https://docs.noisemaker.app/shaders/effects/): Effect definitions, namespaces, tags, globals, textures, and passes. - [Release process](https://docs.noisemaker.app/releases/): CDN pinning, immutable patch releases, and release channels. ## Agent Tooling For the roles and control paths of the Noise Factor apps, including Timeline, start from the [platform guide](https://noisefactor.io/llms.txt). Start with the "Portable effect authoring" section of [llms-full.txt](https://noisemaker.app/llms-full.txt) for host-independent discovery, typed bindings, paired shaders, looping, rendered checks and export round trips. The [effect manifest](https://shaders.noisedeck.app/1/effects/manifest.json) lists every effect as `namespace/name`. Each effect's `help.md` gives its parameters with their types, defaults and ranges, as plain text: `https://raw.githubusercontent.com/noisefactorllc/noisemaker/v/shaders/effects///help.md`, where `` is the `version` in https://shaders.noisedeck.app/1/deployment-meta.json, the engine that the apps run. For app control, read [Foundry](https://foundry.noisedeck.app/llms-full.txt) or [Shade](https://shade.noisedeck.app/llms-full.txt). Their guides add shader-craft and reference-video workflows. - [shade-mcp](https://github.com/noisefactorllc/shade-mcp): MCP server for effect search, source search, compile, render, metrics, parity, and structure checks. - [portable](https://github.com/noisefactorllc/portable): Portable effect package format with definition JSON, help docs, GLSL, WGSL, and viewer. ## Demos - [Noisedeck.app](https://noisedeck.app): A comprehensive UI that fully exercises Noisemaker. - [Layers](https://layers.noisefactor.io): A non-destructive layer-based image and video clip editor built on Noisemaker. - [Demos](https://demos.noisemaker.app): Noisemaker demos, ports, and source adapters. ## Notes For Agents - Polymorphic DSL is not GLSL or WGSL. - Effect paths such as `synth/noise` are not DSL function calls. - Effects should use internal textures for private state. User surfaces `o0` through `o7` belong to the composition graph. - Custom integrations can use `registerNamespace()` and the `user` namespace. - Portable effects use `definition.json`, `help.md`, GLSL, WGSL, and the Noisemaker DSL. - Validate generated shader work: 1. Compile the shaders. 2. Render the output. 3. Check the metrics. 4. Test WebGL2/WebGPU parity when both backends matter.