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.

Rendered / worksLimited featureTarget onlyNot verifiedNot supportedKnown failure
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 / route2D effectsState / particles3D / volumesHost inputsCompatibilityImplementationNoisedeck kitCategoryHostLanguageWhat's includedEvidence 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
  • Linux Chromium: Rendered in headless Chromium.
  • macOS Chrome: Chrome 154: published Babylon.js demo rendered live frames.
  • Windows Chrome: Babylon.js adapter render unverified.
  • Android Chrome: Babylon.js adapter render unverified.
  • Windows Edge: WebGL2 target; Babylon.js adapter render unverified.
  • macOS Edge: WebGL2 target; Babylon.js adapter render unverified.
  • Linux Edge: WebGL2 target; Babylon.js adapter render unverified.
  • Windows Firefox: WebGL2 target; Babylon.js adapter render unverified.
  • macOS Firefox: WebGL2 target; Babylon.js adapter render unverified.
  • Linux Firefox: WebGL2 target; Babylon.js adapter render unverified.
  • Android Firefox: WebGL2 target; Babylon.js adapter render unverified.
  • macOS Safari: WebGL2 target; Babylon.js adapter render unverified.
  • iOS Safari: Safari 26.5 simulator: published Babylon.js demo rendered live frames; physical devices and export kit unverified.
  • iPadOS Safari: Safari 26.5 simulator: published Babylon.js demo rendered live frames; physical devices and export kit unverified.
Source wrapperListed kitBrowser exportsBabylon.js / WebGL2GLSL / JavaScriptAdapter and compiled graphReference 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
  • Linux Chromium: Software-GL render checked.
  • macOS Chrome: Chrome 154 live demo painted changing frames; particle motion and export kit unverified.
  • Windows Chrome: Cables adapter render unverified in this browser.
  • Android Chrome: Cables adapter render unverified in this browser.
  • Windows Edge: WebGL2 target; Cables adapter render unverified.
  • macOS Edge: WebGL2 target; Cables adapter render unverified.
  • Linux Edge: WebGL2 target; Cables adapter render unverified.
  • Windows Firefox: WebGL2 target; Cables adapter render unverified.
  • macOS Firefox: WebGL2 target; Cables adapter render unverified.
  • Linux Firefox: WebGL2 target; Cables adapter render unverified.
  • Android Firefox: WebGL2 target; Cables adapter render unverified.
  • macOS Safari: Safari 17.6 live demo painted frames; particle motion and export kit unverified.
  • iOS Safari: Safari 26.5 simulator: live demo fails with OES_texture_float_linear required; black canvas.
  • iPadOS Safari: Safari 26.5 simulator: live demo fails with OES_texture_float_linear required; black canvas.
Source wrapperListed kitBrowser exportscables.gl / WebGL2GLSL / JavaScriptPatch, op extension and playerNoisemaker 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
  • Linux Chromium: Adapter parity checks documented.
  • Windows Chromium: Adapter parity checks documented.
  • macOS Chrome: Chrome 154: published Three.js demo rendered live frames.
  • Windows Edge: WebGL2 target; Three.js adapter render unverified.
  • macOS Edge: WebGL2 target; Three.js adapter render unverified.
  • Linux Edge: WebGL2 target; Three.js adapter render unverified.
  • Windows Firefox: WebGL2 target; Three.js adapter render unverified.
  • macOS Firefox: WebGL2 target; Three.js adapter render unverified.
  • Linux Firefox: WebGL2 target; Three.js adapter render unverified.
  • Android Firefox: WebGL2 target; Three.js adapter render unverified.
  • macOS Safari: WebGL2 target; Three.js adapter render unverified.
  • iOS Safari: Safari 26.5 simulator: published Three.js demo rendered live frames; physical devices and export kit unverified.
  • iPadOS Safari: Safari 26.5 simulator: published Three.js demo rendered live frames; physical devices and export kit unverified.
Source wrapperListed kitBrowser exportsThree.js / WebGL2GLSL / JavaScriptAdapter, example page and programTexture 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
  • Windows Chrome: WebGL2 target; exported page not rendered per OS.
  • macOS Chrome: WebGL2 target; exported page not rendered per OS.
  • Linux Chrome: WebGL2 target; exported page not rendered per OS.
  • Android Chrome: WebGL2 target; exported page not rendered per OS.
  • Windows Edge: WebGL2 target; exported page not rendered per OS.
  • macOS Edge: WebGL2 target; exported page not rendered per OS.
  • Linux Edge: WebGL2 target; exported page not rendered per OS.
  • Windows Firefox: WebGL2 target; exported page not rendered per OS.
  • macOS Firefox: WebGL2 target; exported page not rendered per OS.
  • Linux Firefox: WebGL2 target; exported page not rendered per OS.
  • Android Firefox: WebGL2 target; exported page not rendered per OS.
  • macOS Safari: WebGL2 target; exported page not rendered per OS.
  • iOS Safari: WebGL2 target; exported page not rendered per OS.
  • iPadOS Safari: WebGL2 target; exported page not rendered per OS.
Reference sourceListed kitBrowser exportsStandalone browser pageGLSL / JavaScriptHTML, DSL and optional engine/shader filesThe 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
  • Windows Chrome: WebGPU target; exported page render unverified.
  • macOS Chrome: WebGPU target; exported page render unverified.
  • Android Chrome: Selected supported devices; exported page render unverified.
  • Linux Chrome: Selected supported devices; exported page render unverified.
  • Windows Edge: WebGPU target; exported page render unverified.
  • macOS Edge: Not qualified for this route.
  • Linux Edge: Not qualified for this route.
  • Windows Firefox: WebGPU target; exported page render unverified.
  • Apple Silicon macOS Firefox: WebGPU target; exported page render unverified.
  • Linux Firefox: Experimental builds required; exported page render unverified.
  • Intel macOS Firefox: Experimental builds required; exported page render unverified.
  • macOS Safari: Safari 26+ WebGPU target; exported page render unverified.
  • iOS Safari: Safari 26+ WebGPU target; exported page render unverified.
  • iPadOS Safari: Safari 26+ WebGPU target; exported page render unverified.
