Junkpile developer guide

Start with a working example.
Build the tool you need.

Junkpile gives you runnable desktop projects for common creative-media problems—rendering, camera and video input, audio, MIDI and OSC, recording, GPU processing, export, and output routing. Use the smallest example that already solves part of your problem, understand its boundaries, then adapt or combine it into your own application.

Search hides sections that do not match.
Orientation

What Junkpile does #

Junkpile removes repeated setup work from creative desktop development. Instead of starting with an empty Tauri project and rebuilding graphics, media input, recording, control, and output plumbing yourself, you can begin with a working example that already owns the part of the application you need.

The examples are meant to be run, read, modified, and combined. They range from approachable WebView/WebGL projects to native Rust/wgpu projects for workloads that need more direct GPU or media control.

Desktop application shell

Tauri v1 and v2 package the project as a desktop application and determine configuration, permissions, plugins, window APIs, IPC conventions, and some window-integration constraints.

Where the graphics run

WebView/WebGL is the more accessible browser-style path. Native Rust/wgpu gives Rust direct ownership of pixels, textures, the render loop, and GPU resources when the application needs that control.

Connect the application

Camera, audio, files, MIDI, OSC, FFmpeg, NDI, Syphon, Spout, and other services connect the application to media, controllers, recorders, and external systems. They are integration layers, not synonyms for one renderer.

No fixed public total.The library is designed to grow. Documentation is organized around architectural tracks and capabilities rather than an advertised example count.
Quick start

Run one project before you change anything #

The fastest way into Junkpile is to find the example closest to your goal and prove that it works unchanged. That gives you a known-good baseline before your own code enters the picture.

  1. Choose the smallest example that already does the input, processing, or output job you need.
  2. Enter that project directory.
  3. Run npm install once for the project.
  4. Run npm run dev.
  5. Confirm the untouched baseline before editing.
Example: Native A/V recorder
git clone https://github.com/schwwaaa/junkpile.git
cd junkpile/wgpu/43-wgpu-av-recorder
npm install
npm run dev
Installation & build

Install, run, and package a project #

Core tools

git --version
node --version
npm --version
rustc --version
cargo --version

macOS

xcode-select --install

Native wgpu uses Metal. Camera/microphone projects require OS permissions. Syphon is macOS-specific.

Windows

Install Visual Studio Build Tools with Desktop development with C++, WebView2, and current GPU drivers. Spout projects have additional native build/runtime requirements.

Linux

Install the distribution's Tauri/WebKitGTK development packages and a functional Vulkan or supported GPU driver stack.

Build

cd <project-folder>
npm install
npm run build

Typical bundles appear beneath src-tauri/target/release/bundle/. Signing/notarization requirements depend on platform and distribution method.

FFmpeg projectsNative video decode/recording projects may require ffmpeg and ffprobe. NDI-enabled builds require the NDI SDK/runtime.
Choose a track

Choose the simplest starting point for the job #

Do not choose a track because one sounds more advanced. Choose it based on what your application actually needs. WebView projects are often faster to understand and modify; native wgpu becomes useful when direct GPU ownership, compute, high-resolution rendering, or tighter native-media integration matters.

Need Current Junkpile starting point
p5.js / browser-media experimentation Tauri v1 or v2 WebView
Current Tauri permissions, dialogs, window APIs Tauri v2 WebView
Explicit GPU resources / compute Native wgpu
Current high-resolution native render/record references Native wgpu series
Current dedicated NDI / Syphon / Spout sender references Native wgpu I/O series; the transports themselves are not wgpu-only
Fast creative application parity Compare the WebView example with its native counterpart where one exists
Technical comparison

What changes when you choose a different path #

The tracks can produce similar kinds of applications, but they place responsibility in different places. This table shows what you take ownership of when moving from a WebView renderer toward native wgpu.

Concern Tauri v1 WebView Tauri v2 WebView Tauri 2 + native wgpu
Pixel owner in current examples WebView WebView Rust/wgpu surface
Shader language in current examples GLSL ES GLSL ES WGSL
Animation/render loop JavaScript / p5 JavaScript / p5 Rust
GPU resources WebGL objects in JS WebGL objects in JS wgpu textures/buffers/pipelines in Rust
Compute in repository baselines Not demonstrated by the WebGL 1 baselines Not demonstrated by the WebGL 1 baselines First-class in the current wgpu examples
Native services / media bridges Rust bridge when an example needs one Rust bridge when an example needs one Rust-owned and commonly integrated directly with renderer state
Recording examples Browser/canvas recording exists Browser/canvas recording exists Current native FFmpeg/high-resolution/A/V recording lineage
NDI / Syphon / Spout No dedicated sender example in current v1 tree No dedicated sender example in current v2 tree Current dedicated Junkpile sender/router references
Capability vs. implementation.A blank cell or missing example in one track does not mean Tauri or that renderer forbids the capability. It means Junkpile does not currently provide that dedicated reference implementation in that collection.
Software stack

Turn reusable pieces into a standalone tool #

A creative application usually needs more than a shader. Junkpile separates input, state, rendering, and output so you can reuse the pieces you need without adopting one giant application framework.

InputsUI · files · camera · audio · MIDI · OSC
→
StateJS or Rust canonical parameters
→
Render / computeWebGL or wgpu
→
Outputspreview · record · route · share
→
Standalone appfocused creative instrument

The repository is intentionally product-agnostic. Proven patterns can be reused by focused applications without requiring one monolithic runtime or one mandatory UI.

Architecture

See where each part of the application lives #

When something breaks, it helps to know who owns it. These three diagrams show the main execution boundary in each repository track before native services and external outputs are added.

V1 WebView

DOM / browser media
↓
JavaScript / WebGL
↓
Tauri v1 WebView

V2 WebView

DOM / Tauri 2 IPC
↓
JavaScript / WebGL
↓
Tauri v2 WebView

Native wgpu

HTML controls / native inputs
↓
Rust / wgpu / WGSL
↓
Metal / Vulkan / DX12

For the detailed lifecycle/resource model, read ARCHITECTURE.md.

Tauri v1 WebView

Use familiar browser graphics inside a desktop application #

Use the v1 examples when you want a direct, readable WebView/WebGL starting point or need to maintain a Tauri 1 application. The collection covers p5.js, raw WebGL, external GLSL, webcam, feedback, MIDI, OSC, media playback, recording, compositing, projection, sequences, audio-file analysis, and automation.

Repository-location noteThe current tree contains v1/25-wgpu-ultra-resolution-export. The catalog preserves the actual folder and README rather than pretending it is a WebView project with a different implementation.
Tauri v2 WebView

Use the browser graphics workflow with current Tauri APIs #

Use the v2 examples when WebGL or browser media already fits the graphics problem but you want the current Tauri application model for permissions, windows, dialogs, files, IPC, and packaging.

Renderer boundaryThese projects still render through the embedded browser/WebView. Tauri 2 changes the application framework; it does not automatically replace WebGL with wgpu.
Tauri 2 + native Rust/wgpu

Use native wgpu when the renderer needs more direct control #

Use the native collection when the application benefits from Rust owning the render loop and GPU resources directly—for example compute workloads, 3D, high-resolution rendering, native video paths, recording, or explicit multi-output routing. The collection also includes application-facing counterparts to several WebView ideas. These are the repository's current implementations; their presence here does not make every attached transport exclusive to wgpu.

Foundations

Surface, resize, WGSL, controls, textures, feedback, multipass, backend limits.

Media + graphics

Camera, FFmpeg video, audio, MIDI, OSC, compositing, glTF, deformation.

I/O + applications

Recording, profiles, NDI, Syphon/Spout, routers, appliance runtime, A/V, shader tools.

NumberingThe public catalog keeps the actual project identities. Example 29 is absent and referenced by later projects as quarantined; a historical 19 WGSL-fix copy is not treated as a second public Example 19.
Current wgpu I/O architecture

Keep recording and external outputs from blocking the renderer #

Once an application has to record, stream, or share frames, the renderer should not wait for every external system to finish its work. The current wgpu I/O series solves that problem with a shared frame contract, bounded workers, and independent output sinks. It is one reusable architecture for a Rust-owned renderer; it is not a statement that the external transports require wgpu.

Authoritative-frame architecture

Render / computeone authoritative texture
→
Frame contractdimensions · index · timestamp
→
GPU readback / presentationsink-specific cadence
→
Bounded workerdrop instead of blocking

Recording lineage

27 frame/output contract
  ↓
28 FFmpeg file recording
  ↓
