v0.5.2: temporal smoothing (centered box window)
v0.5.2 adds temporal smoothing for low-spp exports and fixes an early-pause resume bug.
Temporal smoothing (export)
Low, Medium, and High quality exports no longer flicker ("tiny dots moving around"). A centered box window averages per-frame histograms before the display pipeline, so smoothing applies from the first frame with no startup ramp and no temporal lag. It is centered (non-causal) because the export is offline; box weights give the minimum-variance estimate for the per-frame Monte-Carlo noise. The half-width scales with the quality tier (Low 10, Medium 5, High 3 frames).
Smoothing is OFF at genome-default quality and on the single-frame PNG mastering path, so those outputs are byte-identical to before. The feature is export-only; the realtime preview is unchanged.
Metal reuses the existing fused chaos pass and reads the atomic histogram buffer back to the host. No new shader. Existing render paths are byte-unchanged.
Fix
Pausing before the first checkpoint interval completed left no checkpoint on disk, so resume failed with "checkpoint unreadable". An initial checkpoint is now written at the start of the run, so an early pause is always resumable.
Known limitations
Smoothing-on peak memory is 2h+1 Double histograms (about 1.7 GB at 1080p for h=10, about 7 GB at 4K); a RAM guard is pending. A transition between two genomes with different spatial-filter radii throws a graceful error; uniform-filter genomes are unaffected.
Install
Download and unzip. The binary is unsigned, so clear quarantine before running:
xattr -dr com.apple.quarantine emberweft emberweft_FlameRenderer.bundle
Run the GUI from the folder that holds the resource bundles:
./emberweft-gui
Or the CLI:
./emberweft --help
Requires macOS 26 on Apple Silicon.