Born inside a university dorm for a live Carnival DJ set with zero budget, zero software setup time, and a laptop already maxed out running audio. A single lightweight HTML file that boots in milliseconds, grabs room acoustics through the microphone, and paints pure rhythmic visual euphoria.
Rendered in real-time on your GPU via HTML5 Canvas. Toggle between the built-in rhythmic beat synthesizer or activate your microphone to react to ambient room sound.
The engine is running simulated procedural beat pulses. You can keep the simulation, enable synthesized drum beats, or sync with your live room microphone.
Captures from the live university dormitory set. Each pattern is mathematically synthesized to resonate with distinct acoustic frequency bands.
Interconnected audio-reactive nodes forming a responsive flocking mesh, coupled with beat-synced fluid dynamics that expand and compress according to low-end transient peaks.
Frequency-based waveform distortion modeled after analog CRT oscilloscopes. Emits particle spark bursts whenever snare hits or high-frequency transients exceed standard deviation thresholds.
Multi-harmonic phase-shifting sine ribbons rendered inside a continuous chaotic particle field. Creates an oceanic liquid wave motion that synchronizes to melodic chords.
Recursive geometric polygons and fractal star rings that scale rapidly outward upon bass frequency detection. Rotates on dual axes with glowing color modulation on every kick drum strike.
Engineered for live stage environments where crashes, memory leaks, and frame drops are unacceptable.
No npm, no webpack, no external CDN assets required at runtime. When you are backstage setting up 5 minutes before the show with no Wi-Fi, you double-click an HTML file on a USB thumb drive and it boots instantly in any browser.
Heavy WebGL pipelines and complex fragment shaders can induce GPU thermal throttling on budget DJ laptops running Ableton or Traktor. Canvas 2D uses native compositor acceleration with minimal overhead, maintaining smooth 60 FPS without fan spin.
Real-time Fast Fourier Transform (fftSize = 128) converts acoustic room pressure into frequency bins every animation frame. Bass thresholds detect kicks and trigger energy decay spikes.
Auto-adapts to 16:9 club projectors, 4:3 CRT racks, or 21:9 ultrawide LED backdrops. High-DPI display scaling recalculates devicePixelRatio so visuals stay razor-sharp at 4K.
The GitHub repository ships two distinct standalone versions. They were built for different trade-offs and are not drop-in interchangeable. Read this before deploying on stage.
The original file written and used live at the university Carnival party. Rock-solid, thoroughly battle-tested, with timed rotation strictly adhering to minutesPerPattern.
The actively expanded edition created for high-impact visual performance with logo injection, manual BPM fallback, and 8 additional visual algorithms.
image0.png, image1.png on beat
In pattern-drawer_audio_sync_&_image.html, the rotation check uses a hardcoded 5000 ms interval rather than this.switchInterval. Replace one token to unlock user-configured timing:
Once the browser window is open and you click anywhere to initialize the Web Audio API, the engine runs completely hands-free. Keyboard commands provide instant on-the-fly control.
Browser security restricts microphone and AudioContext until user interaction. A single mouse click activates room audio listener.
Instantly advance to the next visualizer mode without waiting for the scheduled rotation timer to expire.
Cycles through every single pattern in rapid 5-second succession with on-screen HUD displaying pattern index and mic signal state.
(Extended edition) If performing without a room microphone or with direct headphone monitoring, tap + or - to dial in exact beat cadence.
Browsers enforce security policies: getUserMedia requires either http://localhost or an HTTPS origin. Follow these four quick steps.
Fetch the repository containing both base and extended versions plus all demo assets.
Microphone APIs fail on file:///. Launch a zero-config local server:
Navigate to your chosen edition:
Click anywhere on the screen to permit microphone access. Press F11 to enter borderless browser kiosk mode.
Method A (Built-in Laptop Mic): The simplest approach. Position the laptop on the DJ booth near the monitor speakers. Carnival VFX will pick up ambient sound with zero extra wires.
Method B (Booth Output to Line-In): Connect a 3.5mm AUX or USB interface from the DJ mixer's Record / Booth Out directly into the laptop's line-in. Select that input in browser permission settings for 100% clean isolation without crowd noise.
Method C (Virtual Audio Cable / Loopback): If your visualizer is running on the exact same laptop as your DJ software (e.g. Rekordbox, Traktor, VirtualDJ), install a virtual audio driver (VB-Audio Cable on Windows or BlackHole on macOS) to mirror DJ output directly into Chrome without physical loopback.
Free and open source under the MIT License. Fork it, tweak the algorithms, fix the rotation timer, or compose your own custom projection patterns.