Wetplate
A wet collodion plate, ghosts and all, for Resolume

What it does
An FFGL effect for Resolume Arena and Avenue. A wet collodion plate (the process of the 1850s to 1880s, and of the tintype revival) is silver halide in collodion, exposed while it's still wet, and two things about the plate make its look. First, it only sees ultraviolet and blue. Its sensitivity ends near 500 nm, so what exposes the plate isn't the clip's brightness but the clip's light weighted by a sensitivity curve digitised from a published measurement of a collodion plate, integrated against a spectrum built from each pixel's RGB by Smits' rule. Red barely registers, so reds and skin come out dark, and a blue sky is blown out to white. Second, it's slow. Exposures run for seconds, so anything that moved is a see-through ghost in proportion to how long it stayed, and anything that held still is sharp.
Wetplate exposes every frame into a ring of bucket sums, a sliding window of Exposure seconds held in a fixed number of frames of memory whatever the exposure, and reads the window's mean through the plate's characteristic curve onto a coating whose thickness follows thin-film drainage from the pour corner. In Take mode the plate is capped until the Take event, exposes for Exposure seconds, and then holds the developed plate. The coating is thicker where it drained and bare where the pour never reached, and dust on the plate leaves specks and comets whose tails run down the drain.
There are three plates: a tintype (silver over black japanned iron, warm), an ambrotype (silver over black glass, cooler) and a glass negative on a light box. And three lights: daylight, tungsten and flash, each a Planckian radiator at the CIE's colour temperature, which change the balance between colours but never the overall exposure. Development sets the curve's gamma, Sensitivity the plate's speed, and Buckets trades the window's resolution against its memory.
None of it is drawn. The ratios come from the digitised curve against the basis (red 7%, green 2%, blue 98% of white in daylight), the ghost's density is exactly the fraction of the window something was covered for, and the window is exact to one bucket's width, a bound the harness measures. All the time arithmetic is reduced in double precision on the CPU, so Resolume's clock, which overflows a float, never reaches the shaders.
- Spectral exposure through a published collodion sensitivity curve: reds go black, skies go white
- A sliding exposure window of 1/16 to 16 seconds, held as a ring of 2 to 16 bucket sums
- Continuous or Take mode: cap the lens, expose for the window, hold the developed plate
- Tintype, ambrotype or glass negative; daylight, tungsten or flash
- Hand-poured coating: drainage toward the pour corner, a bare pour edge, dust specks and comets
- Development (gamma), Sensitivity, Tone, Vignette and Mix
- Universal macOS bundle and a Windows x64 DLL
Where it stands
v0.1.0, and early days. It hasn't been loaded into Resolume on macOS yet. On Windows it has: a build loads, registers and renders in Resolume Arena 7.27.1 on software rendering (no GPU), with every parameter as declared. Exposure and Buckets couldn't be shown doing anything there, because the fleet gate's picture is a still and a still exposes to the same plate at any window, and Take is an event the gate never presses. Everything else is measured by an offline harness driving the real plugin at two rasters: pure red, green and blue expose the plate in the computed ratios to 3e-6 under each light, a moving square leaves a smear exposed for exactly the fraction of the window it covered, the bucketed window matches the per-frame mean to within one bucket's edge and reaches that bound, a grey wedge follows the stated curve to 6e-7 in density at three gammas, the coating along the drain follows the drainage law, a take stops changing on the frame Exposure seconds after the event, and a resize mid-exposure carries the exposure across. It catches seven wrong models and a one-character sabotage of its own shader, and all 15 swept controls change the picture. On macOS it costs 0.3 ms a frame at 1080p and 1.2 ms at 4K at the default eight buckets, and it holds 79 MB of state at 1080p and 316 MB at 4K. The macOS build is signed and notarised. There's a user guide and a browser demo, but no presets and no OpenFX port. Try it in your own rig before you trust it in a show.
Watch it running
Nothing loads from YouTube until you press play.Watch it there instead