Live visuals · hybrid engine
WebGL scenes · Aurora Field spectrum · audio-reactive stack
Loading scripts…
When the bar shows Ready, tap Enter show (or this card) to unlock audio. The engine keeps running while you load.
MIDI Learn: pick a target, then move a knob or pad.
Perform · live
Live perform — mic drives WebGL and Aurora. Use Punchy for maximum snap; Smooth for calmer rooms.
Cycle (top bar) = timed next scene in order. Random = one jump to any scene now. Use the Hide controls button at the bottom of the screen anytime (or press H).
Mic off — tap to enable
Safari iOS: allow microphone when prompted. If levels stay flat, open the Audio tab and raise Gain or Trim.
Perform · engine
Perform · scenes
Mix · Aurora & stack
Paste a JSON array of strings (Butterchurn preset keys from the library). Auto-morph and random Aurora only pick from this list when applied. Invalid keys are dropped.
I/O · composition
Everything lives in this app: clip layers, effect bypass chain, timecode cues, DMX, and clock. WebGL + Aurora keep rendering — load clips with Load & play (tap first on iOS/Android).
Resolume-style bypass: disable passes without stopping the engine. Trails amount still uses the Aurora Trails slider.
Multi-pass WGSL over a copy of the main WebGL canvas. Requires WebGPU (Chrome/Edge; Safari when enabled). Recording uses this layer when enabled.
—
Up to 4 slots each for under (plate under WebGL) and over (overlay). Uses playsInline + muted for mobile autoplay after your tap.
Save the current scene, stack mode, FX bypass chain, and WGSL node list as a named preset.
Time cues use the master clock. Beat cues fire on bass-transient pulses (mic on) every N beats. Re-arm all resets beat phase tracking and time flags.
Master time + DMX to Open Lighting Architecture (olad). For Safari/Chrome, run the local CORS proxy next to this app: node tools/ola-cors-proxy.mjs. SMPTE LTC: in-app JS decoder runs when WASM is absent; optional vendor/ltc/ltc_decoder.wasm per vendor/ltc/README.txt.
—
System · output
—
Structure mood (when mic on) nudges bloom + morph. Genome mutates slowly; Shift+click a clip cell to store, plain click to launch.
—
Genome
—
Show-first path: Launch → enable mic (M or Live tab) → drive WebGL and/or Aurora hybrid → Present (P) for clean output.
?obs=1 to the URL for auto-present after load (see README).?three=1 (Three.js, ~670 KB) or ?playcanvas=1 (PlayCanvas, ~2.1 MB) — extra WebGL contexts; use one at a time on weak GPUs.?seed=; Save on a preset recalls stack + DNA for that session.Repo docs: docs/PRODUCT-ROADMAP.md, docs/SHIP-CRITERIA.md, docs/AI-COLLABORATION.md.
Removes the corner watermark. Codes are issued with your license; see README for developer unlock strings.
NEXUS Engine Pro pairs real-time WebGL scenes with a full MilkDrop-class spectrum library under the product name Aurora Field.
Aurora Field is implemented with the open-source Butterchurn engine (MIT License). Preset authorship belongs to original MilkDrop artists and community pack maintainers.
?three=1 or localStorage nexus.three.guest=1): three.js (MIT) — vendor/three.min.js + js/nexus-three-guest.js.?playcanvas=1 or localStorage nexus.playcanvas.guest=1): playcanvas/engine (MIT) — vendor/playcanvas.min.js + js/nexus-playcanvas-guest.js (#c-playcanvas).js/scenes/homage-gl-scenes.js, preset-pack-2026.js): original GLSL inspired by public web works — Man in the Dark (2004), Way to Go (NFB), yes no if (2014), Chris Raff 3D Maze, Hackers (1995) animated experience (David Vidovic), Terminal 00 / Irentaex (Angus Nicneven). Not affiliated; no third-party assets or prose copied into the repo.Not bundled unless listed in THIRD_PARTY_NOTICES.md. Full write-up: docs/NEXUS-BROWSER-VIZ-RESEARCH.md. Append ?research=1 to log a console pointer at boot.
Track 1 — WebGL → WebGPU arc. Hydra hydra-synth/hydra · hydra.ojack.xyz; cables.gl cables.gl · audio / realtime viz; PlayCanvas engine; WebGPU showcase Tendrils; historical Milkdrop-style WebGL milkshake (stale — culture only).
Track 2 — Audio-reactive 3D. r3f-audio-visualizer · kuhung/audiovisualizer · music-visualisation-3d · 3d-audio-visualizer; MilkDrop-class ref MangoWave (AGPL — not shipped); GPU audio example three.js webgpu_compute_audio.
Track 3 — OSS shortlist. Prefer canonical Hydra; NEXUS ships Butterchurn for MilkDrop-class presets; nexus-cables-lite.js echoes cables.gl topology only; optional guests: ?three=1 (Three) + ?playcanvas=1 (PlayCanvas on #c-playcanvas); WebGPU probes via WgslGraph.
Track 4 — Bad Apple (Mega Drive). FMV on tight ROM/VDP — MegaBites · AtariAge · YouTube. Lessons: custom codec + streaming, grayscale tradeoffs, banking — good analogues for REC / low bitrate readability.
Track 5 — Demoscene & C64. Bad Apple 64 · pouët · CSDb; badderapple; 4k classics Shapeshifter · Animate · Heaven. Audio: deterministic player clock + envelopes (demoscene) complements mic/FFT in browser VJ — NEXUS uses both via BPM + bands + worklet.
NEXUS alignment. WebGPU staging: getComputeParticleStage(); audio: ProceduralAudioBus + NX.S (BC, PH, crest, RMS).
Full vendor list and license notes: THIRD_PARTY_NOTICES.md. Internal mode values may still read butterchurn for compatibility.