Reference sourceListed kitBrowser exportsStandalone browser pageWGSL / JavaScriptHTML, DSL and optional engine/shader filesThese 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
  • macOS: Apple Silicon Metal: the kit renderer draws exported programs with documented reference parity, apart from small text-edge differences.
  • Windows: Build and test jobs are configured; the kit README does not document a Windows render.
  • Linux: Mesa software Vulkan: the kit renderer draws exported programs, without reference comparison.
PortListed kitDesktop and nativeNative library / DawnC++20 / C ABI / WGSLCMake source kit, C/C++ library and GPU rendererThe 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
  • macOS: Apple Silicon/Metal rendered parity was checked at an earlier source revision; the current-head whole-port gate remains open.
  • Windows: Windows is not supported by the current add-on.
  • Linux: Blender 5.1.2 / NVIDIA GPU quick-start bake and saved-image round-trip were checked; the documented startup path and full parity are not qualified.
PortUnlisted kitDesktop and nativeBlender 5.1 / GPUPython / GLSLAdd-on, bake script and DSLBakes 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
  • macOS: Rendered check
  • Windows: Rendered check
  • Linux: Not verified
PortListed kitDesktop and nativeGodot 4.7 Forward+GDScript / GPU shadersGodot project and add-onmacOS parity qualified; Windows rendering documented without parity qualification. Needs a real GPU window.
Noisemaker for LÖVE
macOSWindowsLinux
Platform notes
  • macOS: Rendered check
  • Windows: Not verified
  • Linux: Not verified
PortListed kitDesktop and nativeLÖVE 11.5 desktopLua / GLSLSource modulemacOS 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
  • macOS: Rendered check
  • Windows: Rendered check
  • Linux: Rendered check
PortListed kitDesktop and nativeQt 6.9 / OpenGL 4.1C++17 / GLSL 330Qt CMake projectCI builds all three desktop OSes; rendered fixtures run on Linux and Windows. macOS quickstart is documented.
Noisemaker for Rust GPU
macOSWindowsLinux
Platform notes
  • macOS: Rendered check
  • Windows: Not verified
  • Linux: Targeted; render unverified
PortListed kitDesktop and nativeRust / wgpuRust / WGSLCrate, CLI and viewerA 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
  • macOS: Rendered check
  • Windows: Not supported
  • Linux: Not supported
PortListed kitDesktop and nativeSwift 6 / MetalSwift / MetalLocal Swift packageApple 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
  • macOS: Rendered check
  • Windows: Not verified
  • Linux: Not supported
PortListed kitDesktop and nativeTouchDesigner TOP networkPython / GLSLSetup script and Python packageVerified on Apple Silicon/Metal in a logged-in graphics session.
Noisemaker for Unity
macOSWindowsLinux
Platform notes
  • macOS: Rendered check
  • Windows: Not verified
  • Linux: Not verified
PortListed kitDesktop and nativeUnity 6000.3 / Built-in pipelineC# / HLSLUPM package and sample sceneVerified 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
  • macOS: Native fixture tests run in macOS CI; full parity sweeps run on Linux.
  • Windows: The kit documents a Windows executable path, but current CI has no Windows render lane.
  • Linux: Native tests and byte-level parameter and define sweeps run on Linux against the pinned authority.
PortUnlisted kitCPU renderersC++20 / CPUC++20CMake project, renderer and DSLThe 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
  • Linux Chromium: Browser demos rendered in versions 93 and 154.
  • macOS Chrome: Chrome 154: source browser demo completed 65,536 nonzero pixels with no module or page errors.
  • Windows Chrome: CPU browser demo render unverified.
  • Windows Edge: ES2022 target; CPU browser demo render unverified.
  • macOS Edge: ES2022 target; CPU browser demo render unverified.
  • Linux Edge: ES2022 target; CPU browser demo render unverified.
  • Linux Firefox: Browser demos rendered in versions 93 and 155.
  • macOS Firefox: Firefox 152: published CPU demo completed a 256×256 frame.
  • Windows Firefox: CPU browser demo render unverified.
  • macOS Safari: Safari 17.6: published CPU demo completed a 256×256 frame.
  • iOS Safari: Safari 26.5 simulator: published CPU demo completed a varied 256×256 frame; physical devices unverified.
  • iPadOS Safari: Safari 26.5 simulator: published CPU demo completed a varied 256×256 frame; physical devices unverified.
PortListed kitCPU renderersNode.js 22+ or browser ESMJavaScript / CSLRender script and DSLAll 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
  • macOS: Targeted; render unverified
  • Windows: Targeted; render unverified
  • Linux: Targeted; render unverified
PortListed kitCPU renderersPython 3.11+ / NumPyPythonRender script and DSLAll 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
  • macOS: Standalone render and archive-install tests run on Ruby 4.0 in macOS CI; full parity runs on Linux and Windows.
  • Windows: Ruby 4.0 weekly Windows run passed the pinned-authority default-frame parity suite at the reported head.
  • Linux: Standalone tests and full pinned-authority default-frame parity run; the all-parameter sweep is incomplete.
PortUnlisted kitCPU renderersRuby 3.4/4.0 / CPURubyRender script, DSL and pure-Ruby enginePinned-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
  • macOS: Targeted; render unverified
  • Windows: Rendered check
  • Linux: Rendered check
PortListed kitCPU renderersRust 1.85+RustRender crate and DSLAll 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.