Releases: stoatworks-labs/radar
Release list
v0.1.0
A plan-position radar scope for Resolume Arena and Avenue, as two FFGL plugins in one download: SW Radar (RA01), a source that is a radar watching a synthetic sea, and SW Radar Over (RA02), an effect that makes your clip the sea. Nothing is drawn as a picture of a radar: a reflectivity field (a synthetic coast with rain and moving contacts, or your clip's brightest channel) goes through a radar model. The antenna turns and every frame paints exactly the bearings it swept past into a fixed polar grid; a point target paints an arc as wide as the two-way beam and a streak c τ / 2 long (150 m per µs), outward; returns fall as R⁻⁴ and STC raises the gain as Rⁿ until the scope is flat; sea clutter crowds the centre, rain speckles, coasts facing the radar are bright with shadow behind them; and a two-component phosphor after the P7 radar tube (a blue-white flash, a yellow-green afterglow; P19 and a green tube as options) leaves the trail, its decay timed per bearing in double precision. Audio onsets fire interference spokes and, in the source, sudden contacts ahead of the sweep.
What is verified
By tools/verify.sh on an M4 Max, macOS 26.4, on 2026-09-25, at two rasters (320×180 and 1280×720) and again on Apple's software renderer (what CI's runners fall back to), against the real plugin classes in a headless GL context:
- Beamwidth. A point target's arc has a half-power width of Beamwidth: 2.0025–2.0037° at 2°, 6.0008–6.0014° at 6°, at two ranges, with and without sidelobes, each inside a bound derived from ulps and slopes.
- Pulse. The streak's extent is c τ / 2 to 8×10⁻⁵ of a range bin at 1 and 4 µs, starting at the target and running outward.
- Sweep. Every bearing bin's paint count equals the crossings the clock predicts, exactly, at 25 and 23 rpm, 60 and 59.94 fps, jittered frames, anticlockwise.
- Radar equation. Equal targets fall with slope −3.9998 with STC off, −2.0000 at n = 2 and 0.0000 at n = 4.
- Phosphor. A target decays as the two-term sum to 9×10⁻⁸ (flash) and 2×10⁻⁷ (afterglow), and the flash returns to its level when the beam comes back.
- Over. Squares in the clip become echoes at their bearing to 10⁻⁵° and their range edges to half a clip pixel; Mix 0 returns the clip, alpha and all, bit-exact; Mix 1 is opaque.
- Clock. From a host clock at 499,000,000 ms the antenna turns to 7×10⁻¹¹ bins of rate × elapsed over 600 frames. Resize mid-run leaves the phosphor bit-identical.
- Eleven deliberately wrong models each fail their check; four one-character mutants (three in the shipped GLSL, one in the sweep) are caught; all 43 parameters over both plugins move the picture;
oxbowloads both (SW Radar/RA01/ source,SW Radar Over/RA02/ effect) and renders 120 frames through each. - Render cost at the defaults (median frame, on a machine shared with other builds): 0.3–0.8 ms at 720p and 1.6–1.7 ms at 4K for either plugin.
- Windows, in Resolume Arena 7.27.1 (win-lab, Mesa llvmpipe, no GPU, no sound device, 2026-09-25): the DLLs of this source load from Extra Effects, register as
SW Radar/RA01/ source andSW Radar Over/RA02/ effect, all 29 + 27 host controls match the declaration, both render, and Arena's log stays clean: 15 of the fleet gate's 15 checks, audio skipped. Because the sweep turns between grabs, the gate could confirm 10 of the source's valued controls and 9 of the effect's one at a time; the rest read inconclusive, none dead. Software rendering says nothing about a GPU or about speed.
What is not
- Never loaded into Resolume on macOS. Footage has been seen only through the harness's
--pipe(the project video, on Resolume's bundled demo clips). Filming found no defect; it found that rain hides behind the land at the defaults (lower Land, raise Gain), that a range change under a long afterglow leaves the old map's ghost for seconds, and that a regular beat at 24 rpm makes the strobe's spokes stand still. The guide says so. - The phosphor is stretched to video rates and simplified: a real P7's flash is short and its afterglow decays as an inverse power law (Jankowiak's compilation of the EIA/JEDEC tables, checked for this release); here the flash lasts a few frames and the afterglow is an exponential you set. Colours chosen by eye.
- Choices, stated in the guide: Beamwidth is the two-way width (a datasheet's one-way width is √2 wider); land, clutter and rain blur with beam and pulse but do not brighten (physically they would); the source's contacts live in scope units, so Range zooms the coast and not the traffic; the Over's echoes are in the phosphor's colour, not the clip's.
- The radar equation, STC and c τ / 2 were checked against published summaries, not the textbook. The synthetic sea is made to look right, not measured. No real audio has reached it in a host. No presets, no sector scan, no OpenFX port.
There is a user guide at https://stoatworks-labs.com/software/radar/guide/ and a browser demo at https://radar-demo.stoatworks-labs.com/ (a port to a web page, not the plugin). Video: https://www.youtube.com/watch?v=BIsz5fO5fNg
The macOS build is universal and Developer ID-signed and notarised (both the .dmg and the bundles in the .zip, signed by the release pipeline shortly after publication; if macOS refuses a download, it predates the signing, so download it again). The Windows build is unsigned, so SmartScreen warns once.