• v0.2.0 0c6f7b8c76

    v0.2.0 — new drop 🔥
    All checks were successful
    ci / build-and-test (push) Successful in 6m18s
    release / build-and-test (push) Successful in 6m13s
    release / release (push) Successful in 8m31s
    Stable

    psk released this 2026-06-25 23:32:59 +00:00 | 30 commits to master since this release

    Added

    • Vector SDF background layer — a resolution-independent, per-pixel procedural pattern
      (rings, sunburst, hex grid, nested polygons, moiré, kaleidoscope) rendered as a final
      post-process pass, with a the29nov-style filter stack: threshold/duotone, posterize, halftone,
      beat-gated invert, in-shader bloom, chromatic, scanlines, grain, vignette, flicker. Audio-reactive
      and layerable over any mode (like the tilemap effect). Selectable color mode: Duotone (the29nov
      mono, default) or Gradient — an animated, bass-pulsing rainbow with adjustable hue speed, like Orbit.
    • Theme / Curator-Seed system — portable themes that set partial default settings and constrain
      the randomizer (lock / range / force / one-of) into a stylistic envelope. Importable as a
      human-editable TOML file or a compact paste-able seed code (postcard + CRC32 + base64,
      versioned). Built-in starter themes (Mono/the29nov, Neon, VHS, Cosmic), an in-app Theme Editor
      (all options per mode, default value + randomize range each, plus a random-theme generator), and
      a control-panel manager. The active theme persists across sessions and keeps Randomize within its
      envelope.

    Fixed

    • Floating Windows layout now scrolls tall control panels instead of running off-screen, so the
      bottom controls in the Mode/Background/Stereo windows stay reachable.
    • Vector layer "Opacity" now works as a true layer crossfade (was swallowed by the duotone remap).
    • Reduced SDF pattern density (esp. hex) so patterns read as clean shapes, not fine texture.
    • Audited/tightened Randomize ranges + added an anti-stacking guard so a single Randomize stays
      watchable instead of producing muddy/over-stacked frames.
    • try_despawn on managed background meshes silences a benign double-despawn warning during rapid
      randomize/mode churn; guarded an empty file-dialog selection against a panic.

    🌐 Live WASM demo (latest build): https://public.pages.ssy.dk/soundy-bits/
    This release's exact browser build is the soundy-bits-0.2.0-wasm.zip asset.

    Downloads