Release candidate 3 for 3.6.0. No new features — pure rendering rework of the wind streamline overlay. Continues the rc-line tuning that started in rc1; if nothing surfaces during the rc3 bake, this is what 3.6.0 ships as.
What's new in rc3 (since rc2)
Streamline rendering rewritten
The streamline overlay used to rely on destination-out per-frame alpha decay — a ~3-decade-old technique where each frame paints a translucent black layer over the canvas and new strokes accumulate. At low zoom this caused canvas saturation: slow-moving particles deposit opaque ink at the same pixel for many frames in a row, faster than the fade can clear it, producing a uniform grey "smudge band" along the wind direction.
The new pipeline is explicit per-particle trail buffers:
- Each particle maintains a 60-position ring buffer of its recent history.
- Every frame the canvas is cleared and each particle's trail is redrawn from its history.
- No accumulation possible — when a particle dies, its trail goes with it.
- Per-segment alpha gradient (newest = full, oldest = transparent) preserved across batched stroke calls.
Frame rate throttle
- Animation throttled to 15 fps (was uncapped
requestAnimationFrame, ≈60 Hz on modern displays). - Per-frame motion scaled by elapsed-ms vs. a 30 fps reference, so wall-clock head speed stays consistent with the previous tuning.
- CPU drops by ~4×.
- Visible streak length doubles (each per-frame segment is now twice as long), giving better-looking streamers at low zoom.
Smooth fade-out at end-of-life
- The last 15 frames (~1 sec) of every particle's life are rendered at decreasing alpha via cubic ease-in (
1 - t³). - Cubic curve keeps early fade frames near full alpha so the transition from "fully alive" to "fading" is imperceptible — earlier linear-fade attempts produced a perceived "flash" at the transition.
- Particles continue moving during the fade, so they "drift away into the wind" rather than freezing in place.
Smooth fade-out at canvas edge
- Particles drifting off the canvas previously triggered an immediate respawn — the on-canvas portion of the trail vanished in a single frame.
- Off-canvas detection now bumps the particle's age into the same fade window so its visible portion dissipates over the same ~1 sec cubic ease.
Cumulative since 3.5.0
Same as rc2 plus the streamline rendering rewrite above. See v3.6.0-rc1 notes for the full 3.6 feature inventory.
Upgrade notes
No breaking changes. No new config keys. Existing 3.5.x and 3.6.0-rc[12] configs continue to work unchanged. Pure visual refinement of the existing wind streamline overlay.
Full Changelog: v3.6.0-rc2...v3.6.0-rc3