Plotter
A pen plotter that can't keep up, 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: slow, and the ink stays. The plugin traces the outlines in the frame with galvo's tracer, plans the strokes the way a 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 actually passed, in double, and the renderer lays down ink per unit of time, spread over the distance the carriage covered in each interval. Nothing is drawn on. 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 never fades, gets resampled on a resize, and is torn off on a timer or with 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 one 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 what you get for pointing a plotter at video, and that's 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 early days. It hasn't been loaded into Resolume on macOS yet. The machine is measured by an offline harness driving the real plugin class at two rasters: a stroke's pen-down time read off the ink matches the trapezoid's closed form to 0.02%, the ink where the pen is at half cruise is 2.018× as dense as the middle against 2.0125 predicted, the strokes on the sheet after t seconds are the ones the profile predicts, eight strokes over four pens make four carousel trips with Optimise and eight without, and the sheet survives idle frames and resizes. Six machines broken on purpose each fail their check, a one-character sabotage of its own shader is caught, and all 19 swept controls change the picture. Render cost at the defaults is 0.2 ms a frame at 1080p and 0.5 at 4K. The macOS build is signed and notarised. There's a user guide, 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