NODE // RUSTJAY · ENGINE SYSTEM ONLINE

A Rust framework for building real-time VJ applications. You bring the shader. The engine handles GPU rendering, video I/O, audio analysis, parameter modulation, and network control.

GPU Rendering

wgpu on Metal, Vulkan, and DX12. Single-pass, multi-pass feedback, mesh displacement, and compute shaders.

Audio Analysis

8-band FFT, beat detection, BPM estimation, and an audio-to-parameter routing matrix — all live.

LFO Modulation

3 independent LFO banks with 5 waveforms each. Tempo-sync to BPM, beat-phase lock, per-parameter depth.

Video I/O

Webcam, NDI, Syphon (macOS), Spout (Windows), and V4L2 (Linux) — for input and output.

MIDI · OSC · Web

MIDI CC learn, OSC server, and a REST + WebSocket web remote. Control from anything on the network.

Tempo Sync

Ableton Link, Pioneer ProDJ Link, and MIDI Timecode. Lock to the DJ or the DAW.


What is rustjay-engine?

rustjay-engine is a Cargo workspace of focused crates that handles all the infrastructure of a live visual performance tool — GPU rendering, video I/O, audio analysis, parameter modulation, and network control — so you can focus on the one thing that makes your effect unique: the shader.

When you implement the EffectPlugin trait and call rustjay_engine::run(), you get a complete dual-window application:

  • Output window — fullscreen GPU-rendered output
  • Control window — a tabbed panel with built-in sections for input sources, audio analysis, LFO modulation, MIDI mapping, output routing, and presets

Running the examples

git clone https://github.com/BlueJayLouche/rustjay-engine
cd rustjay-engine
cargo run -p template    # HSB colour — the simplest effect
cargo run -p delta       # RGB delay / motion extraction
cargo run -p waaaves     # multi-pass feedback pipeline
cargo run -p sputnik     # mesh displacement (Rutt-Etra style)

How to use this guide

Start with Installation, then work through Your First Effect. After that, the chapters are largely independent — jump to whatever is relevant to what you're building.