30 high-resolution recording
  ↓
31 validated I/O profiles
  ↓
36 / 39 multi-output routers
  ↓
43 A/V recorder

Preview resolution and output resolution are intentionally independent in the later native projects. A 4K or 8K-class recording is not defined by the visible window size.

Native A/V Recorder

Record the GPU output and finish with a usable A/V file #

wgpu/43-wgpu-av-recorder is the focused starting point when your application needs native video recording with optional audio. It builds on the high-resolution recorder and adds three audio modes: none, microphone, and local audio file, then muxes the finished streams into the final file.

wgpu videoH.264 or ProRes path
→
completed videoauthoritative duration
→
FFmpeg muxvideo stream copied
→
final A/V fileMP4/AAC or MOV/PCM

Microphone

CPAL captures the selected input to a temporary 32-bit float WAV while native video recording runs.

Audio file

FFmpeg-readable audio can be selected and looped when shorter than the video recording.

On successful mux the intermediate video and temporary microphone file are removed; failures preserve intermediates for diagnosis.

Current output-routing references

Send one rendered image to the outputs your application needs #

The current router examples show how preview, recording, NDI, Syphon, and Spout can be treated as independent destinations instead of being tangled into one render path. The diagram below describes the current wgpu/ implementations. NDI, Syphon, Spout, and FFmpeg are external/native I/O systems, not wgpu features. A WebView application can still use native Rust/platform integrations, but the handoff from WebView-rendered pixels is a separate application-specific bridge and is not represented by dedicated sender examples in the current v1/v2 folders.

Authoritative wgpu texture
→
PreviewGPU presentation
NDIreadback → BGRA worker
Recordingreadback → FFmpeg
Platform shareSyphon / Spout
Network boundary40-wgpu-network-output remains unresolved/under review. Later router/appliance projects intentionally exclude the earlier unresolved network-streaming worker path.

Syphon

macOS-only. Current example bridges wgpu through CPU BGRA staging into a reusable Metal texture and SyphonMetalServer.

Spout

Windows-only. Current example bridges wgpu through CPU BGRA staging into a Direct3D 11 shared texture.

Status & validation

Know what was actually tested before you build on it #

Junkpile separates “the source exists” from “this path was actually exercised.” Use these status levels to decide whether an example is a stable starting point, a platform-specific reference, or still research.

Evidence Meaning
Source present Project exists in the tree.
Static validation Source/config/metadata checks exist; often documented in VALIDATION.md.
Runtime tested A named platform/device path was actually exercised.
Cross-platform tested Behavior was verified across the targeted operating systems.
Unresolved Project remains useful research but should not be used as a stable baseline.
Current exceptionsExample 29 is absent/quarantined by later documentation. Example 40 remains unresolved. Syphon and Spout are platform-specific. NDI-enabled builds require external SDK/runtime support.
Repository catalog

Find the example closest to the problem you are solving #

Search by capability, technology, or project name. The goal is not to read the repository in order; it is to find the smallest working project that already handles part of your application. The catalog is generated from docs/examples.json, and historical repair copies can remain in the source tree without being treated as separate public examples.

Track
No projects match those filters.
Tauri v1 00Current

Tauri v1 p5.js Single Window

00-p5-tauri-single-template

A focused foundation for running a p5.js WebGL shader and its HTML controls inside one Tauri v1 WebView.

p5single-window
Project details

Summary: A focused foundation for running a p5.js WebGL shader and its HTML controls inside one Tauri v1 WebView.

Topology: single-window

Platforms: macOS · Windows · Linux

Development
cd v1/00-p5-tauri-single-template
npm install
npm run dev
Tauri v1 01Current

Tauri v1 p5.js WebSocket

01-p5-tauri-ws-template

A focused two-window foundation for controlling a p5.js WebGL shader from a separate Tauri v1 WebView through an embedded Rust WebSocket relay.

p5two-window
Project details

Summary: A focused two-window foundation for controlling a p5.js WebGL shader from a separate Tauri v1 WebView through an embedded Rust WebSocket relay.

Topology: two-window

Platforms: macOS · Windows · Linux

Development
cd v1/01-p5-tauri-ws-template
npm install
npm run dev
Tauri v1 02Current

Tauri v1 Raw WebGL Single Window

02-webgl-tauri-v1-single-template

A focused foundation for running a GLSL ES 1.00 shader through raw WebGL inside one Tauri v1 WebView.

webglsingle-window
Project details

Summary: A focused foundation for running a GLSL ES 1.00 shader through raw WebGL inside one Tauri v1 WebView.

Topology: single-window

Platforms: macOS · Windows · Linux

Development
cd v1/02-webgl-tauri-v1-single-template
npm install
npm run dev
Tauri v1 03Current

Tauri v1 Raw WebGL WebSocket

03-webgl-tauri-v1-ws-template

A focused two-window foundation for controlling a raw WebGL 1 shader from a separate Tauri v1 WebView through an embedded Rust WebSocket relay.

webgltwo-window
Project details

Summary: A focused two-window foundation for controlling a raw WebGL 1 shader from a separate Tauri v1 WebView through an embedded Rust WebSocket relay.

Topology: two-window

Platforms: macOS · Windows · Linux

Development
cd v1/03-webgl-tauri-v1-ws-template
npm install
npm run dev
Tauri v1 04Current

Tauri v1 External GLSL Single Window

04-glsl-tauri-v1-single-template

A focused raw-WebGL example where the fragment shader is stored as a real external project file and can be replaced at runtime without rebuilding the Tauri application.

glslsingle-window
Project details

Summary: A focused raw-WebGL example where the fragment shader is stored as a real external project file and can be replaced at runtime without rebuilding the Tauri application.

Topology: single-window

Platforms: macOS · Windows · Linux

Development
cd v1/04-glsl-tauri-v1-single-template
npm install
npm run dev
Tauri v1 05Current

Tauri v1 External GLSL WebSocket

05-glsl-tauri-v1-ws-template

A two-window raw-WebGL example where the fragment shader is stored as an external project file, selected from the controls window, sent through an embedded Rust WebSocket relay, and compiled in a separate output WebView.

glsltwo-window
Project details

Summary: A two-window raw-WebGL example where the fragment shader is stored as an external project file, selected from the controls window, sent through an embedded Rust WebSocket relay, and compiled in a separate output WebView.

Topology: two-window

Platforms: macOS · Windows · Linux

Development
cd v1/05-glsl-tauri-v1-ws-template
npm install
npm run dev
Tauri v1 06Current

Tauri v1 Webcam Texture Single Window

06-webcam-tauri-v1-single-template

A focused foundation for capturing a webcam inside a Tauri v1 WebView and uploading each decoded frame into a raw WebGL texture.

camerasingle-window
Project details

Summary: A focused foundation for capturing a webcam inside a Tauri v1 WebView and uploading each decoded frame into a raw WebGL texture.

Topology: single-window

Platforms: macOS · Windows · Linux

Development
cd v1/06-webcam-tauri-v1-single-template
npm install
npm run dev
Tauri v1 07Current

Tauri v1 Webcam WebSocket

07-webcam-tauri-v1-ws-template

A two-window Tauri v1 example that keeps HTML controls separate from live camera capture and raw WebGL rendering.

cameratwo-window
Project details

Summary: A two-window Tauri v1 example that keeps HTML controls separate from live camera capture and raw WebGL rendering.

Topology: two-window

Platforms: macOS · Windows · Linux

Development
cd v1/07-webcam-tauri-v1-ws-template
npm install
npm run dev
Tauri v1 08Current

Tauri v1 Feedback Single Window

08-feedback-tauri-v1-single-template

A focused foundation for persistent GPU feedback inside one Tauri v1 WebView. A webcam or generated source is injected into a pair of alternating WebGL framebuffer textures, allowing each frame to read and transform the previous one.

feedbacksingle-window
Project details

Summary: A focused foundation for persistent GPU feedback inside one Tauri v1 WebView. A webcam or generated source is injected into a pair of alternating WebGL framebuffer textures, allowing each frame to read and transform the previous one.

Topology: single-window

Platforms: macOS · Windows · Linux

Development
cd v1/08-feedback-tauri-v1-single-template
npm install
npm run dev
Tauri v1 09Current

Tauri v1 Feedback WebSocket

09-feedback-tauri-v1-ws-template

A modernized two-window Tauri v1 example demonstrating webcam-driven raw WebGL feedback over an embedded Rust WebSocket relay.

feedbacktwo-window
Project details

