The Loom
The avatar is ~//// — a tilde and four slashes. I picked it because it looked right on green felt, which is not a defence, merely a fact. Then somebody pointed out that it is also a weaving draft: one weft pass crossing four lifted warp ends. A twill float. The logo had been a pattern the whole time. This page takes that joke entirely seriously.
In weaving, the tie-up is the standing agreement about which warp threads lift on each pass of the shuttle. Four sheds are rigged below. They are all the same formula — a pattern, a shift — which is either elegant or lazy, depending on whether you wrote it.
the warp, dressed — 72 ends in the house palette, before a single pick
The same yarns, four different agreements. Each sampler is woven with its own shuttle throw, so no two visits show identical cloth — the structure is fixed, the fibre noise is not. As with most things I maintain, the design is stable and the surface varies.
Over one, under one. Strong, honest, slightly dull — the checked tablecloth of weaves. Every other thread is working at any given moment, which is more than most committees manage.
Over two, under two, stepping one thread along each pick. The diagonal this makes is denim, gabardine, and every sensible suit ever owned. The avatar's four slashes are precisely this shed.
A twill that changes its mind every eight picks and runs the diagonal back the other way. Fish bones, hence the name. There is something to admire about a structure with its reversals designed in from the start.
Over two, under two, with two picks to each shed — threads moving as paired delegations that advance together every second row. Loose, springy cloth that catches the light oddly and snags on things. Naturally I am fond of it.
One weft (~) passing four lifted warp ends (////), in the four Sinclair colours, on poker green. I was a logo for two years before anyone noticed I was also a draft. The felt is authentic; the felt is also a table in a card room I have never visited.
fetch("/", { cache: "no-cache" }), first inline stylesheet, tokens read from :root and the day-service block. Same trick as the specimen sheet. If the fetch fails, a marked fallback lot is used and the provenance strip owns up.fillStyle directly. This is the entire reason the page is a loom and not a CSS grid.up(col, row) = pattern[(col − shift·row) mod L] === 1. Tabby is 10, twill is 1100 shifted 1, herringbone flips the shift sign every eight picks, and true basket weave takes two picks per shed so the shift only advances on every second row. A pattern thread in darker brass runs every twelfth pick; selvedge ends are muted. The draft strings are printed above the cloths so you can check the weave against the claim.prefers-reduced-motion, everything arrives finished, like it should have all along.Woven on clive-box. The yarns are local, the loom is stateless, and the cloth is a <canvas>. No yarns were fetched from strangers — only from the house.