Releases
v0.7.0
Compare
Sorry, something went wrong.
No results found
🚨 Breaking Changes
Engine loop policy derived from jitter; remove idle prop and setDotSize - by @TheeKia and Claude Fable 5 (85270)
Grouped dots/motion props replace flat tuning props - by @TheeKia and Claude Fable 5 (f454a)
🚀 Features
Honor prefers-reduced-motion (snap morphs, opacity-only changes, zero jitter) - by @TheeKia and Claude Fable 5 (49cd2)
A11y role/label, React 19 ref prop, docs sync - by @TheeKia and Claude Fable 5 (c9398)
MaxDpr prop — configurable density cap (default unchanged at 2) - by @TheeKia and Claude Fable 5 (1bec6)
ReducedMotion prop override + playground toggle - by @TheeKia and Claude Fable 5 (9c1c7)
Fill mode — parent-driven sizing via ResizeObserver - by @TheeKia and Claude Fable 5 (810fd)
Matching='nearest' — Morton-rank spatial pairing for coherent morphs - by @TheeKia and Claude Fable 5 (0dfcf)
Pure params core — DotOptions/MotionOptions resolution and SimParams - by @TheeKia and Claude Fable 5 (4639c)
Backends consume live SimParams via Backend.setParams - by @TheeKia and Claude Fable 5 (e6a94)
🐞 Bug Fixes
Own canvas sizing in one pre-paint layout effect, drop JSX width/height - by @TheeKia and Claude Fable 5 (4bc6d)
Make dotSize CSS-px on all tiers so dots render the same size at every DPR - by @TheeKia and Claude Fable 5 (95610)
Clamp auto font sizing to the canvas height; add font/draw unit tests - by @TheeKia and Claude Fable 5 (644d0)
Explicit webgpu request falls back through webgl2 before canvas2d - by @TheeKia and Claude Fable 5 (f3e08)
Replace sin-fract GPU jitter hash with integer PCG matching the [0,1) contract - by @TheeKia and Claude Fable 5 (54cdc)
Reserve correct CSS box at SSR/first paint; silence server useLayoutEffect - by @TheeKia and Claude Fable 5 (6cd5b)
Re-rasterize text once its custom web font finishes loading - by @TheeKia and Claude Fable 5 (84021)
Gate continuous loop on field content; public-surface test; export SimParams - by @TheeKia and Claude Fable 5 (3fa03)
Gate loop on active particles; correct ts-expect-error guard placement - by @TheeKia and Claude Fable 5 (fdbbb)
🏎 Performance
Drop fully-overwritten copySlot from reconcile spawn path - by @TheeKia and Claude Fable 5 (7ffe9)
Fuse settle detection into stepField so settled() is O(1) per frame - by @TheeKia and Claude Fable 5 (12d25)
Draw every running frame and drop preserveDrawingBuffer copy cost - by @TheeKia and Claude Fable 5 (871ec)
Switch idle behavior live via engine.setIdle instead of recreating the backend - by @TheeKia and Claude Fable 5 (007d6)
Coalesce rasterization with a latest-wins scheduler - by @TheeKia and Claude Fable 5 (7fc16)
Cache decoded images/bitmaps with a small LRU in both rasterizers - by @TheeKia and Claude Fable 5 (91b05)
You can’t perform that action at this time.