Jacquard
The clip woven on a jacquard loom, for Resolume

What it does
An FFGL effect for Resolume Arena and Avenue. The clip is woven on a jacquard loom: at every crossing of the cloth either the warp, running down, or the weft, running across, is on top, and a jacquard head lifts every warp end on its own, so any picture can be woven. But three constraints make a woven picture look woven, and the plugin keeps all three. There is one warp colour, and each pick carries one weft colour from the shuttles loaded. No float may run past Max Float crossings, warp or weft, on either face. And tone is carried by weave structure: a satin shows more weft than a twill, a twill more than a plain weave.
The loom weaves pick by pick, top to bottom, as a real one does. The clip is reduced on the GPU to one mean colour per crossing and read back to the CPU, where the shuttles are dyed from the clip by k-means and each pick's shuttle and lift pattern is chosen by a row programme that is exactly optimal under both float limits: the warp's limit enters each pick as crossings the pick may not lift, so the programme stays exact, and the error each crossing is left with is carried to the next pick. The harness checks every pick it weaves against an exhaustive search.
What falls out is the look of a woven picture. Colour arrives in horizontal bands, because a pick is one colour across the whole width, and where the picture wants two hues side by side the shuttles alternate pick by pick and mix from a distance. The midtones carry a twill's diagonal and the ends of the range a satin's smooth face. Solids are tied in satin order, and a bright pick across a black ground leaves a line of specks. Each crossing is drawn as its top thread, a lit cylinder that dips under at the end of every float, so Zoom goes from the picture to the cloth.
Loom controls set the ends (16 to 320), the picks (Auto, or up to 320), the thread aspect and Max Float. Thread controls set the warp colour, the number of shuttles and their palette (dyed from the clip, heritage dyes, mono or bright) and the structure family. The cloth is opaque at full mix whatever the clip's alpha.
- Every pick's shuttle and lift pattern chosen by an exactly optimal programme, checked against an exhaustive search
- No warp or weft float past Max Float, on either face, counted on the grid and read back from the picture
- One weft colour a pick, from 2 to 8 shuttles dyed from the clip by k-means, or from fixed dye sets
- Tone carried by structure: satins, twills and plain weave, each at exactly its weft ratio, the twills' diagonals phase-aligned
- Error carried from pick to pick, so hues mix across picks from a distance
- Lit threads that dip under at the end of every float, and a Zoom from the picture to the cloth
- Universal macOS bundle and a Windows x64 DLL
Where it stands
v0.1.0, and honestly early. The weaving is measured, not asserted, by an offline harness that drives the real plugin class headlessly: every pick the loom weaves costs exactly what an exhaustive search over every shuttle and every lift pattern finds, on 960 woven picks and 200 arbitrary tables; no warp or weft float runs past Max Float in 48 cloths, counted on the grid and read back from the picture; each of eight weave structures shows exactly its weft ratio over 3,600 crossings; a twill's diagonal lands at exactly one end per pick; every pick is one shuttle's colour; and from a distance the cloth is nearer the picture than any single colour. Eight deliberately broken models each fail their check, and all 13 controls change the picture. Each pick is optimal given the picks above it; the cloth as a whole is not, and there is one weft a pick. Filming found that Plain on a grey clip loses the picture, that ties over a black ground crossed by a bright pick line up into short vertical dashes, and that on moving footage the cloth changes about as much as the clip does, more on fine bright lines. It has not yet been loaded into Resolume on macOS. On Windows it has: a build of this source loads, registers and renders in Resolume Arena 7.27.1 on software rendering (win-lab, no GPU), with every parameter as declared and all 13 controls moving the picture. The macOS build is Developer ID-signed and notarised. There is a user guide and a browser demo, whose CPU loom is a JavaScript port only a reader checks; no presets and no OpenFX port. 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