Repository navigation
Releases
v0.1.0
The first release of Slitscan: slit-scan and strip photography as an FFGL effect for Resolume Arena and Avenue, SW Slitscan (SX01). The phone filter that stretches your face, Douglas Trumbull's Stargate corridor from 2001, the Doctor Who title tunnel and the Star Trek warp stretch, all from whatever clip you put through it.
The one idea. A slit-scan picture is one long exposure, taken while something moves. The shutter stays open and a slit decides which bit of the film can see out; then the slit, the camera or the artwork behind the slit moves. Each point of the film is only exposed while the slit lies over it, so each point records a different moment of the move. Time turns into space, and nobody had to warp anything. For every pixel the plugin works out when it was exposed and what it could see at that moment. The idea came from ShiveringCactus's VFX History: Slit Scan.
The modes. Scan is strip photography: a slit sweeps the frame Down, Up, Right, Left, Clockwise (a hand from twelve o'clock) or Outward (a ring from the centre), and behind it the picture is whatever the slit saw on its way past, so anything moving sideways leans and anything moving with the slit stretches. Corridor is Trumbull's rig: one, two or four slits, a camera dollying in with the shutter open, and the clip sliding along behind the slits, which comes out as walls in perfect perspective. Tunnel is Bernard Lodge's Doctor Who titles, with the slit an outline (circle, square, diamond or hexagon). Stretch is John Knoll's warp for The Next Generation: the clip is the subject, and a strip of light sweeps across it while the camera dollies in. Scans and the artwork's Flow can lock to Resolume's beats or bars.
Controls: Camera (Mode); Scan (Direction, Scan Time, Scan Sync, Ahead, Repeat, Restart, Slit Line); Slit (Walls, Outline, Gap, Slit Height, Slit Width, Depth, Dolly: Constant Speed or Even Exposure, Exposure, Roll, Centre X, Centre Y); Artwork (Travel, Art Angle, Flow, Flow Sync, Wrap); Output (Mix). The defaults are a Stargate.
Downloads: a universal macOS build (Apple silicon and Intel) as a .dmg or .zip, and a Windows x64 installer (-setup.exe) or .zip. Every archive carries ATTRIBUTIONS.md. The macOS build is Developer ID-signed and notarised minutes after publication; if macOS refuses a download, it's from before that, so download it again. The Windows build isn't signed, so SmartScreen warns once. The Windows installer's folder page starts at Program Files, which Resolume never reads: give it Documents\Resolume Arena\Extra Effects (or Avenue's), as the guide says.
What is measured (offline, by tools/verify.sh on an Apple Silicon Mac under macOS 26, driving the plugin's own class in a headless GL context, at 1280×720 and 320×180 and again on Apple's software renderer):
- Scan. A still picture comes through a whole pass in all six directions with 0 bytes changed. After a knife-thin pass over a card that is a different value every frame, 0 of 921 600 pixels hold the wrong frame in each straight direction (Clockwise and Outward: 0 wrong, with 225 and 108 too near a frame boundary to call). A bar crossing under the slit leans 0.49 px a row, where v/s says 0.5; a bar moving with the slit at half its speed is recorded 160 rows tall, as h·s/(s − v) says. Synced passes are the bar's own fraction, with 0 problems in 900 frames each.
- Corridor, Tunnel and Stretch. Every wall, tunnel and stretch pixel shows the artwork at the moment the dolly's own law (solved independently) puts the slit's image there, worst 0.77 of its derived bound; a knife-thin slit's light matches the dwell in closed form, and a wide slit's matches its exposure window (worst 0.15). Flow moves the artwork what the clock says per second, beat and bar.
- The checks can fail. Fourteen deliberately wrong models each fail their check, and 27 one-character mutants of the shipped GLSL and C++ are all caught. All 25 controls change the picture. The bundle is universal, and
oxbowreadsSW Slitscan/SX01/ effect and renders 120 frames through it.
On Windows it has been in Resolume. The fleet's Arena gate ran this release workflow's own Windows build in Arena 7.27.1 on win-lab (software rendering, no GPU), twice: the DLL loads, registers as SX01 (an effect) and appears in Arena's list, all 31 controls (Arena's Opacity and the plugin's 30) match their names, order, types, ranges and defaults, it renders, and Arena's log stays clean: 9 passed, 0 failed, 1 skipped. Against a still, 17 of the plugin's controls changed the picture, including every one that acts in Corridor, Tunnel and Stretch. Scan's Direction, Ahead, Repeat and Slit Line come out inconclusive there, since Scan hands a still back unchanged and the gate reads that as Arena leaving the effect out of a thumbnail; read straight off Arena's REST API they did what the guide says. Scan Time, Scan Sync and Flow Sync only set a pace.
What isn't verified, or is a limit. It's never been loaded into Resolume on macOS. Nobody has watched Scan Sync or Flow Sync follow Arena's transport, run it on a GPU other than one Mac's, or measured what Resolume's own clips do to the frame rate at 4K. Corridor and Tunnel treat the artwork as a flat backlit card and the slit as perfectly sharp, as the real rigs did near enough. With a wide strip, Stretch's far edge fades over the last few columns, because those pixels see the card only after the strip has passed. No audio input.
Cost, GPU time on an Apple Silicon Mac: at the defaults 0.28 ms a frame at 1080p and 1.19 ms at 4K; the heaviest case tried, Corridor with four walls and a slit 0.3 wide, 0.76 and 3.53 ms. Nothing was timed inside Resolume.
Not done. No presets, no browser demo and no OpenFX port.
- User guide: https://stoatworks-labs.com/software/slitscan/guide/
- Project page: https://stoatworks-labs.com/software/slitscan/