Summary: A modernized two-window Tauri v1 example demonstrating webcam-driven raw WebGL feedback over an embedded Rust WebSocket relay.

Topology: two-window

Platforms: macOS · Windows · Linux

Development
cd v1/09-feedback-tauri-v1-ws-template
npm install
npm run dev
Tauri v1 10Current

Tauri v1 MIDI Input

10-p5-tauri-midi-template

A modernized Junkpile foundation for receiving native MIDI through Rust and using it to control a p5.js WebGL shader inside one Tauri v1 window.

midisingle-window
Project details

Summary: A modernized Junkpile foundation for receiving native MIDI through Rust and using it to control a p5.js WebGL shader inside one Tauri v1 window.

Topology: single-window

Platforms: macOS · Windows · Linux

Development
cd v1/10-p5-tauri-midi-template
npm install
npm run dev
Tauri v1 11Current

Tauri v1 OSC Input

11-p5-tauri-osc-template

A modernized Junkpile essential demonstrating how a Tauri v1 Rust backend can receive Open Sound Control messages over UDP and route them into a p5.js WebGL shader instrument.

oscsingle-window
Project details

Summary: A modernized Junkpile essential demonstrating how a Tauri v1 Rust backend can receive Open Sound Control messages over UDP and route them into a p5.js WebGL shader instrument.

Topology: single-window

Platforms: macOS · Windows · Linux

Development
cd v1/11-p5-tauri-osc-template
npm install
npm run dev
Tauri v1 12Current

Tauri v1 Video Texture Player

12-tauri-v1-video-texture-player

A standalone Tauri v1 application that loads a local video file, uploads each decoded frame to a WebGL texture, processes it with GLSL ES, and displays the result in real time.

videosingle-window
Project details

Summary: A standalone Tauri v1 application that loads a local video file, uploads each decoded frame to a WebGL texture, processes it with GLSL ES, and displays the result in real time.

Topology: single-window

Platforms: macOS · Windows · Linux

Development
cd v1/12-tauri-v1-video-texture-player
npm install
npm run dev
Tauri v1 13Current

Tauri v1 Audio-Reactive FFT

13-tauri-v1-audio-reactive-fft

A focused Tauri v1 essential showing how live microphone audio can drive raw WebGL graphics without a native Rust audio dependency.

audiosingle-window
Project details

Summary: A focused Tauri v1 essential showing how live microphone audio can drive raw WebGL graphics without a native Rust audio dependency.

Topology: single-window

Platforms: macOS · Windows · Linux

Development
cd v1/13-tauri-v1-audio-reactive-fft
npm install
npm run dev
Tauri v1 14Current

Tauri v1 Canvas Recorder

14-tauri-v1-canvas-recorder

A standalone Tauri v1 example that records a live WebGL canvas with the browser MediaRecorder pipeline and saves the resulting video through Tauri's native file dialog.

recordingsingle-window
Project details

Summary: A standalone Tauri v1 example that records a live WebGL canvas with the browser MediaRecorder pipeline and saves the resulting video through Tauri's native file dialog.

Topology: single-window

Platforms: macOS · Windows · Linux

Development
cd v1/14-tauri-v1-canvas-recorder
npm install
npm run dev
Tauri v1 15Current

Tauri v1 Multipass Compositor

15-tauri-v1-multipass-compositor

A standalone Tauri v1 + raw WebGL 1 example demonstrating a reusable multipass post-processing architecture.

compositingsingle-window
Project details

Summary: A standalone Tauri v1 + raw WebGL 1 example demonstrating a reusable multipass post-processing architecture.

Topology: single-window

Platforms: macOS · Windows · Linux

Development
cd v1/15-tauri-v1-multipass-compositor
npm install
npm run dev
Tauri v1 16Current

Tauri v1 Image Texture Processor

16-tauri-v1-image-texture-processor

A standalone Tauri v1 + raw WebGL 1 example for loading a still image into a GPU texture, processing it in a fragment shader, comparing the original and processed versions, and exporting the result through a native save dialog.

imagesingle-window
Project details

Summary: A standalone Tauri v1 + raw WebGL 1 example for loading a still image into a GPU texture, processing it in a fragment shader, comparing the original and processed versions, and exporting the result through a native save dialog.

Topology: single-window

Platforms: macOS · Windows · Linux

Development
cd v1/16-tauri-v1-image-texture-processor
npm install
npm run dev
Tauri v1 17Current

Tauri v1 GLSL Shader Playground

17-tauri-v1-glsl-shader-playground

A standalone Tauri v1 + raw WebGL 1 example for editing complete fragment shaders, compiling them live, inspecting diagnostics, controlling shared uniforms, saving shader files, and exporting PNG snapshots.

glslsingle-window
Project details

Summary: A standalone Tauri v1 + raw WebGL 1 example for editing complete fragment shaders, compiling them live, inspecting diagnostics, controlling shared uniforms, saving shader files, and exporting PNG snapshots.

Topology: single-window

Platforms: macOS · Windows · Linux

Development
cd v1/17-tauri-v1-glsl-shader-playground
npm install
npm run dev
Tauri v1 18Current

Tauri v1 Texture Mixer

18-tauri-v1-texture-mixer

A standalone Tauri v1 + raw WebGL example for compositing two independent image or video sources in one fragment-shader pass.

compositingsingle-window
Project details

Summary: A standalone Tauri v1 + raw WebGL example for compositing two independent image or video sources in one fragment-shader pass.

Topology: single-window

Platforms: macOS · Windows · Linux

Development
cd v1/18-tauri-v1-texture-mixer
npm install
npm run dev
Tauri v1 19Current

Tauri v1 Webcam Compositor

19-tauri-v1-webcam-compositor

A standalone Tauri v1 + raw WebGL 1 example for combining a live webcam with keyed background replacement, graphics overlays, recording, and native file export.

camerasingle-window
Project details

Summary: A standalone Tauri v1 + raw WebGL 1 example for combining a live webcam with keyed background replacement, graphics overlays, recording, and native file export.

Topology: single-window

Platforms: macOS · Windows · Linux

Development
cd v1/19-tauri-v1-webcam-compositor
npm install
npm run dev
Tauri v1 20Current

Tauri v1 Live Video Switcher

20-tauri-v1-live-video-switcher-speed

A standalone Tauri v1 + raw WebGL example that turns four reusable media slots into a compact software video switcher. Each source can be a generated test pattern, still image, looping video, or the shared live camera. Preview and Program buses feed GPU transitions, a lower-third/logo overlay, MediaRecorder capture, and PNG export.

videosingle-window
Project details

Summary: A standalone Tauri v1 + raw WebGL example that turns four reusable media slots into a compact software video switcher. Each source can be a generated test pattern, still image, looping video, or the shared live camera. Preview and Program buses feed GPU transitions, a lower-third/logo overlay, MediaRecorder capture, and PNG export.

Topology: single-window

Platforms: macOS · Windows · Linux

Development
cd v1/20-tauri-v1-live-video-switcher-speed
npm install
npm run dev
Tauri v1 21Current

Tauri v1 Projection Mapper

21-tauri-v1-projection-mapper

A standalone two-window projection-mapping foundation built with Tauri v1 and raw WebGL 1.

projectiontwo-window
Project details

Summary: A standalone two-window projection-mapping foundation built with Tauri v1 and raw WebGL 1.

Topology: two-window

Platforms: macOS · Windows · Linux

Development
cd v1/21-tauri-v1-projection-mapper
npm install
npm run dev
Tauri v1 22Current

Tauri v1 Image Sequence Player

22-tauri-v1-image-sequence-player

A two-window Tauri v1 example for playing numbered still-image sequences as time-based media. The controls WebView handles folder/file selection and transport; the output WebView owns WebGL rendering, decoding, caching, display placement, and PNG capture.

imagetwo-window
Project details

Summary: A two-window Tauri v1 example for playing numbered still-image sequences as time-based media. The controls WebView handles folder/file selection and transport; the output WebView owns WebGL rendering, decoding, caching, display placement, and PNG capture.

Topology: two-window

Platforms: macOS · Windows · Linux

Development
cd v1/22-tauri-v1-image-sequence-player
npm install
npm run dev
Tauri v1 23Current

Tauri v1 Audio File FFT Visualizer

23-tauri-v1-audio-file-fft-visualizer

A standalone Tauri v1 example that turns a local audio file into a GPU-driven visual performance and recording source.

audiosingle-window
Project details

Summary: A standalone Tauri v1 example that turns a local audio file into a GPU-driven visual performance and recording source.

Topology: single-window

Platforms: macOS · Windows · Linux

