Live-coding environment
Polymorphic
Polymorphic is a graph-based shader composition language and a live-coding environment for it. Programs compile to GPU render passes and run in the browser.
- Free
- Browser, installable PWA
- WebGL2 and WebGPU
- Desktop: macOS, Windows, Linux
Overview
Polymorphic is the composition language of the Noisemaker engine. A program chains effects with dots and writes the result to an output surface. It compiles to a directed graph of render passes that run as GLSL on WebGL2 or WGSL on WebGPU.
The Polymorphic app is a live-coding environment for the language. The shader fills the page, and the editor floats above it. The canvas updates as you type. Noisedeck compositions are Polymorphic programs, so code moves between the two apps.
The Book of Polymorphic DSL is an illustrated reference to over 100 effects. Every page is a running program that you can edit in place and open in Polymorphic.
Features
-
Live editor
The program recompiles as you type. Evaluate the whole program or a single block, and step through a history of successful programs.
-
Inline number scrubbing
Alt-drag any numeric literal to change it live. Shift gives fine steps and Ctrl or Command gives coarse steps.
-
Purpose-built syntax
Named arguments, oscillators, hex colors, enums, inline arithmetic, and chainable writes are part of the grammar.
-
Live inputs
Use a microphone for audio-reactive visuals, MIDI CC and clock, a webcam, or screen capture as shader sources.
-
Media and text
Load images and video with
media(url: "...")and render text withtext(...). -
Tempo
Set BPM by tap tempo or follow MIDI clock for tempo-synced motion.
-
Scenes and performance mode
Save programs and recall them with the number keys. Performance mode hides all UI for clean projection.
-
Recording and sharing
Record the canvas to WebM video, save PNG or JPG stills, and publish a sketch to a short link.
-
Command palette and gallery
Search every action with Ctrl or Command + K, and load example sketches from the inspiration gallery.
-
The Book of Polymorphic DSL
An illustrated reference to over 100 effects, from synths and filters to 3D. Each page is an editable, running program with further reading on the technique.
Specifications
| Platforms | Web browser, installable as a PWA with offline support; desktop app for macOS (Apple Silicon), Windows, Linux |
|---|---|
| Rendering | WebGL2 (default) and WebGPU |
| Inputs | Microphone, MIDI (CC and clock), webcam, screen capture, images, video, text |
| Output | WebM video, PNG and JPG stills, short share links, Syphon, Spout, NDI, and camera output through Sync |
| Language | Polymorphic DSL, compiled to GLSL (WebGL2) or WGSL (WebGPU) render passes |
| Custom effects | Portable Effects Format (Portable) |
| URL parameters | ?dsl= loads a program, ?code= loads a shared sketch, ?backend=webgpu selects the backend, ?embed=1 gives a chromeless canvas for iframes |
| Price | Free in the browser. The desktop app is included with Noisedeck Forever. |
Get started
- Open polymorphic.noisedeck.app.
- Type
search synthandnoise().write(o0)to render a noise pattern. - Add effects with dots, for example
noise().palette().lighting().write(o0). - Press
?for the keyboard shortcuts, or open the Book to browse effects.
Resources
- Polymorphic: the app
- The Book of Polymorphic DSL: illustrated effect reference
- Noisemaker documentation: language and effect specifications
- Desktop downloads: requires Noisedeck Forever
Questions
- What is the difference between Polymorphic and Noisedeck?
- Both use the same language and engine. Noisedeck is a visual editor with controls for each effect. Polymorphic is a code-first live-coding environment. A Noisedeck composition is a Polymorphic program.
- What does a Polymorphic program look like?
- Effects chain with dots and write to an output surface. For example, noise().palette().lighting().write(o0) generates noise, colors it, lights it, and writes it to surface o0.
- Is Polymorphic free?
- Yes. Polymorphic is free in the browser. The desktop app is included with Noisedeck Forever.
- What is The Book of Polymorphic DSL?
- An illustrated reference to over 100 Noisemaker effects. Each page is a full-screen running program with an explanation of its shader, and you can edit it in place or open it in Polymorphic.