Shipped Started 2026

Aurora Visualizer

A GPU music visualizer with 21 WebGL2 scenes that move with whatever is playing, plus a live demo that runs right in your browser.

  • Rust
  • Tauri v2
  • Svelte 5
  • WebGL2
  • TypeScript
  • Web Audio

These builds are not code-signed, so expect a one-time warning. macOS: right-click the app and choose Open. Windows: click More info, then Run anyway.

Started
2026
Status
shipped
Platforms
macOS · Windows · Web

Aurora Visualizer is a Tauri v2 + Svelte 5 desktop music visualizer styled with Aurora Core. Rust captures system audio and runs the FFT/DSP pipeline; a WebGL2 engine renders 21 shader-driven scenes with cinematic post-processing, beat detection, and beat-quantized crossfades, wipes, and glitch cuts between modes.

Try it live: the browser demo starts on a synthetic 120 BPM groove so there is always something to look at, and one click switches it to your microphone. The desktop build, which captures system audio instead of the microphone, is available for macOS on Apple silicon and Windows. Since 1.2.1 both builds update themselves: a quiet check at launch and a Check for updates button in Settings, with every update verified against the release signing key before it installs.

The video behind the title is a minute of the web demo on its synthetic groove, walking through ten of the modes: Neon Cityscape, Nebula, Bass Tunnel, Kaleidoscope, Flame, Raymarched Fractal, Aurora Borealis, Fluid Ink, Murmuration, and Dance Floor, with the beat-quantized transitions between them. The gallery below is the same demo with its mode bar showing.

Why it exists

I missed the Winamp-and-Milkdrop era, when playing music came with something worth staring at. Modern players dropped the visualizer, so I built the one I wanted: native, GPU-rendered, aware of the actual beat, and dressed in the same Aurora aesthetic as the rest of my tools.

Highlights

  • 21 visualization modes (aurora curtains, a spiral nebula, a demoscene bass tunnel, a synthwave cityscape, flame, matrix rain, a raymarched Mandelbox, fluid ink, a flocking murmuration, and more), each a self-contained WebGL2 program.
  • Dance Floor: a crowd of figures choreographed from the music’s structure, with eight-bar phrases drawn from fourteen two-bar moves, canon waves across the crowd during breakdowns, and staged drops.
  • Spotify integration with full playback controls, queue, album art, and an accent tint derived live from the current album cover.
  • Auto-cycle that rotates modes on a timer or on sustained shifts in musical energy.
  • Adaptive render scale and configurable target FPS (60/120/144) so it stays smooth on any display.
  • Per-mode visual parameters with save/load/import/export presets.
  • A full web build at visualizer.justinreda.com driven by Web Audio instead of the Rust backend.

Technical approach

Rust owns audio capture and DSP: FFT, a 64-bin Mel-scale spectrum, AGC normalization, bass/mid/treble splits, and beat detection, streamed to the frontend as frames over Tauri events. The renderer never talks to Tauri directly: it takes an injected AudioSource, so the desktop app, the browser demo (Web Audio microphone with a JS port of the Rust DSP), and a synthetic signal generator all drive the exact same engine. Post-processing (bloom + vignette) is per-mode; shaders that already produce their own glow opt out.