The Retro Engine
Read locally in your browser. Nothing is uploaded.
Sound that draws. Whatever is connected under Sound (the instrument, your microphone, your own audio) traces the beam of an XY oscilloscope, and that trace is the picture. With nothing connected the beam idles on a figure the knobs steer: A and B set the frequency ratio, C turns the phase.
Analysed in your browser. Nothing is recorded or uploaded.
Write your own GLSL and read iAudio (bass, mid, treble, level), iKnobA/B/C, iMouse and iTime. Save it to your shelf or copy a link that carries it. Kept in this browser; nothing uploads.
A patch is the whole setup: shader, stack, palette, every effect and its amount, and the sound routing. Save it, or copy a link that carries all of it. Send to Studio hands the render to the pen surface as a plot map, then on to SVG or G-code. Everything stays in your browser.
Keys F full screen · R randomize · S save PNG · space animate · [ ] amount. Double-click the picture for full screen. Drag on the picture to move the light in most shaders.
The renderer is ordinary readable JavaScript: system/retro-engine.js, system/retro-palettes.js, system/shader-runner.js. Palettes and the dither and scanline math match the coherence-membrane retro.py pipeline, so a browser render and an offline render read as one instrument.