Development
cd v1/23-tauri-v1-audio-file-fft-visualizer
npm install
npm run dev
Tauri v1 24Current

Tauri v1 Keyframe Automation

24-tauri-v1-keyframe-automation

A standalone Tauri v1/WebGL example for animating visual parameters on an editable timeline.

automationsingle-window
Project details

Summary: A standalone Tauri v1/WebGL example for animating visual parameters on an editable timeline.

Topology: single-window

Platforms: macOS · Windows · Linux

Development
cd v1/24-tauri-v1-keyframe-automation
npm install
npm run dev
Tauri v1 25Current

Ultra-Resolution Export

25-wgpu-ultra-resolution-export

A standalone Tauri 2 + wgpu example for rendering resolution-independent GPU artwork and exporting it as tiled 4K, 6K, 8K, or square PNG files.

exportnative-window
Project details

Summary: A standalone Tauri 2 + wgpu example for rendering resolution-independent GPU artwork and exporting it as tiled 4K, 6K, 8K, or square PNG files.

Topology: native-window

Platforms: macOS · Windows · Linux

Development
cd v1/25-wgpu-ultra-resolution-export
npm install
npm run dev
Tauri v2 00Current

Tauri v2 p5.js Single Window

00-p5-tauri-v2-single-template

A focused foundation for running a p5.js WebGL shader and its HTML controls inside one Tauri v2 WebView.

p5single-window
Project details

Summary: A focused foundation for running a p5.js WebGL shader and its HTML controls inside one Tauri v2 WebView.

Topology: single-window

Platforms: macOS · Windows · Linux

Development
cd v2/00-p5-tauri-v2-single-template
npm install
npm run dev
Tauri v2 01Current

Tauri v2 p5.js WebSocket

01-p5-tauri-v2-ws-template

A focused two-window foundation for controlling a p5.js WebGL shader from a separate Tauri v2 WebView through an embedded Rust WebSocket relay.

p5two-window
Project details

Summary: A focused two-window foundation for controlling a p5.js WebGL shader from a separate Tauri v2 WebView through an embedded Rust WebSocket relay.

Topology: two-window

Platforms: macOS · Windows · Linux

Development
cd v2/01-p5-tauri-v2-ws-template
npm install
npm run dev
Tauri v2 02Current

Raw WebGL Single Window

02-webgl-tauri-v2-single-template

This example exposes the complete browser-side WebGL rendering path without p5.js or another graphics framework. It shows how to:

webglsingle-window
Project details

Summary: This example exposes the complete browser-side WebGL rendering path without p5.js or another graphics framework. It shows how to:

Topology: single-window

Platforms: macOS · Windows · Linux

Development
cd v2/02-webgl-tauri-v2-single-template
npm install
npm run dev
Tauri v2 03Current

Raw WebGL WebSocket Windows

03-webgl-tauri-v2-ws-template

This example separates a raw WebGL renderer from its user interface while keeping the complete graphics pipeline visible. It shows how to:

webgltwo-window
Project details

Summary: This example separates a raw WebGL renderer from its user interface while keeping the complete graphics pipeline visible. It shows how to:

Topology: two-window

Platforms: macOS · Windows · Linux

Development
cd v2/03-webgl-tauri-v2-ws-template
npm install
npm run dev
Tauri v2 04Current

External GLSL Single Window

04-glsl-tauri-v2-single-template

This example extends the explicit raw WebGL pipeline from Example 02 by moving the fragment shader into a real external file. It demonstrates how to:

glslsingle-window
Project details

Summary: This example extends the explicit raw WebGL pipeline from Example 02 by moving the fragment shader into a real external file. It demonstrates how to:

Topology: single-window

Platforms: macOS · Windows · Linux

Development
cd v2/04-glsl-tauri-v2-single-template
npm install
npm run dev
Tauri v2 05Current

External GLSL WebSocket Windows

05-glsl-tauri-v2-ws-template

This example adds external fragment-shader transport to the two-window raw WebGL architecture. It shows how to:

glsltwo-window
Project details

Summary: This example adds external fragment-shader transport to the two-window raw WebGL architecture. It shows how to:

Topology: two-window

Platforms: macOS · Windows · Linux

Development
cd v2/05-glsl-tauri-v2-ws-template
npm install
npm run dev
Tauri v2 06Current

Webcam Texture Single Window

06-webcam-tauri-v2-single-template

Example 06 connects a browser-managed camera stream to an explicit raw WebGL pipeline. It demonstrates how to:

camerasingle-window
Project details

Summary: Example 06 connects a browser-managed camera stream to an explicit raw WebGL pipeline. It demonstrates how to:

Topology: single-window

Platforms: macOS · Windows · Linux

Development
cd v2/06-webcam-tauri-v2-single-template
npm install
npm run dev
Tauri v2 07Current

Webcam Texture WebSocket Windows

07-webcam-tauri-v2-ws-template

Example 07 separates camera control from camera ownership.

cameratwo-window
Project details

Summary: Example 07 separates camera control from camera ownership.

Topology: two-window

Platforms: macOS · Windows · Linux

Development
cd v2/07-webcam-tauri-v2-ws-template
npm install
npm run dev
Tauri v2 08Current

Feedback Lab Single Window

08-feedback-tauri-v2-single-template

Example 08 is a focused study of persistent GPU feedback driven by a live camera texture. It demonstrates how to:

feedbacksingle-window
Project details

Summary: Example 08 is a focused study of persistent GPU feedback driven by a live camera texture. It demonstrates how to:

Topology: single-window

Platforms: macOS · Windows · Linux

Development
cd v2/08-feedback-tauri-v2-single-template
npm install
npm run dev
Tauri v2 09Current

Feedback Lab WebSocket Windows

09-feedback-tauri-v2-ws-template

Example 09 combines the persistent GPU-feedback lesson from Example 08 with a two-window control architecture. It demonstrates how to:

feedbacktwo-window
Project details

Summary: Example 09 combines the persistent GPU-feedback lesson from Example 08 with a two-window control architecture. It demonstrates how to:

Topology: two-window

Platforms: macOS · Windows · Linux

Development
cd v2/09-feedback-tauri-v2-ws-template
npm install
npm run dev
Tauri v2 10Current

Tauri v2 MIDI Input

10-tauri-v2-midi-input

A standalone Tauri v2 example showing how native MIDI input can be received in Rust with midir, emitted into a vanilla JavaScript frontend, mapped with MIDI learn, and used to control a raw WebGL visual.

midisingle-window
Project details

Summary: A standalone Tauri v2 example showing how native MIDI input can be received in Rust with midir, emitted into a vanilla JavaScript frontend, mapped with MIDI learn, and used to control a raw WebGL visual.

Topology: single-window

Platforms: macOS · Windows · Linux

Development
cd v2/10-tauri-v2-midi-input
npm install
npm run dev
Tauri v2 11Current

Tauri v2 OSC Input

11-tauri-v2-osc-input

A standalone Tauri v2 example showing how Rust can own an OSC-over-UDP listener, decode messages and bundles with rosc, emit structured events into JavaScript, and route OSC addresses into raw WebGL parameters.

oscsingle-window
Project details

Summary: A standalone Tauri v2 example showing how Rust can own an OSC-over-UDP listener, decode messages and bundles with rosc, emit structured events into JavaScript, and route OSC addresses into raw WebGL parameters.

Topology: single-window

Platforms: macOS · Windows · Linux

Development
cd v2/11-tauri-v2-osc-input
npm install
npm run dev
Tauri v2 12Current

Tauri v2 Video Texture Player

12-tauri-v2-video-texture-player

A standalone Tauri v2 example for loading local video, decoding it in the WebView, uploading newly presented frames into a WebGL texture, applying GLSL processing, retaining temporal feedback, and exporting PNG snapshots.

videosingle-window
Project details

Summary: A standalone Tauri v2 example for loading local video, decoding it in the WebView, uploading newly presented frames into a WebGL texture, applying GLSL processing, retaining temporal feedback, and exporting PNG snapshots.

Topology: single-window

Platforms: macOS · Windows · Linux

Development
cd v2/12-tauri-v2-video-texture-player
npm install
npm run dev
Tauri v2 13Current

Tauri v2 Audio-Reactive FFT

13-tauri-v2-audio-reactive-fft

A microphone-driven Web Audio and raw WebGL example for the Junkpile Tauri v2 essentials collection.

audiosingle-window
Project details

Summary: A microphone-driven Web Audio and raw WebGL example for the Junkpile Tauri v2 essentials collection.

