Stoatworks Labs

nib

Flow-guided line drawing for Resolume

Betav0.1.3Plugin & ModuleC++ / GLSL
nib — Flow-guided line drawing for Resolume
nib

What it does

nib draws. It does not find edges and light them up — it produces strokes, the kind that stay joined along their length and close around a shape, on a paper colour you choose. The intent is pen and ink, charcoal, a technical drawing or a cyanotype, not a neon outline.

The difference is in the order the questions are asked. A conventional edge effect asks one question per pixel: how fast is tone changing here? That answer is a magnitude, and a magnitude has no memory of direction — so it cannot tell a stroke from a speck, and what it decides at one pixel has nothing to do with what it decides at the neighbour along the same line. nib asks the direction first, builds a flow field over the whole frame, and then steers two filters by it in opposite directions: a band-pass across the flow, which is the only direction in which a band-pass is measuring an edge at all, and a line integral convolution along it, which is what joins per-pixel responses into a stroke.

That claim is checkable rather than asserted, and in two ways. Turn Flow to zero and the second filter is skipped, leaving plain isotropic XDoG — the effect without the idea in it — and that comparison ships as one of the presets, so it is one click rather than an argument. And the flow field itself is measured: the offline harness renders concentric rings whose tangent direction is known in closed form, adds noise, and reports how far the plugin's own answer sits from the truth in degrees, probing the same shader code that ships.

Detection runs on whichever channel actually carries the drawing, which is not always luminance — a red line on a blue field has enormous chroma contrast and almost none in luma, so detecting on saturation is an ordinary setting rather than an exotic one. Stability is deliberately asymmetric in time: ink appears at once and fades slowly, because a line that arrives late has been drawn on the wrong frame.

  • An edge tangent flow field steering the filters, rather than a per-pixel magnitude
  • Difference of Gaussians across the flow, line integral convolution along it
  • Flow at zero falls back to plain XDoG, shipped as a preset so the comparison is one click
  • Detect on luminance, a single channel or saturation — whichever carries the drawing
  • One to three passes, each darkening what the last believed, which is what closes gaps
  • Asymmetric temporal stability: ink appears at once, fades slowly
  • Ink and paper colour, the clip itself as paper, or nothing at all for an alpha layer
  • Eight factory instruments: Pen and Ink, Unguided (XDoG), Charcoal, Technical Pen, Alpha Ink, Overlay, Cyanotype, Woodcut

Where it stands

v0.1.2, and honestly early; the point release changed nothing but the Windows installer, which no longer touches the system PATH — the earlier one could overwrite it. It has never been loaded into Resolume — everything claimed here is verified through the offline harness, which drives the real plugin class headlessly rather than a mock. There is no OpenFX port and no frame-piping mode, so it cannot yet be filmed the way the rest of the set is. It has only been measured on macOS (Apple Silicon): 0.66 ms/frame at 720p, 1.51 at 1080p, 6.60 at 4K. A Windows installer ships from CI, but nothing has run it in a host. Check it in your own rig before trusting it in a show.