Effect Pipeline (fixed order)
SOURCE (video / webcam)
↓
[1] SCANLINE BANDS — horizontal displacement from ring
[2] FLOW WARP — noise-field UV distortion
[3] GLITCH — tile displacement from ring buffer
[4] FEEDBACK — previous frame zoomed/rotated back
[5] SYMMETRY — axis mirror
[6] SOLARISE — luminance-threshold inversion
[7] TRAILS — ghost frame blend
[8] BASE VIDEO MIX — raw source composited on top
↓
RING BUFFER UPDATE — frame written for next pass
↓
OUTPUT → WebSocket relay → Canvas / Syphon / Spout
Each pass is independently toggleable. Disabled passes are completely skipped — no bleed-through. All controls (sliders, MIDI CC, OSC) write directly to DOM elements. The p5 draw loop reads them on every frame — no debounce, no interpolation layer.
Frame Ring Buffer
| Resolution | Bytes/frame | Max frames (quality=1) |
| 720p (1280×720) | ~3.7 MB | 51 frames |
| 1080p (1920×1080) | ~8.3 MB | 23 frames |
| 1440p (2560×1440) | ~14.7 MB | 13 frames |
| 4K (3840×2160) | ~33.2 MB | 5 frames |
720p or 1080p is the practical sweet spot. At 4K the ring holds only 5 frames — temporal effects lose most of their depth. Ring is capped at 192 MB total.