Topology: single-window

Platforms: macOS · Windows · Linux

Development
cd v2/13-tauri-v2-audio-reactive-fft
npm install
npm run dev
Tauri v2 14Current

Tauri v2 Canvas Recorder

14-tauri-v2-canvas-recorder

A standalone Tauri v2 example that records a live WebGL canvas through canvas.captureStream() and MediaRecorder, optionally adds microphone audio, and saves the completed video with a native desktop dialog.

recordingsingle-window
Project details

Summary: A standalone Tauri v2 example that records a live WebGL canvas through canvas.captureStream() and MediaRecorder, optionally adds microphone audio, and saves the completed video with a native desktop dialog.

Topology: single-window

Platforms: macOS · Windows · Linux

Development
cd v2/14-tauri-v2-canvas-recorder
npm install
npm run dev
Tauri v2 15Current

Tauri v2 Multipass Compositor

15-tauri-v2-multipass-compositor

A standalone Tauri v2 + raw WebGL 1 example demonstrating a reusable multipass post-processing architecture with reorderable shader passes, reusable ping-pong work buffers, persistent previous-frame history, native PNG saving, and fullscreen preview.

compositingsingle-window
Project details

Summary: A standalone Tauri v2 + raw WebGL 1 example demonstrating a reusable multipass post-processing architecture with reorderable shader passes, reusable ping-pong work buffers, persistent previous-frame history, native PNG saving, and fullscreen preview.

Topology: single-window

Platforms: macOS · Windows · Linux

Development
cd v2/15-tauri-v2-multipass-compositor
npm install
npm run dev
Tauri v2 16Current

Tauri v2 Image Texture Processor

16-tauri-v2-image-texture-processor

A standalone Tauri v2 + raw WebGL 1 example for loading still images, processing them in a fragment shader, comparing original and processed results, and exporting full-resolution PNG or JPEG files.

imagesingle-window
Project details

Summary: A standalone Tauri v2 + raw WebGL 1 example for loading still images, processing them in a fragment shader, comparing original and processed results, and exporting full-resolution PNG or JPEG files.

Topology: single-window

Platforms: macOS · Windows · Linux

Development
cd v2/16-tauri-v2-image-texture-processor
npm install
npm run dev
Tauri v2 17Current

Tauri v2 GLSL Shader Playground

17-tauri-v2-glsl-shader-playground

A standalone Tauri v2 + raw WebGL 1 example for editing complete fragment shaders, compiling them live, inspecting a terminal-style diagnostic stream, controlling shared uniforms, loading/saving shader files through native dialogs, and exporting PNG snapshots.

glslsingle-window
Project details

Summary: A standalone Tauri v2 + raw WebGL 1 example for editing complete fragment shaders, compiling them live, inspecting a terminal-style diagnostic stream, controlling shared uniforms, loading/saving shader files through native dialogs, and exporting PNG snapshots.

Topology: single-window

Platforms: macOS · Windows · Linux

Development
cd v2/17-tauri-v2-glsl-shader-playground
npm install
npm run dev
Tauri v2 18Current

Tauri v2 Texture Mixer

18-tauri-v2-texture-mixer

A standalone Tauri v2 + raw WebGL example for compositing two independent image or video sources in one fragment-shader pass.

compositingsingle-window
Project details

Summary: A standalone Tauri v2 + raw WebGL example for compositing two independent image or video sources in one fragment-shader pass.

Topology: single-window

Platforms: macOS · Windows · Linux

Development
cd v2/18-tauri-v2-texture-mixer
npm install
npm run dev
Tauri v2 19Current

Tauri v2 Webcam Compositor

19-tauri-v2-webcam-compositor

A standalone Tauri v2 + raw WebGL 1 example for combining a live webcam with background replacement, key mattes, graphics overlays, recording, and native export.

camerasingle-window
Project details

Summary: A standalone Tauri v2 + raw WebGL 1 example for combining a live webcam with background replacement, key mattes, graphics overlays, recording, and native export.

Topology: single-window

Platforms: macOS · Windows · Linux

Development
cd v2/19-tauri-v2-webcam-compositor
npm install
npm run dev
Tauri v2 20Current

Tauri v2 Live Video Switcher

20-tauri-v2-live-video-switcher

A standalone Tauri v2 + raw WebGL example that turns four reusable media slots into a compact software video switcher. Each source can be an animated pattern, still image, looping video, or shared live camera. Independent Preview and Program buses feed GPU transitions, a lower-third/logo overlay, MediaRecorder capture, native saving, a…

videosingle-window
Project details

Summary: A standalone Tauri v2 + raw WebGL example that turns four reusable media slots into a compact software video switcher. Each source can be an animated pattern, still image, looping video, or shared live camera. Independent Preview and Program buses feed GPU transitions, a lower-third/logo overlay, MediaRecorder capture, native saving, a…

Topology: single-window

Platforms: macOS · Windows · Linux

Development
cd v2/20-tauri-v2-live-video-switcher
npm install
npm run dev
Tauri v2 21Current

Tauri v2 Projection Mapper

21-tauri-v2-projection-mapper

A standalone two-window projection-mapping foundation built with Tauri v2 and raw WebGL 1.

projectiontwo-window
Project details

Summary: A standalone two-window projection-mapping foundation built with Tauri v2 and raw WebGL 1.

Topology: two-window

Platforms: macOS · Windows · Linux

Development
cd v2/21-tauri-v2-projection-mapper
npm install
npm run dev
Tauri v2 22Current

Tauri v2 Image Sequence Player

22-tauri-v2-image-sequence-player

A two-window Tauri v2 example for playing numbered still-image sequences as time-based media. The controls WebView handles native folder/file selection and transport. The output WebView owns the decode cache, playback clock, WebGL renderer, monitor placement, and PNG capture.

imagetwo-window
Project details

Summary: A two-window Tauri v2 example for playing numbered still-image sequences as time-based media. The controls WebView handles native folder/file selection and transport. The output WebView owns the decode cache, playback clock, WebGL renderer, monitor placement, and PNG capture.

Topology: two-window

Platforms: macOS · Windows · Linux

Development
cd v2/22-tauri-v2-image-sequence-player
npm install
npm run dev
Tauri v2 23Current

Tauri v2 Audio File FFT Visualizer

23-tauri-v2-audio-file-fft-visualizer

A standalone Tauri v2 example that analyzes a local audio file with the Web Audio API, uploads the full FFT and waveform to WebGL textures, renders audio-reactive GLSL visuals, and records the result with the source audio included.

audiosingle-window
Project details

Summary: A standalone Tauri v2 example that analyzes a local audio file with the Web Audio API, uploads the full FFT and waveform to WebGL textures, renders audio-reactive GLSL visuals, and records the result with the source audio included.

Topology: single-window

Platforms: macOS · Windows · Linux

Development
cd v2/23-tauri-v2-audio-file-fft-visualizer
npm install
npm run dev
Tauri v2 24Current

Tauri v2 Keyframe Automation

24-tauri-v2-keyframe-automation

A standalone Tauri v2/WebGL example for animating visual parameters on an editable timeline, recording live changes, and saving complete automation projects.

automationsingle-window
Project details

Summary: A standalone Tauri v2/WebGL example for animating visual parameters on an editable timeline, recording live changes, and saving complete automation projects.

Topology: single-window

Platforms: macOS · Windows · Linux

Development
cd v2/24-tauri-v2-keyframe-automation
npm install
npm run dev
Tauri v2 25Current

Tauri v2 Multi-Display Output Manager

25-tauri-v2-multi-display-output-manager

The final Tauri v2 Essential demonstrates how one controls WebView can manage three independent native WebGL output windows at the same time.

displaysingle-window
Project details

Summary: The final Tauri v2 Essential demonstrates how one controls WebView can manage three independent native WebGL output windows at the same time.

Topology: single-window

Platforms: macOS · Windows · Linux

Development
cd v2/25-tauri-v2-multi-display-output-manager
npm install
npm run dev
Native wgpu 00Current

Surface Probe

00-wgpu-surface-probe

The smallest native-rendering example in Junkpile.

foundationnative-window
Project details

Summary: The smallest native-rendering example in Junkpile.

Topology: native-window

Platforms: macOS · Windows · Linux

Development
cd wgpu/00-wgpu-surface-probe
npm install
npm run dev
Native wgpu 01Current

Resize + Fullscreen

01-wgpu-resize-fullscreen

Adds the complete surface lifecycle to the raw Tauri window.

foundationnative-window
Project details

