Stoatworks Labs

gaffer

Depth of field with a rig that rings, for Resolume

Releasedv0.1.3Plugin & ModuleC++ / GLSL
gaffer — Depth of field with a rig that rings, for Resolume
No screenshot — this one is configuration inside another application.

What it does

Depth of field is not a blur. A lens gathers light through an opening, and a point that is not on the focal plane arrives as a disc the shape of that opening — which is why an out-of-focus highlight behind a real camera is a circle, or a hexagon, and not a soft grey smudge. This builds the disc, so bright highlights bloom into the shape of the iris instead of dissolving.

Two things then move the focus, and both are models of a physical object rather than an envelope follower. The rattle is the one worth explaining: a camera in front of a loud PA does not shake like the music, it shakes like a camera. The pressure hits an assembly with its own mass and stiffness, and it answers at its own frequency and keeps answering after the hit has gone. So the rig here is four damped oscillators, one per axis, driven by the arrival of the bass rather than by its level — a kick rings it, a drone does not move it. The lens elements are part of that same assembly, so the frame moves and the focus comes off together.

The rack is a focus puller with two marks taped on the barrel. Follow makes the Focus control a place you are pointing at and lets the hand take time to get there, so animating focus in the host lags the way a real pull does. Pull racks between the two marks on a cue — a bar line, a button, or the kick. Sweep never stops, searching slowly or polling through every plane in the picture several times a second. Stutter puts a new plane on every cue, which makes focus a rhythm part rather than a camera move.

The depth itself comes from one of five places, and they are five different things rather than five settings of one. Radial invents a field and works on any clip at all. Luma and Alpha read one out of the picture's own channels. Split H and Split V read it out of the other half of a double-width or double-height frame — the only one of the five that can carry a real, independent depth pass at full resolution.

  • A real aperture rather than a blur: out-of-focus highlights bloom into the shape of the iris, with a blade count that is measurable in the result
  • A camera rig of four damped oscillators driven by the arrival of the bass, so a kick rings it and a drone does not move it — and the focus comes off as the frame moves, because they are one assembly
  • A focus puller with two marks and four behaviours — Follow, Pull, Sweep and Stutter — cued from the bar line, a button, or the kick drum
  • Five sources of depth, including Split H and Split V, which carry a real independent depth pass at full resolution
  • Ships for Resolume on macOS and Windows, and for Resolve, Nuke, Natron and Vegas on macOS, Windows and Linux

Where it stands

Released at v0.1.2; the point release changed nothing but the Windows installer, which no longer touches the system PATH — the earlier one could overwrite it. The lens is verified numerically against an independent C++ implementation of the circle of confusion across 48 parameter combinations, in x and y separately, with the light it neither created nor destroyed measured at 1.0000 of the pinhole. The bokeh is measured rather than asserted: at 5, 6, 8 and 9 blades the matching rotational harmonic is the strongest one present and each is well clear of the largest unrelated harmonic. The focus puller and the rig are asserted directly over tens of thousands of frames, both nulls are exact to the byte, and all 30 controls measurably change the output. It has never been loaded into Resolume or into any OpenFX host, no audio has ever reached it, and no Windows build has been run — only compiled. Those are different claims from 'verified', and the numbers above are the second kind. Check it in your own rig before trusting it in a show.