A real-time audiovisual engine that turns sound, touch, camera and MIDI into living visuals. 10 GPU shaders. 72KB. 60fps. One HTML file.
Synaptic Mirror is a live audiovisual instrument. It generates real-time visuals via GPU shaders, reactive to sound, touch, camera, MIDI controllers, and gyroscope. Everything fits in a single ~100KB HTML file, runs at 60fps on a tablet, and works as an installable PWA.
Best live workflow: MIC ON + music playing + switch modes by feel. Bass frequencies inject turbulence into the fluid, mids modulate parameters. Play with Force and Flow sliders to control the energy.
The interface reveals itself gradually. Start zen, end in full control. Four tiers from zero UI to complete performance dashboard.
Touch: tap → tier 1, double-tap → toggle drawer, 2-finger swipe H → change mode, long press → zen mode, tap handle → tier 2↔3, 3 fingers → beat. Keyboard: Tab cycles tiers, H toggles HUD, 1-8 modes, Space beat, C/M/R/F/G/P/L shortcuts.
Eight distinct visual modes — each a real-time GLSL shader running at 60fps. Hover the previews to see them in action.
Fluid + Cam + Mic = reactive visuals. Feedback + Cam = psychedelic trip. Kaleid + Cam + Mic = living mandala. Edge + Cam = neon cyberpunk. R-Diff + Touch = organic growth.
Each parameter modulates the active effect differently. Try them here — the preview responds in real-time.
Force × Audio: high values on both = bass-triggered explosions. Reduce Force to tame chaos. Trail × Flow: high trail + low flow = frozen moments. Low trail + high flow = twitchy, responsive. Color × Mode: same hue shift produces wildly different results across effects.
| Key | Action |
|---|
| Gesture | Action |
|---|
| Input | Default | Action |
|---|
1. Button ♪ (or L) → Learn mode active (gold border). 2. Long-press a slider → target (gold pulse). 3. Move a knob → CC mapped. Mappings don't persist between sessions.
1. Connect USB controller → open app. 2. Drawer → ♪ button (or L). 3. Gold border = Learn mode. 4. Long-press each slider → gold pulse → move matching knob. 5. Repeat for all 5 sliders. 6. Optional: map notes 36–43 for mode switching. 7. ♪ again to exit. 8. Test with your set. Mappings reset on reload — re-map each session.
Map CC1 to Force on your most accessible knob — it’s the most expressive parameter. Keep one fader unmapped as a “safety” to reduce chaos. Use MIDI notes for mode switches during drops — faster than 2-finger swipe. Tab cycles tiers while your hands stay on the controller.
Thinking in metaphors makes the instrument intuitive faster than memorizing controls.
Whether you're performing live, exploring alone, or preparing a set — here's how to get the most out of each context.
Every frame passes through a cinematic pipeline before reaching your screen.