Releases: stoatworks-labs/gate
Release list
v0.1.0
A film projector's gate, shutter and print, as an FFGL effect for Resolume Arena and Avenue, shown as SW Gate. It models the machine, not the look. The clip is held at the projector's rate (16, 18, 24 or 25 fps) and changes only when the claw pulls down, in the dark. The light one, two or three shutter blades let through (45° to 315° each) is integrated over each frame your display shows, so the flicker is the beat of the two rates: 72 Hz against a 60 Hz display is a 12 Hz pulse, and nothing is dimmed on purpose. A display frame that spans a pull-down shows both frames at once. Each frame lands in the gate a little off, correlated with the last, and a shrunk print weaves more. Scratches cut by grit in the gate stay put on screen while the picture moves under them; dust rides the print; a hair trembles at the aperture's edge; splices jump and flash; Cue Dots fires the reel-change marks; Framing brings the frame line into view; Age fades cyan first and magenta last, so an old print goes pink and its blacks go red. Carbon arc, xenon and tungsten lamps; the lens's cos⁴ falloff.
The default shutter is 3 blades at 270°, not the classic 2 at 180°. At a 60 Hz output the classic shutter beats at 12 Hz by about ±25–29% of the whole frame (measured through the plugin on Resolume's demo clips), inside the 3–30 Hz band broadcast flash guidelines restrict. The default keeps it to ±7–9%. The guide has the table.
What is verified
By tools/verify.sh on an M4 Max, macOS 26.4, on 2026-09-25, at 320×180 and 1280×720 and again on Apple's software renderer (the one CI's runners fall back to). Every check reads the property back out of the rendered picture:
- Flicker. A flat grey's brightness at 60 Hz has, bin for bin to 2.3e-8, the spectrum the shutter's Fourier series predicts through the exposure: 2 blades at 24 fps, the strongest line at 12.00 Hz, amplitude 0.29271 against 0.29271.
- Hold. Every display frame inside one projector frame shows the input captured at its pull-down; every one spanning a pull-down blends the two frames in the shutter's proportions; 24 (and 25) pictures a second; at 2400 Hz every exposure containing a pull-down is exactly black.
- Scratch. A scratch holds its x to 2e-5 px on every frame of a moving, weaving picture; base side dark, emulsion side light.
- Weave. A thousand frames' standard deviation and lag-1 correlation match the stated law, with and without shrinkage.
- Fade. Each dye keeps its stated density to 1e-7; red and blue rise past green.
- Resize. The print and the previous held frame survive a resize.
- Eight perturbed models each fail their check; a one-character mutation of the shipped shader is caught. All 15 controls change the picture;
oxbowloads it asSW Gate/GA01/ effect and renders 120 frames. - Render cost at the defaults: 0.084 ms/frame at 1080p and 0.27 ms at 4K.
- Windows, in Resolume Arena 7.27.1 (win-lab, Mesa llvmpipe, no GPU, 2026-09-25): the DLL of this source loads from Extra Effects, registers as
SW Gate/GA01/ effect, all 21 host controls match the declaration, it renders and Arena's log stays clean: 9 of the fleet gate's 9 checks. Nine controls read as moving the picture; six (FPS, Shutter Angle, Scratches, Dust, Hair, Splices) read inconclusive because the projection itself never stands still (a noise floor of 7.3 levels); none dead. Software rendering says nothing about a GPU or about speed.
What is not
- The checks verify the stated model, not a projector. The geometry (frame pitch, apertures, cue timing, the dye layer order) is published; the weave's size and correlation, the scratch, dust and hair rates and the three fading rates are chosen numbers. The lamps are black bodies.
- Double images at a pull-down are always on (the machine's truth, a double image on fast motion); there is no control for it in v0.1.0.
- No Stock control: the spec imagined one; this release has Age only. No seed (two instances show the same print), no presets, no OpenFX port.
- 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).
There is a user guide at https://stoatworks-labs.com/software/gate/guide/ and a browser demo at https://gate-demo.stoatworks-labs.com/ (a port to a web page, not the plugin: the shaders run in WebGL2, and the projector and the print are a hand port to JavaScript that only a reader checks; its flicker beats against your browser's display rate). Video: https://www.youtube.com/watch?v=y9B5l5ynnUY
The macOS build is universal and is Developer ID-signed and notarised (checked with spctl on the published downloads). The Windows build is unsigned, so SmartScreen warns once.