v0.3.0
A big feature release.
- Dynamic generator layers — add/remove up to 8 layers from the surface; simulation state is allocated lazily so unused layers cost nothing.
- Dynamic, reorderable FX rack — add/remove effect instances, drag them up/down the chain, run more than one of the same kind (e.g. two independent glitches). Existing presets unaffected.
- Embedded JS scripting runtime (pure-Rust boa) — a per-frame script with audio/clock/LFO/time in scope drives any parameter and can draw into a 2D pixel buffer shown by the new "script" generator. Edit/run/save/load in the web UI; example scripts ship in the binary. Feature-gated (drop with --no-default-features).
- Wireframe OBJ loading — the wireframe generator loads OBJ meshes from meshes/ and draws them as rotating wireframes, alongside the procedural shapes.
- Clip-style media browser — thumbnail grid that loads images/SVG into the media decks; Rescan picks up dropped files.
- Live audio + MIDI device selection and audio analyzer controls (gain/attack/release/beat-sensitivity).
- Fullscreen toggle (F) on the current monitor; full-resolution parameter sliders; floating draggable/resizable output monitor.
New presets: wireframe-obj, prism-stack.