Plotter
A pen plotter drawing the clip, for Resolume

What it does
An FFGL effect for Resolume Arena and Avenue. galvo is a laser: a fast mirror redrawing the whole path every frame. A pen plotter is the opposite machine. It is slow, and the ink stays. The plugin traces the outlines in the frame with galvo's tracer, plans the strokes as a real plotter driver would (sorted by pen, then nearest start first), and drives a carriage along them under a trapezoidal motion profile: a speed limit, an acceleration limit, a settle at each end of every stroke, a full stop at corners sharper than a set angle and a proportionally slower pass through gentler ones, and a trip to the carousel off the corner of the sheet whenever the pen changes.
The machine advances by the time that really passed, in double, and the renderer deposits ink per unit of time, spread over the distance the carriage covered in each interval. Nothing is drawn: the heavy ends of every stroke, the blot at every pen-down, the darker corners and the staircase a coarse Step Size makes of a shallow diagonal are all what a slow pen does. Ink is subtractive, by Beer-Lambert absorbance into an RGBA32F paper that is never decayed, resampled on a resize, and torn off on a timer or the New Sheet button.
Fast content never gets finished. The pen takes the frame's path when it asks for work and draws at its own pace, so the sheet is a collage of the moments each stroke was drawn; Chase re-traces at the end of every stroke so the next always comes from now. On logos and line art the tracer finds long clean strokes; on footage it finds a mess of short ones, which is the honest result of pointing a plotter at video and is the look.
Palettes put the strokes onto technical drawing pens, all-black pens, neon pens, or the stroke's own colour sorted onto the nearest pen. Paper can be white, cream, a ghost of the clip under the sheet, the clip itself, or transparent for the layer below. The carriage and the pen-up travel can be shown or hidden.
- galvo's tracer, copied with attribution, finding the outlines at a 320-pixel trace size
- A trapezoidal motion planner with junction speeds: cruise through a straight, a full stop at Corner Angle
- Ink deposited per unit of time: heavy ends, blots at every pen-down, dark corners, none of it drawn
- Stepper quantisation: a coarse Step Size draws shallow diagonals as runs and risers
- One to eight pens on a carousel, sorted by pen and nearest start, every change a trip off the sheet
- Paper that keeps its ink across frames and a resize, torn off by Auto Sheet or New Sheet
- Universal macOS bundle and a Windows x64 DLL
Where it stands
v0.1.0, and honestly early. The machine is measured, not asserted, by an offline harness that drives the real plugin class headlessly at two rasters: a stroke's pen-down time read off the ink on the sheet matches the trapezoid's closed form (L/v + v/a, or 2√(L/a)) to 0.02%; the column density where the pen is at half cruise is 2.018× the middle's against 2.0125 predicted; after t seconds exactly the strokes the profile predicts are on the sheet; a coarse step pitch draws a staircase whose runs sit on their levels to 0.001 px; eight strokes over four pens make four carousel trips with Optimise and eight without; the sheet survives thirty idle frames byte for byte and a resize to the bilinear blend of its old texels; and a filled square through the plugin's own detect passes is one closed stroke. Six deliberately broken machines each fail their check, and a one-character mutation of the shipped shader is caught. All 19 swept controls change the picture. Render cost at the defaults is 0.2 ms/frame at 1080p and 0.5 at 4K. It has not yet been loaded into Resolume on macOS. There is a user guide; no presets and no OpenFX port. The macOS build is Developer ID-signed and notarised. Check it in your own rig before trusting it in a show.
Watch it running
Nothing loads from YouTube until you press play.Watch it there instead