-
v0.13.0 Stable
released this
2026-06-02 14:36:09 +00:00 | 92 commits to main since this releaseAdded
- Low-resolution pixel-block look. The output canvas now fills its frame
with nearest-neighbour upscaling, so a small Width/Height (e.g. 64×64)
renders as crisp, deliberate pixel blocks instead of a tiny image at native
size. Aspect ratio is preserved (matte bars where it doesn't match the
frame), and WebM playback scales the same way. Display-only — exported
PNG/WebM still use the native render resolution. - Live value readout beside every parameter slider (the transport time
slider already had one); custom-gradient stops show their position too. - Stop control for WebM recording — the Export button becomes "Stop
recording" during a capture and yields the partial clip, instead of locking
the UI until every frame is done. - A hint at the Export controls noting that WebM is RGB-only and ignores an
active mask.
Changed
- Accessibility:
#statusis now a polite live region (assertive on
error), the progress bar exposesrole=progressbarwitharia-valuenow
(per-frame announcements throttled so assistive tech isn't flooded), the
Color-mode select and gradient-stop inputs are labelled, number fields
carry theirmin/maxbounds, and Layer-2 sub-fields are disabled while
Layer 2 is off. - Mobile / touch: 24 px touch targets and 16 px form inputs on coarse
pointers (no more iOS zoom-and-stick), and the canvas area usesdvhwith
a floor so the transport stays on-screen on short viewports. - PNG export now confirms in the status line, matching every other action.
Fixed
- The live canvas could remain hidden behind the WebM
<video>preview after
an export — any later edit repainted a hidden canvas and only a reload
recovered. Any render now restores the live canvas. - The "Clear mask" button was permanently disabled (it toggled a mis-named
element reference). - Number fields could show an un-clamped value (e.g.
9999) while the engine
rendered the clamped one (1024), and a saved preset recorded the
visible-but-wrong number. Fields now snap into range on commit. - A worker crash during recording could hang the app indefinitely; pending
frame requests are now rejected so it falls back to the main thread.
Tests
- Made the
perlin3/perlin4value-range smoke check deterministic
(seeded sampling) so it can no longer intermittently block the deploy.
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
- Low-resolution pixel-block look. The output canvas now fills its frame