Skip to content

Releases: stoatworks-labs/wetplate

Release list

v0.1.0

Choose a tag to compare

@github-actions github-actions released this 24 Sep 20:50

A wet collodion plate — blue-sensitive and seconds long — as an FFGL effect for Resolume Arena and Avenue, shown as SW Wetplate. Each frame is exposed onto a plate that sees only blue and ultraviolet: the clip's light weighted by a sensitivity curve digitised from a published measurement of a collodion plate (Hertel, Skladnikiewitz and Schmidt, 1997) and integrated against a spectrum built from each pixel's RGB by Smits' rule, so under daylight pure red exposes the plate to 7% of white, green to 2%, blue to 98%. The plate is slow: it holds a sliding window of Exposure seconds as a ring of bucket sums, so anything that moved is a ghost as dense as the fraction of the window it stayed, and a Take caps the lens, integrates for the window and holds the developed plate. The exposure goes through a characteristic curve onto a hand-poured coating that drained toward one corner, with a bare pour edge and dust comets; tintype, ambrotype or glass negative, in daylight, tungsten or flash. None of it is drawn.

What is verified

By tools/verify.sh on an M4 Max, macOS 26.4, on 2026-09-24, at two rasters (320×180 and 1280×720), and every check again on Apple's software renderer (CI's):

  • Under each light, pure red, green and blue expose the plate in the ratio of the computed spectral weights to 3×10⁻⁶; white to 1 within 10⁻⁷. Daylight: red 0.074, green 0.016, blue 0.980.
  • A 20 px square moving 2 px a frame over a 30-frame window leaves a 78-column smear, every column of which reads (frames covered)/30 within 2×10⁻⁶; the static square reads 1 and black exactly 0.
  • On every frame of a 31-frame run the bucketed window is the exact 30-frame box mean within 0.1667, the stated bound (five frames of one bucket's edge over thirty), reaches exactly that bound, and equals the stated bucket rule to 2×10⁻⁶.
  • At gamma 0.6, 1.2 and 2.4, every one of 41 wedge steps is within 6×10⁻⁷ of the stated curve; floors read the fog, ceilings fog + γL, and the mid-line secants sit in their derived bands.
  • For all four pour corners, density along the drain axis fits a + b√s with residual 2×10⁻⁷; a = 0.20000 and b = 1.20000 to 10⁻⁵, what the drainage law says.
  • The plate reads exactly 0 before a take, changes on all 29 frames of the exposure, and from the frame Exposure seconds after the event is bit-identical for 41 frames.
  • Thirty frames of white, a resize to 1.5× and back, thirty of black: every pixel reads the exposure so far, 0.5, exactly.
  • Seven perturbed plates each fail their check, and one character changed in the shipped GLSL is caught by --drainage.
  • All 15 controls change the picture; all 6 shaders compile through glslc with no GLSL 4.10 reserved word as an identifier; oxbow loads it as SW Wetplate / WT01 / effect and renders 120 frames. --pipe exits 1 on a closed stdout.
  • Render cost at the defaults: 0.12 / 0.29 / 1.14 ms a frame at 720p / 1080p / 4K; the state held is (Buckets + 2) R32F frames, 79 MB at 1080p and 316 MB at 4K with eight buckets. macOS figures only.
  • Windows, in Resolume Arena 7.27.1 (win-lab, Mesa llvmpipe, no GPU, 2026-09-24): this release's DLL loads from Extra Effects, registers as SW Wetplate / WT01 / effect, all 21 host controls match the declaration, it renders and Arena's log stays clean: 8 of the fleet gate's 9 checks, thirteen controls moving the picture. Exposure and Buckets read dead there because the gate's carrier is a still, and a still integrates to the same plate at any window; Take is an event the gate cannot press. The harness measures all three from the picture. Software rendering says nothing about a GPU or about speed.

What is not

  • Never loaded into Resolume on macOS.
  • The sensitivity curve is digitised from the paper's Figure 4 to about ±0.03, not taken from a table (the paper prints none), and tapers to zero past the 500 nm its text gives; the ultraviolet the plate also sees is absent, because RGB carries none. Smits' 1999 table could not be re-fetched to check the transcription against, so it is checked only by the complement property the paper constructs it with (pairs sum to white within 0.08).
  • The lights are Planckian radiators at the CIE's colour temperatures, not the CIE daylight tables; the curve is a stated shape inside the published picture of a high-contrast, short-latitude material, not fitted to a measured plate.
  • Footage has been seen by eye only, through the harness, on Resolume's bundled demo clips (the project video): never skin, foliage or sky, where a blue-blind plate shows most.
  • No grain, halation, intensification, varnish or fluid pour; the bare edge and the comets are seeded shapes. No seed control, no presets, no OpenFX port. There is a user guide at https://stoatworks-labs.com/software/wetplate/guide/ and a browser demo at https://wetplate-demo.stoatworks-labs.com/.

The macOS build is Developer ID-signed and notarised by the release pipeline after publication; if macOS refuses a download, it predates the signing, so download it again. The Windows build is unsigned, so SmartScreen warns once.