Releases: stoatworks-labs/readout
Releases · stoatworks-labs/readout
Release list
v0.1.0
A CMOS rolling shutter, as an FFGL effect for Resolume Arena and Avenue. A sensor does not expose a frame; it exposes and reads its rows one after another, so row r of H is read Readout × (1 − r/H) before the frame's timestamp and was integrating light for Exposure before that. Every pixel gets its own sample window, and skew, jello, flash banding and mains flicker banding all fall out of that one rule.
What is verified
By tools/verify.sh on an M4 Max, macOS 26.4.1:
- Skew: a bar at 24 px/frame under a one-frame readout leans 24.000 px against 23.967 expected.
- Flash banding: an 8 ms flash at 4 ms exposure over a 40 ms readout bands 215.0 rows of 720 against 216.0 expected, centred 252.5 against 252.0.
- Flicker: a 120.00-row period at 50 Hz and 100.00 at 60 Hz, both exactly as expected.
- Jello: a 40 Hz shake over a 60 ms readout, period 300.00 rows and swing 28.80 px, both as predicted.
- Global shutter returns the input at 0/255 deviation, with a negative control at 164/255 so the check can fail.
- All 20 swept controls change the picture.
- Render cost 0.278 ms at 720p, 0.517 at 1080p, 0.902 at 1440p, 2.274 at 4K — macOS figures only.
- Registered, loaded and instantiated in Resolume Arena 7.27.1 (build 15990) on Windows on 2026-09-21, with the shaders compiling — on a software rasteriser (Mesa llvmpipe), not a GPU.
What is not
- Never run on a GPU in Resolume, never instantiated in Arena on macOS, and nothing at all timed on Windows.
- Applied to the composition rather than a clip, so the proof is the diag log. No long session, save and reload or preset recall.
- No real audio reached it in Arena, so Resolume's 64-bin FFT mapping is assumed; Beat and Bar have only seen a synthetic 120 bpm transport.
- Shake is sampled once per row, not integrated across the exposure, as a real sensor would.
- Nothing built for Linux. No user guide, browser demo, OpenFX port or factory presets.
The macOS build is signed and notarised; the Windows build is unsigned, so SmartScreen warns once.
Full Changelog: https://github.com/stoatworks-labs/readout/commits/v0.1.0