Contour
Luma as a topographic map, for Resolume

What it does
An FFGL effect for Resolume Arena and Avenue. Treat the picture's brightness as ground height, and draw it 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.
The mechanism is the cartographer's, and so are the artefacts. Contours crowd on steep ground and open out on gentle ground, because their spacing is the interval over the slope. Each line is drawn from its distance on the page, not its distance in height, so it is one pen width on a cliff and on a plain. Noise makes an unreadable map until the height is generalised, which is what Smooth does.
The shoreline is simply the isoline at sea level, so a flood follows the terrain: raise the sea and it pours into the low ground first and leaves the hills as islands. Routed to Resolume's audio, the sea breathes with the loudness or surges on a hit and drains.
Moving footage becomes a moving landscape. Flat ground has no contour: below a slope of about one code value over eight pixels the lines fade out rather than scribble across a sky or a wall.
- Isolines at a fixed interval with heavier index contours every N
- One pen width on the page at every slope
- Analytical hillshade with azimuth, altitude and Z factor
- Classic or mono hypsometric and bathymetric tints
- A sea whose shoreline is the isoline at sea level, raised by audio level or onsets
- Smooth to generalise noisy pictures, and a guard that keeps flat ground clean
- Universal macOS bundle and a Windows x64 DLL
Where it stands
v0.1.0, and honestly early. The map is measured, not asserted, by an offline harness that drives the real plugin class headlessly at two rasters: a ramp crosses exactly the stated number of contours; isolines sit interval / slope apart, exactly on whole pixels and within the pixel lattice's own bound on fractional ones; every contour on terrain whose slope spans 8:1 is 1.20 px wide on the page within a bound derived per stroke; planes of known slope and aspect shade to the closed-form hillshade; the sea covers exactly the pixels below sea level, 0 of 921,600 wrong at 720p; and a noisy plateau lying exactly on a contour level draws no ink at all. Sixteen negative controls and a one-character mutation of the shipped shader are caught. All 30 swept controls change the picture. Render cost on macOS at the defaults is 1.28 ms/frame at 4K. It has not yet been loaded into Resolume on macOS. On Windows it has: a build of this source loads, registers and renders in Resolume Arena 7.27.1 on software rendering (win-lab, no GPU), with every parameter as declared; the audio controls could not be tested, because that machine has no sound device. The audio path has only seen synthetic spectra; nobody has measured what Resolume's 64 FFT bins carry. There is a user guide and a browser demo; no presets and no OpenFX port. Check it in your own rig before trusting it in a show.
Watch it running
Nothing loads from YouTube until you press play.Watch it there instead