Shader pipeline export
Universal Pipeline Export
You made something cool. How do you get the shader out?
A Noisedeck program is more than one shader. It is an orchestrated pipeline of effects, render passes, textures and inputs. Noisedeck.app’s Export Shader Pipeline feature packages that program for a growing set of hosts. The open source Noisemaker engine, its ports and its source wrappers make the same composition usable well beyond the editor.
What's in an export
Copying one fragment shader would leave most of a Noisedeck program behind. Your Polymorphic program describes the effect chain; Noisemaker turns it into ordered render passes with textures, inputs and output surfaces. An export packages the program and the code its destination needs to play it.
The table separates entries recorded in Noisedeck’s source registry from projects that currently have no kit. A repository’s existence does not mean that its target appears in the live app, covers every effect or has been verified on every OS.
Export targets and compatibility
Squares summarize documented support. Browser tiles name the OS and browser; open the notes for exact checks. “Listed kit” describes the Noisedeck source registry, not a verified live export.
How to read the matrix
A reference source is a built-in Noisemaker export. A source wrapper runs its engine in another host; a port implements a destination runtime. Square statuses do not qualify every effect, parameter or device. CPU audio/MIDI fixtures do not establish real-time response. Scroll inside the table; project names and column headings stay visible.
| Project / route | 2D effects | State / particles | 3D / volumes | Host inputs | Compatibility | Implementation | Noisedeck kit | Category | Host | Language | What's included | Evidence and limits |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Noisemaker for Babylon.jsLive demo ↗ | Inputs verifiedImage, text, MIDI and OBJ mesh paths are tested with host fixtures. | Linux ChromiummacOS ChromeWindows ChromeAndroid ChromeWindows EdgemacOS EdgeLinux EdgeWindows FirefoxmacOS FirefoxLinux FirefoxAndroid FirefoxmacOS SafariiOS SafariiPadOS Safari Platform notes
| Source wrapper | Listed kit | Browser exports | Babylon.js / WebGL2 | GLSL / JavaScript | Adapter and compiled graph | Reference pipeline with a Babylon backend; host-input fixtures are documented. Published demo checks do not qualify the exact export kit or physical mobile devices. | |||
| Noisemaker for CablesLive demo ↗ | Inputs wiredCGL texture, MIDI state and audio state enter the Program op; the host handles device capture. | Linux ChromiummacOS ChromeWindows ChromeAndroid ChromeWindows EdgemacOS EdgeLinux EdgeWindows FirefoxmacOS FirefoxLinux FirefoxAndroid FirefoxmacOS SafariiOS SafariiPadOS Safari Platform notes
| Source wrapper | Listed kit | Browser exports | cables.gl / WebGL2 | GLSL / JavaScript | Patch, op extension and player | Noisemaker runs inside a Cables patch. The Standalone smoke render is a separate check. The published demo fails on iPhone and iPad Safari 26.5 simulators because OES_texture_float_linear is unavailable. Desktop particle motion still needs an isolated check. | |||
| Noisemaker for Three.jsLive demo ↗ | Scene texture worksThe composer feeds a scene into media(); live audio, video, OBJ and text still need host wiring. | Linux ChromiumWindows ChromiummacOS ChromeWindows EdgemacOS EdgeLinux EdgeWindows FirefoxmacOS FirefoxLinux FirefoxAndroid FirefoxmacOS SafariiOS SafariiPadOS Safari Platform notes
| Source wrapper | Listed kit | Browser exports | Three.js / WebGL2 | GLSL / JavaScript | Adapter, example page and program | Texture and post-process wrappers; live external feeds need host wiring. Published demo checks do not qualify every browser or the exact export kit. | |||
| WebGL2 page | Add page wiringThe exported page plays the DSL but does not connect camera, microphone, MIDI or media assets. | Windows ChromemacOS ChromeLinux ChromeAndroid ChromeWindows EdgemacOS EdgeLinux EdgeWindows FirefoxmacOS FirefoxLinux FirefoxAndroid FirefoxmacOS SafariiOS SafariiPadOS Safari Platform notes
| Reference source | Listed kit | Browser exports | Standalone browser page | GLSL / JavaScript | HTML, DSL and optional engine/shader files | The kit README documents broad browser support. Host feeds still need browser permission or supplied assets; it does not list browser-by-browser export checks. | |||
| WebGPU page | Add page wiringThe exported page plays the DSL but does not connect camera, microphone, MIDI or media assets. | Windows ChromemacOS ChromeAndroid ChromeLinux ChromeWindows EdgemacOS EdgeLinux EdgeWindows FirefoxApple Silicon macOS FirefoxLinux FirefoxIntel macOS FirefoxmacOS SafariiOS SafariiPadOS Safari Platform notes
| Reference source | Listed kit | Browser exports | Standalone browser page | WGSL / JavaScript | HTML, DSL and optional engine/shader files | These are browser-vendor WebGPU targets, not an end-to-end export test on every device. Effects need WGSL shaders. | |||
| libnoisemaker | Not verifiedThe Dawn renderer draws programs; effect-family coverage needs separate qualification. | Not verifiedThe renderer advances program frames; independent feedback and particle qualification is not recorded here. | Not verifiedThe renderer draws programs; independent mesh and volume qualification is not recorded here. | Not verifiedThe CLI accepts PNG textures and OBJ meshes; live MIDI and audio are not connected. | macOSWindowsLinux Platform notes
| Port | Listed kit | Desktop and native | Native library / Dawn | C++20 / C ABI / WGSL | CMake source kit, C/C++ library and GPU renderer | The listed Noisedeck source kit includes a GPU renderer and C/C++ compiler library. The library README still marks the project under construction. Rendering is documented on Apple Silicon macOS and software-Vulkan Linux; Windows rendering is unverified. |
| Noisemaker for Blender | Supplied inputsImage and exact-frame media providers can supply textures; audio/MIDI snapshots are session inputs. Live device capture and scope/spectrum effects are not supported. | macOSWindowsLinux Platform notes
| Port | Unlisted kit | Desktop and native | Blender 5.1 / GPU | Python / GLSL | Add-on, bake script and DSL | Bakes into Blender Image datablocks for materials and compositing. Fresh baking on macOS needs an open GPU window; some effect parity gaps remain. | |||
| Noisemaker for Godot | macOSWindowsLinux Platform notes
| Port | Listed kit | Desktop and native | Godot 4.7 Forward+ | GDScript / GPU shaders | Godot project and add-on | macOS parity qualified; Windows rendering documented without parity qualification. Needs a real GPU window. | ||||
| Noisemaker for LÖVE | macOSWindowsLinux Platform notes
| Port | Listed kit | Desktop and native | LÖVE 11.5 desktop | Lua / GLSL | Source module | macOS M2 is qualified; the runtime accepts host textures and per-frame audio/MIDI snapshots. Windows, Linux and mobile need host qualification. | ||||
| Noisemaker for Qt | macOSWindowsLinux Platform notes
| Port | Listed kit | Desktop and native | Qt 6.9 / OpenGL 4.1 | C++17 / GLSL 330 | Qt CMake project | CI builds all three desktop OSes; rendered fixtures run on Linux and Windows. macOS quickstart is documented. | ||||
| Noisemaker for Rust GPU | macOSWindowsLinux Platform notes
| Port | Listed kit | Desktop and native | Rust / wgpu | Rust / WGSL | Crate, CLI and viewer | A source export kit is listed in Noisedeck. Apple Silicon/Metal parity is documented; Linux has build evidence but no qualified render here. | ||||
| Noisemaker for Swift | macOSWindowsLinux Platform notes
| Port | Listed kit | Desktop and native | Swift 6 / Metal | Swift / Metal | Local Swift package | Apple Silicon macOS 14+ is qualified; apps can supply textures and audio/MIDI snapshots. iOS and iPadOS are not qualified. | ||||
| Noisemaker for TouchDesigner | macOSWindowsLinux Platform notes
| Port | Listed kit | Desktop and native | TouchDesigner TOP network | Python / GLSL | Setup script and Python package | Verified on Apple Silicon/Metal in a logged-in graphics session. | ||||
| Noisemaker for Unity | macOSWindowsLinux Platform notes
| Port | Listed kit | Desktop and native | Unity 6000.3 / Built-in pipeline | C# / HLSL | UPM package and sample scene | Verified on Apple Silicon/Metal; Windows and Linux editors are not yet verified. | ||||
| Noisemaker for C++ (CPU) | PNG texturesThe CLI binds an input PNG and named textures. Audio/MIDI and mesh host inputs are not documented for this export. | macOSWindowsLinux Platform notes
| Port | Unlisted kit | CPU renderers | C++20 / CPU | C++20 | CMake project, renderer and DSL | The kit-listed effects passed pinned-authority Release parameter and define sweeps. Debug, later-frame and render-scale coverage remain open. Rendering is offline. | |||
| Noisemaker for CPU (JavaScript)Live demo ↗ | Offline inputsSupplied MIDI/audio state and mesh data can be bound for offline frames; there is no live device capture or real-time response. | Linux ChromiummacOS ChromeWindows ChromeWindows EdgemacOS EdgeLinux EdgeLinux FirefoxmacOS FirefoxWindows FirefoxmacOS SafariiOS SafariiPadOS Safari Platform notes
| Port | Listed kit | CPU renderers | Node.js 22+ or browser ESM | JavaScript / CSL | Render script and DSL | All 210 effects execute. Reference parity has six declared skips and one accepted CRT approximation; complex frames may be slow. No GPU needed. | |||
| Noisemaker for Python | Fixture inputsParity uses predetermined audio/MIDI and mesh values for offline frames; live device response is not qualified. | macOSWindowsLinux Platform notes
| Port | Listed kit | CPU renderers | Python 3.11+ / NumPy | Python | Render script and DSL | All 210 catalog effects byte-match the pinned JavaScript CPU oracle at the documented 8×8 fixture; this does not prove every parameter or resolution. | |||
| Noisemaker for Ruby | PNG imagesThe export can consume PNG image inputs. Live audio/MIDI and mesh effects are excluded from the kit; CPU rendering is offline. | macOSWindowsLinux Platform notes
| Port | Unlisted kit | CPU renderers | Ruby 3.4/4.0 / CPU | Ruby | Render script, DSL and pure-Ruby engine | Pinned-authority default-frame parity is byte-exact across the bundled catalog; the all-parameter sweep remains incomplete. Large frames are slow. Ruby 3.2 is the compatibility floor. | |||
| Noisemaker for Rust (CPU) | Offline inputsThe CLI accepts deterministic audio/MIDI and mesh fixtures; rendering is offline. | macOSWindowsLinux Platform notes
| Port | Listed kit | CPU renderers | Rust 1.85+ | Rust | Render crate and DSL | All 210 effects include offline audio/MIDI and mesh input cases; Linux and Windows cross-port parity runs are documented. |
Browser platform references:
Using a destination
Choose the host you want, then open its linked source package for install steps, examples, parity evidence and current limits. Individual guides with fuller examples are planned for these ports and source wrappers. This comparison will change as the projects develop.
For now, the Noisemaker demos show several integrations in action. See Noisedeck for the editor and Noisemaker for the engine.