System Reference · Imagery Pipeline

The mask is the asset

One capture, separated once, carries every finish the library holds. What the separation is worth, what the colour transform has to preserve, what the shipped frames measure, and what scales when the same pipeline runs across a catalogue.

Rev. Sep 2026 Source · 4 frames, 880 × 660 Build · Confidential

The shape

Six stages, and only one of them is expensive.

The shape is ordinary; where the cost sits is not. Separating the textile from its ground is slow, judgement heavy work, and it has to hold at the boundary: the pile edge, where the fibre is neither piece nor ground, and the shadow, which belongs to the scene rather than the object. After it, a finish is arithmetic inside a region. The expensive artifact is the mask and not the render, and the unit economics follow: the first finish costs what the separation costs and the twentieth costs almost nothing.

StageConsumesEmitsArtifact here
CaptureThe woven pieceOne frameYes, four
MaskThe frameThe textile regionNo
RecolorRegion, yarn pairOne finishOutputs only
VariantsOne pair per finishOne render eachYes, four
ReviewThe setApproved or returnedNo
PublishApproved setRenders with yarn codesYes, Fig. 04

The last column is the honest one. Two stages of this pipeline produce nothing a reader can be shown.

Source capture
A woven diamond pattern in undyed straw, cropped from the configurator capture.
One frame of the made piece.
Mask The piece separated from its ground, once.
Recolor
The same woven diamond pattern, the lattice now a dark celadon.
The finish swapped, the light kept.
Finish variants
Oat
Woad
Char
Chestnut
Review A person approves it or sends it back.
Publish Onto the product page, with its yarn codes.
Fig. 01 · The pipeline, drawn. A diagram of the workflow rather than a capture of one: two of its six stages leave no artifact. Both thumbnails are frames of the configurator capture. Imagery pipeline by the studio; the woven piece and its photography are the client’s.

Registration

Nothing moves between finishes, and that is measurable.

A few pixels of drift between one finish and the next turns a strip into four photographs of four rugs, and a crossfade into a cut.

Each of the four shipped frames was reduced to a gradient magnitude image, which throws colour away and keeps only where the edges are, and every pair was cross correlated over a search window of plus or minus eight pixels in both axes. For all six pairs the best alignment is an offset of zero horizontally and zero vertically. The lattice, the knot noise and the pile edge sit on the same pixels in all four finishes.

A detail of the woven diamond lattice in Oat: a straw ground with a pattern one step darker.
Oat
The same detail in Woad: a pale ground with a dark celadon lattice.
Woad
The same detail in Char: a near black ground with a lattice barely separated from it.
Char
The same detail in a chestnut ground with a slate lattice.
Chestnut
Fig. 02 · The same 400 pixel square of the same piece, cut from the same coordinates in all four shipped finish frames. Imagery pipeline by the studio; the woven piece and its photography are the client’s.

What the colour has to keep

A recolor that holds the hue and drops the value drops the pattern.

Texture is the easy half: the loop structure and the shadow are luminance detail, and a transform that works inside the region rather than replacing it keeps them.

The hard half is the separation between the two yarns. The pattern reads as a drawn line only while the two sit far enough apart in value, and across the four shipped finishes that separation varies by a factor of four.

FinishPatternGroundMeanSpread
OatLI-UN06LI-UN15#D8CDB625.1
WoadLI-TL04LI-UN90#B3B5A748.1
CharLI-CH08LI-CH14#46463E13.4
ChestnutLI-GY04LI-BR15#926E5211.3

Mean is the average colour of the 400 pixel crop; spread is the standard deviation of its luminance on a 0 to 255 scale. Yarn codes are the ones carried on the studio page, read off the same frames.

Woad’s lattice reads as line; Chestnut’s reads as texture, the pattern in the same pixels but no longer a drawing. Both were chosen. Value separation is a property of the yarn pair and not of the transform, so it is checked per finish rather than assumed once for the set.

Spread is a whole crop statistic, not a measurement of the two yarns separately. Separating them would need the mask, which is the artifact this document does not have.

The Woad detail again, at larger size: the lattice stands clearly away from the ground.
Woad · spread 48.1
The chestnut detail at the same size: the same lattice, now close in value to its ground.
Chestnut · spread 11.3
Fig. 03 · The widest and the narrowest value separation in the set, at the same magnification and from the same coordinates. Identical geometry, four times the contrast. Imagery pipeline by the studio.

Publish

What ships is a set, and the set carries its codes.

The output is not an image. It is a set of renders of one composition, one per finish, each carrying the yarn pair it was made from, which is what lets a product page and a configurator agree about what the reader is looking at.

Which is why a render here says what it is: the configurator’s declares the size pictured and the yarns shown, and the library’s detail card says in words when a macro has not been photographed. A pipeline that emits representations has to label them, or the first person to mistake one for a photograph is a customer.

The specification is the product
  1. The rug in Oat: an undyed ground with a straw lattice.
    Oat LI-UN06 / LI-UN15
  2. The rug in Woad: the same ground with a dark celadon lattice.
    Woad LI-TL04 / LI-UN90
  3. The rug in Char: a near-black ground with a darker lattice.
    Char LI-CH08 / LI-CH14
  4. The rug in a chestnut ground with a slate lattice, chosen yarn by yarn.
    Chestnut LI-GY04 / LI-BR15
Fig. 04 · One composition, four finishes, all four lifted from the configurator capture. Three are named colourways; the fourth was picked yarn by yarn in the same session, so it carries its yarn names and no colourway name. Imagery pipeline by the studio; the woven piece and its photography are the client’s.

Across a catalogue

The mask is per composition. The finish is per yarn pair.

A finish is addressed by its yarn pair, not by a colourway name. Three of the four shipped frames carry a name; the fourth carries two codes and none, because it was picked slot by slot. A colourway is a preset over the pair and not a ceiling on the set.

All four frames are one composition, which is what the registration above proves: one separation, reused. A catalogue costs what its compositions cost, not what its finishes cost.

One moreCostsShipped here
FinishArithmetic inside an existing maskFour, pixel registered
CompositionA separation of its ownOne
Colourway nameA preset over a pair that already worksThree of the four

What scales with what, read off the four shipped frames.

No throughput figure appears on this page. An output cannot be timed, and one composition cannot demonstrate a second.

Not documented

Outputs are evidence. Everything upstream of them here is not.

Not statedWhy
The mask itselfAn alpha channel is not a picture
The tools and the transform usedNo artifact of the step exists here
How many finishes the set could holdFour shipped; the library size is not known
Time or cost per finishNot measurable from an output
How many pairs the library allowsIts family headings fall outside the recorded crop
Behaviour on a second compositionOne composition shipped
The review stepA person approving something leaves no frame

Absent because the artifact does not carry it, not because it is confidential.