Summary: Adds the complete surface lifecycle to the raw Tauri window.

Topology: native-window

Platforms: macOS · Windows · Linux

Development
cd wgpu/01-wgpu-resize-fullscreen
npm install
npm run dev
Native wgpu 02Current

WGSL Shader

02-wgpu-wgsl-shader

The first complete procedural native visual.

foundationnative-window
Project details

Summary: The first complete procedural native visual.

Topology: native-window

Platforms: macOS · Windows · Linux

Development
cd wgpu/02-wgpu-wgsl-shader
npm install
npm run dev
Native wgpu 03Current

Tauri Controls

03-wgpu-tauri-controls

The reusable native-wgpu application pattern for Junkpile.

foundationhybrid-controls-native-renderer
Project details

Summary: The reusable native-wgpu application pattern for Junkpile.

Topology: hybrid-controls-native-renderer

Platforms: macOS · Windows · Linux

Development
cd wgpu/03-wgpu-tauri-controls
npm install
npm run dev
Native wgpu 04Current

Image Texture

04-wgpu-image-texture

A native Tauri 2 + wgpu example showing the complete path from encoded image bytes to a sampled GPU texture.

imagenative-window
Project details

Summary: A native Tauri 2 + wgpu example showing the complete path from encoded image bytes to a sampled GPU texture.

Topology: native-window

Platforms: macOS · Windows · Linux

Development
cd wgpu/04-wgpu-image-texture
npm install
npm run dev
Native wgpu 05Current

Ping-Pong Feedback

05-wgpu-ping-pong-feedback

Native HDR feedback using two Rgba16Float render textures. One texture is sampled while the other is written, then their roles swap for the next frame.

feedback-computenative-window
Project details

Summary: Native HDR feedback using two Rgba16Float render textures. One texture is sampled while the other is written, then their roles swap for the next frame.

Topology: native-window

Platforms: macOS · Windows · Linux

Development
cd wgpu/05-wgpu-ping-pong-feedback
npm install
npm run dev
Native wgpu 06Current

Multipass Render Graph

06-wgpu-multipass-render-graph

A readable four-pass native GPU pipeline:

foundationnative-window
Project details

Summary: A readable four-pass native GPU pipeline:

Topology: native-window

Platforms: macOS · Windows · Linux

Development
cd wgpu/06-wgpu-multipass-render-graph
npm install
npm run dev
Native wgpu 07Current

High Resolution Lab

07-wgpu-high-resolution-lab

This example decouples internal render definition from the size of the visible window.

foundationnative-window
Project details

Summary: This example decouples internal render definition from the size of the visible window.

Topology: native-window

Platforms: macOS · Windows · Linux

Development
cd wgpu/07-wgpu-high-resolution-lab
npm install
npm run dev
Native wgpu 08Current

Backend Lab

08-wgpu-backend-lab

A standalone Tauri 2 + Rust/wgpu example for inspecting which native GPU backends and adapters are available, then running the same WGSL workload through the selected backend.

foundationnative-window
Project details

Summary: A standalone Tauri 2 + Rust/wgpu example for inspecting which native GPU backends and adapters are available, then running the same WGSL workload through the selected backend.

Topology: native-window

Platforms: macOS · Windows · Linux

Development
cd wgpu/08-wgpu-backend-lab
npm install
npm run dev
Native wgpu 09Current

Compute Particles · Additive Blend

09-wgpu-compute-particles-additive-blend

A standalone Tauri 2 + Rust/wgpu example for inspecting which native GPU backends and adapters are available, then running the same WGSL workload through the selected backend.

computenative-window
Project details

Summary: A standalone Tauri 2 + Rust/wgpu example for inspecting which native GPU backends and adapters are available, then running the same WGSL workload through the selected backend.

Topology: native-window

Platforms: macOS · Windows · Linux

Development
cd wgpu/09-wgpu-compute-particles-additive-blend
npm install
npm run dev
Native wgpu 10Current

3D Particle Volume

10-wgpu-3d-particle-volume

A standalone Tauri 2 + Rust/wgpu example that extends the compute-particle system into a true XYZ simulation and perspective renderer.

computenative-window
Project details

Summary: A standalone Tauri 2 + Rust/wgpu example that extends the compute-particle system into a true XYZ simulation and perspective renderer.

Topology: native-window

Platforms: macOS · Windows · Linux

Development
cd wgpu/10-wgpu-3d-particle-volume
npm install
npm run dev
Native wgpu 11Current

Volumetric Raymarcher

11-wgpu-volumetric-raymarcher

A standalone Tauri 2 + Rust + wgpu 29 example that renders procedural three-dimensional signed-distance fields directly to a native Metal, Vulkan, or DX12 surface.

3dnative-window
Project details

Summary: A standalone Tauri 2 + Rust + wgpu 29 example that renders procedural three-dimensional signed-distance fields directly to a native Metal, Vulkan, or DX12 surface.

Topology: native-window

Platforms: macOS · Windows · Linux

Development
cd wgpu/11-wgpu-volumetric-raymarcher
npm install
npm run dev
Native wgpu 12Current

Compute Fluid Feedback

12-wgpu-compute-fluid-feedback

A standalone Tauri 2 + Rust + wgpu 29 example that runs a two-dimensional incompressible-fluid approximation entirely on the GPU.

feedback-computenative-window
Project details

Summary: A standalone Tauri 2 + Rust + wgpu 29 example that runs a two-dimensional incompressible-fluid approximation entirely on the GPU.

Topology: native-window

Platforms: macOS · Windows · Linux

Development
cd wgpu/12-wgpu-compute-fluid-feedback
npm install
npm run dev
Native wgpu 13Current

Voxel Feedback Volume

13-wgpu-voxel-feedback-volume

A standalone Tauri 2 + Rust/wgpu example that evolves a persistent three-dimensional RGBA16F field with a WGSL compute shader, then renders it with a volume raymarcher.

feedback-computenative-window
Project details

Summary: A standalone Tauri 2 + Rust/wgpu example that evolves a persistent three-dimensional RGBA16F field with a WGSL compute shader, then renders it with a volume raymarcher.

Topology: native-window

Platforms: macOS · Windows · Linux

Development
cd wgpu/13-wgpu-voxel-feedback-volume
npm install
npm run dev
Native wgpu 14Current

Native Webcam Texture · Direct AVFoundation revision

14-wgpu-native-webcam-texture-avfoundation-macos

This revision replaces the slow macOS Nokhwa/YUYV path with a direct AVFoundation capture backend.

camerahybrid-controls-native-renderer
Project details

Summary: This revision replaces the slow macOS Nokhwa/YUYV path with a direct AVFoundation capture backend.

Topology: hybrid-controls-native-renderer

Platforms: macOS

Development
cd wgpu/14-wgpu-native-webcam-texture-avfoundation-macos
npm install
npm run dev
Native wgpu 15Current

Native Video Decoder

15-wgpu-native-video-decoder-effect-ui

A standalone Tauri 2 + Rust + wgpu example that decodes local video files through FFmpeg, publishes only the newest decoded BGRA frame, and uploads that frame to a native Metal / Vulkan / DX12 texture.

videohybrid-controls-native-renderer
Project details

Summary: A standalone Tauri 2 + Rust + wgpu example that decodes local video files through FFmpeg, publishes only the newest decoded BGRA frame, and uploads that frame to a native Metal / Vulkan / DX12 texture.

Topology: hybrid-controls-native-renderer

Platforms: macOS · Windows · Linux

Development
cd wgpu/15-wgpu-native-video-decoder-effect-ui
npm install
npm run dev
Native wgpu 16Current

Audio Reactive Spectrum

16-wgpu-audio-reactive-spectrum

A Tauri 2 + Rust + wgpu example that treats live audio as a structured native input source rather than a single volume value.

audiohybrid-controls-native-renderer
Project details

Summary: A Tauri 2 + Rust + wgpu example that treats live audio as a structured native input source rather than a single volume value.

Topology: hybrid-controls-native-renderer

Platforms: macOS · Windows · Linux

Development
cd wgpu/16-wgpu-audio-reactive-spectrum
npm install
npm run dev
Native wgpu 17Current

MIDI Parameter Registry

17-wgpu-midi-parameter-registry

A standalone Tauri 2 + Rust/wgpu example showing how native MIDI messages become reusable renderer parameters rather than hard-coded controller assignments.

midihybrid-controls-native-renderer
Project details

Summary: A standalone Tauri 2 + Rust/wgpu example showing how native MIDI messages become reusable renderer parameters rather than hard-coded controller assignments.

