Releases: stoatworks-labs/contour
Release list
v0.1.0
Luma read as elevation and drawn as a topographic map, as an FFGL effect for Resolume Arena and Avenue, shown as SW Contour. The picture's brightness is the height of the ground, and it is drawn the way a survey map does: isolines at a fixed interval, heavier index contours, hill-shading from the north-west, hypsometric tints, and a sea that the music can raise.
Nothing is drawn on purpose: contours crowd on steep ground because their spacing is the interval over the slope; every line keeps one pen width on the page, on a cliff and on a plain, because it is drawn from its distance on the page and not its distance in height; noise makes an unreadable map until Smooth generalises the height; and the shoreline is simply the isoline at sea level, so a flood pours into the low ground first and leaves the hills as islands. Routed to Resolume's audio, the sea breathes with the loudness (Level) or surges on a hit and drains (Onset).
What is verified
By tools/verify.sh on an M4 Max, macOS 26.4.1, on 2026-09-23, at two rasters (320×180 and 1280×720):
- Five ramps, from 20 to 150 contours, cross exactly the stated number of contours.
- Whole-pixel spacings land exactly (worst 5.7e-5 px); fractional ones within the pixel lattice's own bound of 0.067 px.
- On terrain whose slope spans 8:1, every one of 40 and 175 contours is 1.20 px wide on the page, or 2.40 for an index contour, each within a curvature bound derived for that stroke.
- Ten planes of known slope and aspect, under three lights and two Z Factors, shade to the cartographer's zenith/slope/aspect formula within a few ULPs of the elevation.
- Every pixel below sea level is water and none above — 0 of 57,600 and 921,600 wrong — with the shoreline centred on its isoline within 0.041 px.
- A noisy plateau lying exactly on a contour level draws no ink at all.
- The audio drive: primed on the first frame, an onset raises the sea by the stated half-range and drains it monotonically, and Level puts it at the stated law.
- Sixteen perturbed models each fail their check, and one character changed in the shipped GLSL is caught by two of them.
- All 30 sweepable controls change the picture;
oxbowloads it asSW Contour/CN01/ effect and renders 120 frames. - Render cost at the defaults: 0.11 ms/frame at 720p, 0.29 at 1080p and 1.28 at 4K; at the most Smooth 0.32, 0.73 and 2.90 ms. macOS figures only.
- Windows, in Resolume Arena 7.27.1 (win-lab, Mesa llvmpipe, no GPU, 2026-09-24): a CI build of this source loads from Extra Effects, registers as
SW Contour/CN01/ effect, all 37 host controls match the declaration, every control but the four audio ones moves the picture, it renders and Arena's log stays clean: all 9 of the fleet gate's checks. The audio controls were skipped, because win-lab has no sound device. Software rendering says nothing about a GPU or about speed.
What is not
- Never loaded into Resolume on macOS.
- Flat ground has no contour: below a slope of about one 8-bit code over eight pixels the lines fade out rather than scribble, so a very gentle gradient carries no lines until you smooth more. Smooth is in the picture's pixels, so a 4K layer needs about three times the blur of a 720p one.
- The default Sea Level is 0.05, the darkest twentieth of the picture; much higher and dark footage is mostly sea.
- The audio path has only seen synthetic spectra; nobody has measured what Resolume's 64 FFT bins carry.
- No OpenFX port and no presets. There is a user guide at https://stoatworks-labs.com/software/contour/guide/.
The macOS build is Developer ID-signed and notarised by the release pipeline after publication; if macOS refuses a download, it predates the signing, so download it again. The Windows build is unsigned, so SmartScreen warns once.