1a · Warp & weft
The 16 vertical threads are strung first, then the 14 horizontals pass through them. The order is not a stylistic choice — it is the order weaving happens in, and both sets are selected straight off the mark's own geometry.
internal — not linked, not indexed
Six studies on the same drawn mark. Every one animates transform and opacity only, so all of them are compositor-driven. Nothing here loops.
You have reduced motion turned on, so nothing plays by itself. The replay buttons still work, because motion you asked for is a different thing from motion that ambushes you.
The same three, stacked and played together at one scale. They differ mostly in timing, so watch the wave pass down the column rather than trying to hold one in memory while the next plays. Drop the speed slider to 0.35x to read the mechanics.
All four work on individual logs rather than whole letters. That is the real difference: a letter arriving is lettering, a thread arriving is weaving.
The 16 vertical threads are strung first, then the 14 horizontals pass through them. The order is not a stylistic choice — it is the order weaving happens in, and both sets are selected straight off the mark's own geometry.
Every log on its own, from alternating sides, sequenced left to right. The plain thread-level reading of the original.
One pass crosses the loom and each thread drops as it is reached. Sequenced by true x position, so it travels at a constant rate instead of stuttering between unevenly spaced letters.
Threads arrive loose and out of true, then the cloth is pulled taut and everything snaps into alignment. The settle is the weave locking.
Letters arrive from alternating sides and lock together. The mark is built from the same strip unit as the page, so it assembles the way cloth does.
Letters land in reading order with hand-tuned uneven delays. A uniform cascade reads as a template keyframe; the unevenness is what reads as dealt.
The whole mark snaps in from just under full size. It starts at 0.94, never 0 — nothing in the physical world appears from nothing.
The threads open under load and settle back. Named for a real thing rather than for an optical property. A gesture, not an idle loop.
A spectrum passes through the mark letter by letter and stays. Each letter takes its own thread, so it reads as ten threads rather than one coloured wash.
The same spectrum reads across and leaves, the way a code is scanned. Identical to Sweep except that it does not stay.
Adding a study: give a .cell a new data-anim value and write the
matching rules inside the prefers-reduced-motion: no-preference block. The
replay wiring finds it automatically. Durations are authored at 1x and scaled by
--lab-speed, so the slider stays honest about what would actually ship.