Stoatworks Labs

Jacquard

The clip woven on a jacquard loom, for Resolume

Betav0.1.1Plugin & ModuleC++ / GLSL
Jacquard — The clip woven on a jacquard loom, for Resolume
Jacquard

What it does

An FFGL effect for Resolume Arena and Avenue. Your clip is woven on a jacquard loom. At every crossing in 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 rules make a woven picture look woven, and the plugin keeps all three. There's one warp colour, and each pick carries one weft colour from the shuttles loaded. No float can run past Max Float crossings, warp or weft, on either face. And tone comes from the weave structure: a satin shows more weft than a twill, and a twill more than a plain weave.

The loom weaves pick by pick, top to bottom, like a real one. The clip is boiled down 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's exactly optimal under both float limits. The warp's limit comes into each pick as crossings that pick isn't allowed to lift, so the programme stays exact, and whatever error each crossing is left with gets carried on to the next pick. The harness checks every pick it weaves against an exhaustive search.

What you get 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 colours 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 takes you from the picture right down to the cloth.

The loom controls set the ends (16 to 320), the picks (Auto, or up to 320), the thread aspect and Max Float. The 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. At full mix the cloth is opaque, 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 early days. It hasn't been loaded into Resolume on macOS yet. On Windows it has: a build loads, registers and renders in Resolume Arena 7.27.1 on software rendering (no GPU), with every parameter as declared and all 13 controls moving the picture. An offline harness driving the real plugin checks the weaving: every pick costs exactly what an exhaustive search over every shuttle and lift pattern finds, on 960 woven picks and 200 arbitrary tables; no float runs past Max Float in 48 cloths, counted on the grid and read back off the picture; each of eight weave structures shows exactly its weft ratio; a twill's diagonal steps exactly one end per pick; every pick is one shuttle's colour; and from a distance the cloth is closer to the picture than any single colour would be. It catches eight models that are wrong on purpose, and all 13 controls change the picture. Each pick is optimal given the picks above it, but the cloth as a whole isn't, and there's one weft per pick. Filming showed 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. The macOS build is signed and notarised. There's a user guide and a browser demo (its CPU loom is a JavaScript port, only checked by reading it), but no presets and no OpenFX port. Try it in your own rig before you trust it in a show.

Watch it running

Jacquard video thumbnail

Nothing loads from YouTube until you press play.Watch it there instead