Skip to content

Releases: stoatworks-labs/contour

Release list

v0.1.0

Choose a tag to compare

@github-actions github-actions released this 24 Sep 00:57

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; oxbow loads it as SW 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.