Skip to content

Subsim Studio v0.2.0

Choose a tag to compare

@machmar machmar released this 16 Sep 13:45
· 1 commit to main since this release

Subsim Studio is a companion editor for subsim scenes: draw
the rig on a plan view with the simulation running live underneath it, mark the areas you care
about, and let an optimizer hunt for a better layout.

Download SubsimStudio.exe below and double-click it. Nothing to install — the editor is
compiled in. It serves itself at 127.0.0.1:8130 and opens your browser; close the console
window to stop it. Scenes live in a scenes folder beside the exe as plain subsim project JSON,
so anything you make here imports into subsim unchanged.

New in 0.2.0

  • Split views. Two panes side by side or four in a grid (toolbar, or keys 1 2 4), all
    showing the same scene at the same position and zoom — edit in one and every pane updates.
    Each pane has its own frequency, gain, range and plot type; click a pane to point the
    controls at it. The thin bezels between panes are draggable split lines.
  • Sweep speed is selectable, from 0.5 to 15 s per pass, in the frequency slider's gear box.
    The sweep always drives the left / top-left pane, so another pane can be retuned beside it.
  • Fixed: the sweep filled undo history with frequency steps, so the first Ctrl+Z during a
    sweep appeared to do nothing. Undo now skips the sweep entirely; stopping is one undoable step.
  • Fixed: sweeping kept the other panes coarse and flickering. Each pane now renders
    independently and stays sharp.
  • Fixed: after an update a browser could keep an old cached script, leaving the simulation
    blank with the lines drawn black. Both servers now force a fresh check, and a mismatch is
    reported in the status line.

This is vibe-coded software

Every line was written by Claude Opus 5 from conversational direction — not hand-written, not
reviewed line by line, not checked by anyone with a signal-processing degree. The simulation is a
deliberate port of subsim's engine and was verified against those formulas at sample points
covering cardioid patterns, delay, polarity and wall reflections, agreeing to floating-point
precision. Everything the tests didn't cover carries the risk that description implies.

Subsim's own readme asks you to take its predictions with a truckload of salt. Take these with
two. Use it to learn how arrays behave and to try ideas quickly, not as the sole basis for a
decision you can't undo on site.

What's in it

  • Plan view: drag subs, walls and areas; multi-select, group edit, undo/redo, copy/paste, and
    touch gestures including pinch-zoom and long-press
  • Live SPL field under the plan, recomputed as you move anything or change frequency, gain,
    range, plot mode or speed of sound — plus a frequency sweep
  • Coverage zones with goals (most even / highest intensity / least possible) and weights, and
    placement zones bounding where subs may stand
  • An annealed iterated local search over position, angle, delay, gain and polarity, with ranges
    and minimum step sizes so results land on values you can actually dial in
  • Scene files that hot-reload when changed on disk

Antivirus, honestly

The exe is unsigned, and Windows Defender quarantined an early build on sight — a false positive
that freshly compiled Go binaries attract routinely. This build passes both an on-demand scan and
execution with real-time protection and behaviour monitoring enabled, but your machine may still
disagree. If it does, either build it yourself with go build -trimpath -o SubsimStudio.exe from
studio/, or run the Python server (studio/start.cmd) instead. Don't disable your antivirus for
a stranger's binary.

Subsim is © 2023 Daniel Kadeřábek, MIT. Studio is © 2026 Marek Mach, MIT.