Releases: stoatworks-labs/intaglio
Release list
v0.1.0
Engraving, as an FFGL effect for Resolume Arena and Avenue, shown as SW Intaglio. An engraver cannot choose a grey. The plate has lines, and tone is carried by the line, not by the pixel. A line swells where the tone darkens and tapers where it lightens. At the dark limit it is as wide as the pitch and the plate goes solid; at the light limit it tapers to nothing and leaves bare paper. Cross-hatching adds a second and a third set at other angles when one set runs out of range, and the moiré where the sets cross is what a real plate does too.
The lines follow the picture's structure along a flow field built from the structure tensor of the tone, the same field nib uses. nib draws the edges; Intaglio fills even a flat grey with evenly spaced lines. Coherence 0 rules a plain global hatch for comparison. Invert makes a white-line engraving, and Burr gives the drypoint look. Every length is a fraction of the frame height, so the same settings give the same drawing at 720p and at 4K.
What is verified
By tools/verify.sh on an M4 Max, macOS 26.4, on 2026-09-23:
- The flow field comes within 0.49° of the rings' analytic tangent at its best setting, against 6.74° at the least smoothed: 93% better at 960×540 and 87% at 480×270, against a floor of 33%.
- The ruling: 33 lines across a window 32.00 pitches wide, identical at both rasters.
- The weight curve: worst coverage error 0.0005 across five tones, against a tolerance of 0.005. The two rasters agree to 0.0000.
- A black input prints 1.000000 and a white input 0.000000, for one, two and three sets, at both rasters.
- The lines are 0.00° and 0.02° from perpendicular to a known gradient at the two rasters, and the cross-hatch comes out 62.00° apart when 62° is asked for.
- One, two and three sets reach the requested tone to within 0.0009, with one exception: three sets at exactly 60° over-cover by 0.025.
- Five deliberately wrong models, all five detected. All 25 swept parameters measurably change the picture, and all 9 shaders compile.
oxbowreads it as a host would:SW Intaglio,IG01, effect, 30 parameters.- Render cost 0.71 ms/frame at 720p, 1.17 at 1080p and 4.39 at 4K. These are macOS figures only.
- The Windows x64 DLL compiles with MSVC in CI.
- The seven measurement checks and the control sweep also run in CI on GitHub's GPU-less macOS runner, using its software renderer.
- Windows, in Resolume Arena 7.27.1 (win-lab, Mesa llvmpipe, no GPU, 2026-09-23): a CI build of this source passed all 9 of the fleet gate's checks — it loads from Extra Effects, registers as
SW Intaglio/IG01/ effect, all 31 host parameters match the declaration, it renders, the log stays clean, and all 26 probed controls move the picture. Software rendering says nothing about a GPU or about speed.
What is not
- Never loaded into Resolume on macOS, and no host has instantiated it there. Whether the colour triples show as swatches, and whether five groups read sensibly in the inspector, is untested.
- The hatch coordinate is an approximation, and it has to be. It is exact for a uniform field and for concentric circles. Where the flow turns sharply, the lines converge, shear and split.
- Three hatch sets at exactly 60° are phase-locked and over-cover by about 2.5%. At the finest rulings on a 4K frame the finest lines alias.
- Bite and Burr are judged by eye. Every measurement runs with them at zero.
- The model assumes 32-bit float textures filter linearly. A driver that falls back to nearest filtering would stair-step the lines, and nothing checks for that.
- No factory presets, no OpenFX port, no browser demo. There is a user guide at https://stoatworks-labs.com/software/intaglio/guide/.
The macOS build is signed and notarised; the Windows build is unsigned, so SmartScreen warns once.