Skip to content

Subsim Studio v0.2.1

Latest

Choose a tag to compare

@machmar machmar released this 16 Sep 14:04

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.1

  • Right-click a sub for Enabled, Solo, Invert polarity, Cardioid and Locked for
    optimizer, as checkmark toggles. Areas, walls and zones get a name field and colour swatches;
    walls toggle Reflects sound, zones Include in optimization.
  • Solo plays only the soloed subs in the simulation, to hear one box's contribution on its
    own. It is a view, not an edit: not saved, not in undo, the scene isn't marked changed.
  • Toggles and rotations keep the menu open, so several things can be flipped in one visit.
    With several objects selected, toggles act on all of them and show where they disagree.
  • The four rotate items are now one row of buttons.
  • Right-clicking empty space adds Add sub here, Add wall here and Zoom to fit.

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.