Releases: stoatworks-labs/pilot
Release list
v0.1.0
A tape loader, as an FFGL effect for Resolume Arena and Avenue, shown as SW Pilot. The clip arrives the way a ZX Spectrum loaded it: in screen-memory order, at the baud rate, with the border painted by the loading signal itself.
Most reveals are a shape moving across the frame. This one is an address order. The Spectrum's display file is not linear, so the picture arrives in three thirds, each filling in an eight-line interleave. The colour lands last, over the final 11% of the load, because the attribute file sits after the bitmap. The border stripes' period is the byte rate. Nothing schedules any of that. Drive Progress by hand, by clip time (6912 bytes at 1500 baud is 37 seconds), or off the beat or the bar. There are four machine types, and Error Rate fails blocks and prints R Tape loading error, 0:1.
What is verified
By tools/verify.sh on an M4 Max, macOS 26.4, on 2026-09-23:
- The address order is derived twice, independently, and the two agree for all 6144 addresses, bitwise. Every address is hit exactly once.
- The rendered frame matches the order table at every pixel, at 1920×1080 and 640×480 and at six points in the load: 589,824 exact 8-bit comparisons, none wrong.
- No attribute byte is revealed before byte 6144, and every cell is coloured by 6912.
- The border advances by exactly 16 half-cycles per byte on all four machines, with the same stripe count at 1080 rows as at 240.
- The block failure rate matches 1/r within four standard errors over 20,000 seeded draws at five rates.
- Ten deliberate perturbations of the model, ten detections.
- All 14 swept controls measurably change the picture. Mix 0 is a byte-exact bypass at both rasters, whatever else is set.
oxbowreads it as a host would:SW Pilot,PT01, effect, 19 parameters.- Render cost 0.093 ms/frame at 720p, 0.197 at 1080p and 0.336 at 4K. The two expensive passes run at 256×192 and 32×24 whatever the composition size. These are macOS figures only.
- The Windows x64 DLL compiles with MSVC in CI.
- The model checks, the two checks that rasterise and the control sweep also run in CI on GitHub's GPU-less macOS runner, using its software renderer.
- Windows, in Resolume Arena 7.27.1 (win-lab, Mesa llvmpipe, no GPU, 2026-09-23): a CI build of this source passed all 9 of the fleet gate's checks — it loads from Extra Effects, registers as
SW Pilot/PT01/ effect, all 20 host parameters match the declaration, it renders, the log stays clean, and 12 controls moved the picture with 3 inconclusive under the border's own motion. Software rendering says nothing about a GPU or about speed.
What is not
- Never loaded into Resolume on macOS. How four groups of controls, two eight-entry colour dropdowns and Arena's premultiplied textures behave is untested.
- The four machines are four looks. Only ZX 48 models a documented routine, and none has been compared against a real tape, an emulator or a capture.
- Baud drives the border and the Clip time period, but not the reveal rate in Manual. The Clip time period is derived, not measured. Beat and Bar sync have only been driven by the harness.
- The attribute pass is recomputed every frame. On moving footage a cell's colours can change during the load, which a real tape never did.
- The universal build has never run on Intel.
- No OpenFX port, no browser demo, no factory presets. There is a user guide at https://stoatworks-labs.com/software/pilot/guide/.
The macOS build is signed and notarised; the Windows build is unsigned, so SmartScreen warns once.