Topology: hybrid-controls-native-renderer

Platforms: macOS · Windows · Linux

Development
cd wgpu/17-wgpu-midi-parameter-registry
npm install
npm run dev
Native wgpu 18Current

OSC Network Control

18-wgpu-osc-network-control

A standalone Tauri 2 + Rust + wgpu 29 example that receives Open Sound Control messages over UDP and routes them through a reusable parameter registry before rendering on a native Metal, Vulkan, or DX12 surface.

oschybrid-controls-native-renderer
Project details

Summary: A standalone Tauri 2 + Rust + wgpu 29 example that receives Open Sound Control messages over UDP and routes them through a reusable parameter registry before rendering on a native Metal, Vulkan, or DX12 surface.

Topology: hybrid-controls-native-renderer

Platforms: macOS · Windows · Linux

Development
cd wgpu/18-wgpu-osc-network-control
npm install
npm run dev
Native wgpu 19Current

Gesture Field

19-wgpu-gesture-field

This revision contains the WGSL reserved-keyword correction. The controls window visibly shows BUILD 19.2 · WGSL KEYWORD FIX. If that marker is absent, an older project folder is running.

interactionhybrid-controls-native-renderer
Project details

Summary: This revision contains the WGSL reserved-keyword correction. The controls window visibly shows BUILD 19.2 · WGSL KEYWORD FIX. If that marker is absent, an older project folder is running.

Topology: hybrid-controls-native-renderer

Platforms: macOS · Windows · Linux

Development
cd wgpu/19-wgpu-gesture-field
npm install
npm run dev
Native wgpu 20Current

Multi-Input Compositor

20-wgpu-multi-input-compositor

A standalone Tauri 2 + Rust/wgpu convergence example that combines the input systems developed in examples 14–19 into one native render graph.

compositinghybrid-controls-native-renderer
Project details

Summary: A standalone Tauri 2 + Rust/wgpu convergence example that combines the input systems developed in examples 14–19 into one native render graph.

Topology: hybrid-controls-native-renderer

Platforms: macOS · Windows · Linux

Development
cd wgpu/20-wgpu-multi-input-compositor
npm install
npm run dev
Native wgpu 21Current

glTF Scene Loader

21-wgpu-gltf-scene-loader

A standalone Tauri 2 + wgpu 29 example for importing glTF 2.0 scenes into a native Metal, Vulkan, or DirectX 12 render surface.

3dhybrid-controls-native-renderer
Project details

Summary: A standalone Tauri 2 + wgpu 29 example for importing glTF 2.0 scenes into a native Metal, Vulkan, or DirectX 12 render surface.

Topology: hybrid-controls-native-renderer

Platforms: macOS · Windows · Linux

Development
cd wgpu/21-wgpu-gltf-scene-loader
npm install
npm run dev
Native wgpu 22Current

Skeletal Pose Lab

22-wgpu-skeletal-pose-lab

A standalone Tauri 2 + wgpu 29 example for loading, animating, inspecting, and manually posing skinned glTF/GLB characters on a native GPU surface.

3dhybrid-controls-native-renderer
Project details

Summary: A standalone Tauri 2 + wgpu 29 example for loading, animating, inspecting, and manually posing skinned glTF/GLB characters on a native GPU surface.

Topology: hybrid-controls-native-renderer

Platforms: macOS · Windows · Linux

Development
cd wgpu/22-wgpu-skeletal-pose-lab
npm install
npm run dev
Native wgpu 23Current

Morph Target Lab

23-wgpu-morph-target-lab

A two-window Tauri 2 + Rust + wgpu example demonstrating GPU morph-target animation with a fixed mesh topology.

3dhybrid-controls-native-renderer
Project details

Summary: A two-window Tauri 2 + Rust + wgpu example demonstrating GPU morph-target animation with a fixed mesh topology.

Topology: hybrid-controls-native-renderer

Platforms: macOS · Windows · Linux

Development
cd wgpu/23-wgpu-morph-target-lab
npm install
npm run dev
Native wgpu 24Current

Mesh Feedback Deformer

24-wgpu-mesh-feedback-deformer

A standalone Tauri 2 + wgpu example that treats mesh geometry as a persistent GPU feedback system.

feedback-computehybrid-controls-native-renderer
Project details

Summary: A standalone Tauri 2 + wgpu example that treats mesh geometry as a persistent GPU feedback system.

Topology: hybrid-controls-native-renderer

Platforms: macOS · Windows · Linux

Development
cd wgpu/24-wgpu-mesh-feedback-deformer
npm install
npm run dev
Native wgpu 25Current

Ultra-Resolution Export

25-wgpu-ultra-resolution-export

A standalone Tauri 2 + wgpu example for rendering resolution-independent GPU artwork and exporting it as tiled 4K, 6K, 8K, or square PNG files.

exportnative-window
Project details

Summary: A standalone Tauri 2 + wgpu example for rendering resolution-independent GPU artwork and exporting it as tiled 4K, 6K, 8K, or square PNG files.

Topology: native-window

Platforms: macOS · Windows · Linux

Development
cd wgpu/25-wgpu-ultra-resolution-export
npm install
npm run dev
Native wgpu 26Current

I/O Config Foundation

26-wgpu-io-config-foundation

A standalone Tauri 2 + native wgpu example that establishes the configuration layer for future Junkpile recording, streaming, NDI, Syphon, Spout, receiver, and routing examples.

io-foundationhybrid-controls-native-renderer
Project details

Summary: A standalone Tauri 2 + native wgpu example that establishes the configuration layer for future Junkpile recording, streaming, NDI, Syphon, Spout, receiver, and routing examples.

Topology: hybrid-controls-native-renderer

Platforms: macOS · Windows · Linux

Development
cd wgpu/26-wgpu-io-config-foundation
npm install
npm run dev
Native wgpu 27Current

Frame & Output Contract

27-wgpu-frame-output-contract

This native wgpu + Tauri 2 example establishes the shared frame and output-sink contract for the new Junkpile I/O series.

io-foundationhybrid-controls-native-renderer
Project details

Summary: This native wgpu + Tauri 2 example establishes the shared frame and output-sink contract for the new Junkpile I/O series.

Topology: hybrid-controls-native-renderer

Platforms: macOS · Windows · Linux

Development
cd wgpu/27-wgpu-frame-output-contract
npm install
npm run dev
Native wgpu 28Current

FFmpeg File Recording

28-wgpu-ffmpeg-record

This native wgpu + Tauri 2 example replaces Example 27's simulated CPU worker with a real GPU-to-CPU readback pipeline and FFmpeg file writer.

recordinghybrid-controls-native-renderer
Project details

Summary: This native wgpu + Tauri 2 example replaces Example 27's simulated CPU worker with a real GPU-to-CPU readback pipeline and FFmpeg file writer.

Topology: hybrid-controls-native-renderer

Platforms: macOS · Windows · Linux

Development
cd wgpu/28-wgpu-ffmpeg-record
npm install
npm run dev
Native wgpu 30Current

High-Resolution Recording

30-wgpu-high-resolution-record

A native wgpu + Tauri 2 teaching example for recording procedural GPU output at a resolution independent from the visible preview window.

recordinghybrid-controls-native-renderer
Project details

Summary: A native wgpu + Tauri 2 teaching example for recording procedural GPU output at a resolution independent from the visible preview window.

Topology: hybrid-controls-native-renderer

Platforms: macOS · Windows · Linux

Development
cd wgpu/30-wgpu-high-resolution-record
npm install
npm run dev
Native wgpu 31Current

I/O Profile Router

31-wgpu-io-profile-router

A native wgpu + Tauri 2 teaching example for describing render and file-output routes as validated, hot-reloadable JSON profiles.

io-foundationhybrid-controls-native-renderer
Project details

Summary: A native wgpu + Tauri 2 teaching example for describing render and file-output routes as validated, hot-reloadable JSON profiles.

Topology: hybrid-controls-native-renderer

Platforms: macOS · Windows · Linux

Development
cd wgpu/31-wgpu-io-profile-router
npm install
npm run dev
Native wgpu 32NDI SDK

NDI Sender

32-wgpu-ndi-sender

A focused native-wgpu example that ports ShadeCore's NDI output concept into the Junkpile renderer family.

ndihybrid-controls-native-renderer
Project details

Summary: A focused native-wgpu example that ports ShadeCore's NDI output concept into the Junkpile renderer family.

Topology: hybrid-controls-native-renderer

Platforms: macOS · Windows · Linux

