-
Physarum 1.3.0 Stable
released this
2026-05-25 15:23:50 +00:00 | 351 commits to main since this release[1.3.0] — 2026-05-25
Editor
- ParamSlider Shift / Alt modifiers + wheel + keyboard. Power-user
controls land on every slider in the editor:- Wheel over the track nudges by step. Shift = ×0.1 fine,
Alt = ×10 coarse. - Arrow keys (and Home / End) operate the slider when the track
has keyboard focus — same modifier scaling as wheel. - Drag with Shift switches to relative-incremental mode at 0.1×
the normal rate so you can dial in tenths without overshooting;
drag with Alt runs at 4× the normal rate for sweeping across
the full range from a small motion. The modifier state is captured
at pointerdown so releasing the key mid-drag doesn't snap the
value to the pointer's absolute position.
- Wheel over the track nudges by step. Shift = ×0.1 fine,
- Track is now keyboard-reachable (
tabIndex=0,role="slider",
aria-value*) for screen-reader and keyboard-only navigation.
Library
- Reorder custom presets. Each card in "My Presets" now shows up
and down arrow buttons that move it earlier or later in the library.
The arrows disable at the list boundaries and operate on the
unfiltered list (so tag and search filters don't re-target the
wrong neighbour). Order is persisted to localStorage and survives
a reload. - Re-saving an existing preset preserves its position. Before,
saveOverwrite filtered the preset out and pushed it back to the
end of "My Presets" — a small UX papercut on every iteration.
Performance
- Desktop tier agent cap raised from 200k → 500k, matching the
schema and slider caps. The engine was silently clamping past 200k
before, so values shown in the editor didn't match what the engine
rendered. On M3 the engine sustains 120 fps (p50 120.5, p95 131.6)
at 500k on both single-species (aurora-veil) and three-species
(fireworks) presets. Older M1 / M1 Air variants haven't been
verified — if framerate drops on a lower-spec Apple-Silicon machine,
drag the slider back; the FPS readout in the topbar surfaces it. npm run bench:headroomscript for reproducible frame-cadence
measurement. Headed Chromium (same WebGPU-on-headless caveat as
bake-thumbnails), readsrequestAnimationFramedirectly so it
works without enabling the FPS-display toggle. Override the preset
and agent count via env vars; seescripts/bench-headroom.ts.
Tests
- New unit tests for the slider input math (26) and custom-preset
reorder (7). Total vitest count: 92 → 125, all passing. - Fixed a long-silently-broken E2E test that was matching the old
cinema-mode hint text from before the v1.2 "Esc or click to exit"
rewording.
Installing on macOS
The macOS build is not Apple-notarised (this is a hobby project).
First launch shows "Apple could not verify this app." Two-minute fix:- Click Done on the warning (NOT "Move to Trash"!).
- Apple menu → System Settings → Privacy & Security.
- Scroll to the bottom → Open Anyway next to the Physarum notice
→ confirm with password / Touch ID. - Final dialog: Open Anyway once more.
The second launch is silent. If the "Open Anyway" button is missing
(newer macOS versions), in Terminal:xattr -dr com.apple.quarantine /Applications/Physarum.appBackground and walkthrough:
docs/MACOS-APP.md.Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
- ParamSlider Shift / Alt modifiers + wheel + keyboard. Power-user