Noisemaker

Open source shader engine

A shader engine for building visual tools in the browser.

Noisemaker provides an effect format, a composition language (the Polymorphic DSL), a runtime for WebGL2 and WebGPU, portable effect packaging, and more than 100 shader effects.

Architecture

Effects as data, composition as readable code.

Effect contracts

Every effect declares its parameters, inputs, textures, passes, tags, and shader programs so tools can inspect what they are about to run.

Readable composition

A layer stack, a camera filter, an audio visualizer, or a 3D volume can be represented as a compact program string.

Live inputs

Oscillators, MIDI, audio bands, media textures, image sources, text, meshes, and volume buffers all enter through named contracts.

Program state mutation

The runtime can compile, unparse, list steps, replace compatible effects, and apply parameter updates without treating source as opaque text.

Subchains and routing

Programs can group contiguous effects, write intermediate surfaces, and route multiple chains through explicit buffers.

Human and agent scale

The DSL is terse enough for live coding and structured enough for a coding agent to inspect, modify, and validate.

Capability

More than 100 effects.

The catalog includes sources, transforms, simulations, compositing, 3D volumes, feedback, media, text, color, geometry, and render utilities.

Filters

Color, blur, distortion, grading, lens, glitch, text, pixel, palette, edges, temporal effects, and more.

Generators

Noise, fractals, cellular systems, gradients, media, scopes, polygon sources, and procedural starters.

Mixers

Compositing and blend modes for images, video, generated textures, and intermediate surfaces.

Point systems

Agent and particle behaviors cover physarum, flow, flocking, life-like systems, trails, and simulation patterns.

Volumes and 3D

Volumetric generators and processors give shader programs structured 3D texture sources and transforms.

Render utilities

Mesh, point, cubemap, feedback, loop, and presentation helpers connect shader programs to browser output.

License

MIT licensed.

Noisemaker is released under the MIT license. You can use it in personal and commercial projects.

The DSL compiler, renderer, and effects library are also available for other platforms, so programs you write for Noisemaker are not tied to the browser.

Ports, adapters, and live demos →

Get started

For developers and coding agents.

Use these resources whether you write the code yourself or with Claude, Codex, Gemini, or another coding agent.

shade-mcp

shade-mcp can search effects, inspect definitions, compile DSL, render frames, test uniforms, and compare WebGL2 against WebGPU.

portable

For low-level shader code for Noisedeck or another Noisemaker-based product, the portable spec defines self-contained effects with definition JSON, help docs, GLSL, WGSL, and a viewer.

Multi-user editing

The Seance SDK adds conflict-free multi-user network editing for the Noisemaker engine.

Apps

Built on Noisemaker.