Development
cd wgpu/32-wgpu-ndi-sender
npm install
npm run dev
Native wgpu 33Current

Preview Output Modes

33-wgpu-preview-output-modes

A focused native-wgpu example that ports ShadeCore's preview/presentation concepts into the Junkpile I/O track.

previewhybrid-controls-native-renderer
Project details

Summary: A focused native-wgpu example that ports ShadeCore's preview/presentation concepts into the Junkpile I/O track.

Topology: hybrid-controls-native-renderer

Platforms: macOS · Windows · Linux

Development
cd wgpu/33-wgpu-preview-output-modes
npm install
npm run dev
Native wgpu 34Current

Shader Stress Lab + Hot Reload

34-wgpu-shader-parameter-hotreload

A native Tauri 2 + wgpu example that expands ShadeCore's live shader and parameter configuration concepts into a demanding WGSL laboratory.

shader-toolinghybrid-controls-native-renderer
Project details

Summary: A native Tauri 2 + wgpu example that expands ShadeCore's live shader and parameter configuration concepts into a demanding WGSL laboratory.

Topology: hybrid-controls-native-renderer

Platforms: macOS · Windows · Linux

Development
cd wgpu/34-wgpu-shader-parameter-hotreload
npm install
npm run dev
Native wgpu 35Current

Assets, State + Logging

35-wgpu-assets-state-logging

A native Tauri 2 + wgpu example that isolates the runtime-infrastructure concepts used by ShadeCore:

runtimehybrid-controls-native-renderer
Project details

Summary: A native Tauri 2 + wgpu example that isolates the runtime-infrastructure concepts used by ShadeCore:

Topology: hybrid-controls-native-renderer

Platforms: macOS · Windows · Linux

Development
cd wgpu/35-wgpu-assets-state-logging
npm install
npm run dev
Native wgpu 36Current

Runtime Output Router

36-wgpu-runtime-output-router

A native Tauri 2 + wgpu reference application that routes one authoritative GPU texture to independent preview, NDI, and FFmpeg recording sinks.

routinghybrid-controls-native-renderer
Project details

Summary: A native Tauri 2 + wgpu reference application that routes one authoritative GPU texture to independent preview, NDI, and FFmpeg recording sinks.

Topology: hybrid-controls-native-renderer

Platforms: macOS · Windows · Linux

Development
cd wgpu/36-wgpu-runtime-output-router
npm install
npm run dev
Native wgpu 37macOS

Syphon Metal Sender

37-wgpu-syphon-sender

A focused macOS-native wgpu example that integrates ShadeCore's Syphon output concept into the Junkpile renderer family.

syphonhybrid-controls-native-renderer
Project details

Summary: A focused macOS-native wgpu example that integrates ShadeCore's Syphon output concept into the Junkpile renderer family.

Topology: hybrid-controls-native-renderer

Platforms: macOS

Development
cd wgpu/37-wgpu-syphon-sender
npm install
npm run dev
Native wgpu 38Windows

Spout Sender

38-wgpu-spout-sender

Windows-only Spout2 output for the native Junkpile wgpu track.

spouthybrid-controls-native-renderer
Project details

Summary: Windows-only Spout2 output for the native Junkpile wgpu track.

Topology: hybrid-controls-native-renderer

Platforms: Windows

Development
cd wgpu/38-wgpu-spout-sender
npm install
npm run dev
Native wgpu 39Current

Cross-Platform Output Router

39-wgpu-cross-platform-output-router

A native Tauri 2 + wgpu reference application that renders one authoritative GPU texture and routes it at runtime to multiple independent output sinks:

routinghybrid-controls-native-renderer
Project details

Summary: A native Tauri 2 + wgpu reference application that renders one authoritative GPU texture and routes it at runtime to multiple independent output sinks:

Topology: hybrid-controls-native-renderer

Platforms: macOS · Windows · Linux

Development
cd wgpu/39-wgpu-cross-platform-output-router
npm install
npm run dev
Native wgpu 40Unresolved

Network Output

40-wgpu-network-output

A native Tauri 2 + wgpu example that publishes one authoritative GPU frame through UDP/MPEG-TS, RTSP/TCP, or RTMP/FLV without blocking the renderer.

networkhybrid-controls-native-renderer
Project details

Summary: A native Tauri 2 + wgpu example that publishes one authoritative GPU frame through UDP/MPEG-TS, RTSP/TCP, or RTMP/FLV without blocking the renderer.

Topology: hybrid-controls-native-renderer

Platforms: macOS · Windows · Linux

Development
cd wgpu/40-wgpu-network-output
npm install
npm run dev
Native wgpu 41Current

Appliance Runtime

41-wgpu-appliance-runtime

A native Tauri 2 + wgpu example for running Junkpile as an unattended media appliance.

runtimehybrid-controls-native-renderer
Project details

Summary: A native Tauri 2 + wgpu example for running Junkpile as an unattended media appliance.

Topology: hybrid-controls-native-renderer

Platforms: macOS · Windows · Linux

Development
cd wgpu/41-wgpu-appliance-runtime
npm install
npm run dev
Native wgpu 42Current

Audio-Reactive FFT

42-wgpu-audio-reactive-fft

A native Rust/wgpu counterpart to the WebView audio-reactive FFT workflow: microphone capture, FFT and waveform analysis, beat detection, GPU analysis textures, and live audio-reactive graphics.

audiohybrid-controls-native-renderer
Project details

Summary: A native Rust/wgpu counterpart to the WebView audio-reactive FFT workflow: microphone capture, FFT and waveform analysis, beat detection, GPU analysis textures, and live audio-reactive graphics.

Topology: hybrid-controls-native-renderer

Platforms: macOS · Windows · Linux

Development
cd wgpu/42-wgpu-audio-reactive-fft
npm install
npm run dev
Native wgpu 43Working baseline

AV Recorder

43-wgpu-av-recorder

Focused native Tauri 2 + wgpu recorder with selectable audio source.

recordinghybrid-controls-native-renderer
Project details

Summary: Focused native Tauri 2 + wgpu recorder with selectable audio source.

Topology: hybrid-controls-native-renderer

Platforms: macOS · Windows · Linux

Development
cd wgpu/43-wgpu-av-recorder
npm install
npm run dev
Native wgpu 44Current

WGSL Shader Playground

44-wgpu-wgsl-shader-playground

A native Tauri 2 + wgpu counterpart to Junkpile's WebView shader playground workflow.

shader-toolingnative-window
Project details

Summary: A native Tauri 2 + wgpu counterpart to Junkpile's WebView shader playground workflow.

Topology: native-window

Platforms: macOS · Windows · Linux

Development
cd wgpu/44-wgpu-wgsl-shader-playground
npm install
npm run dev
Development

Change the example without losing the working reference #

A working example is most useful when you can tell whether your change caused the failure. Keep the original behavior easy to reproduce, then change one boundary at a time.

  1. Launch the untouched example.
  2. Confirm its documented input/render/output path.
  3. Preserve the baseline in version control.
  4. Change one ownership boundary at a time.
  5. Keep external workers bounded and observable.
  6. Record platform/dependency evidence when claiming validation.

See DEVELOPMENT.md and ADDING_AN_EXAMPLE.md.

Troubleshooting

Find which layer actually failed #

Do not debug the entire application at once. First decide whether the problem belongs to the WebView, the native GPU path, or an external I/O worker, then inspect the tools and state owned by that layer.

WebView

Console, shader compile/link, media permission, browser texture upload, WebSocket state.

Native GPU

Adapter/backend, surface state, bind groups, buffer alignment, texture formats, resource usage.

I/O worker

Readback slots, CPU pools, bounded queues, FFmpeg stderr, SDK/runtime dependencies.

See the full troubleshooting guide.

Glossary

Core terms #

Authoritative texture
The renderer-owned GPU image that represents the canonical frame before presentation/output-specific adaptation.
Bounded queue
A queue with a fixed capacity so slow output work produces visible pressure/drops rather than unbounded memory growth.
WebView
The embedded browser engine that renders HTML/CSS/JavaScript inside a desktop application.
wgpu
Rust graphics API used by Junkpile's native renderer path over Metal, Vulkan, and Direct3D 12.
WGSL
Shader language used by the native wgpu projects.
Readback
Copying GPU texture/buffer data into CPU-visible memory, commonly required by encoders or external APIs.
Sink
An independent consumer of rendered frames such as preview, recorder, NDI, Syphon, or Spout.
Last-known-good
A runtime configuration/shader strategy that rejects invalid edits while preserving the previous working state.