A cord is a stripe with no colour in it
Worth reading first: Plain, twill and satin · Interlacings and firmness · What a repeat repeats.
Three weaves in every manual are given a paragraph each and no explanation. Warp rib, weft rib and hopsack — also called repp, cord, matt and basket, depending on the trade and the century — are presented as constructions in their own right, each with its own drawing.
They are one construction, applied three ways. Take plain weave and double its threads: the picks, the ends, or both. Everything that distinguishes the three from each other and from their parent follows from which of the three was chosen, and none of it requires a new idea.
Doubling is grouping, and grouping is the stripe turned inward
A stripe is a partition of the ends into bands, each following its own rule. A doubled weave is a partition of the ends into groups of two, all following the same rule — the same move at a scale so small that nobody calls it a stripe.
What makes it more than a change of scale is what happens inside a group. Two adjacent ends whose columns are identical lift together on every pick, so no weft ever passes between them: nothing holds them apart and in a finished cloth they lie touching. The grouping is computed from the matrix itself, by machinery written for mock leno, where the same fact is used to open a hole. Here it is used to close one.
So the pair behaves as a single coarse thread, and the cord a reader sees running across a warp rib is that pair, plus the next pair, plus the next. The cord is not woven; it is the absence of anything separating two threads. It is the same kind of object as the twill diagonal — a visible feature belonging to no thread — except that here it is a feature belonging to two.
The three names then say only which system was grouped. A warp rib is plain weave extended in the warp direction: each end floats over two picks and under two, the picks fall into pairs, and the cord runs across the piece. A weft rib is the same in the other system. A hopsack is both, and is cloth.js’s basket under the woollen trade’s name for it. The naming is by which system is extended rather than by which way the cord runs, which is why half the books appear to disagree with the other half; every construction below is stated as a rule and the name is a label on it.
The finding: firmness cannot see a hopsack
Set a 2/2 hopsack beside a 2/2 twill and ask the site’s own machinery to tell them apart.
The longest float is two in both. The interlacings per intersection are 0.500 in both — half plain weave’s, which is the number firmness is. The balance is 0.500 in both. Both are one cloth. And the densest either can be set at, under the model in cloth.js where a thread takes one diameter across the cloth and each interlacing takes one more, is 26.67 threads per centimetre in both directions for both weaves at a quarter-millimetre yarn.
Six measures, six identical answers. And the two cloths behave nothing alike. A hopsack is loose, spongy and coarse in appearance; a 2/2 twill is firm and fine and has a line running through it. The reason is where the floating threads are: a hopsack’s two lie side by side and act as one thread twice as thick, and a twill’s are staggered so that no two ends ever float together.
What does see it
Three measures separate them, and the list is worth being precise about because it is not the list a reader would guess.
The shaft count. A 2/2 twill needs four shafts and a 2/2 hopsack needs two, because a shaft is a distinct column and the hopsack has only two distinct columns however wide it is drawn. That is a factor of two in the harness, on cloths that every firmness measure calls identical.
The fundamental domain. The unit a cloth actually has is the repeat divided by the number of translations that leave it alone, and the hopsack’s is eight intersections against the twill’s four. The twill is written on sixteen squares and is a cloth of four; the hopsack is written on the same sixteen and is a cloth of eight.
The thread grouping. threadGroups returns runs of [2, 2] in both directions for the hopsack and [1, 1, 1, 1] for the twill. This is the one that is actually about the cloth’s behaviour, and it is the one the site added last and for another purpose entirely.
The honest summary is uncomfortable. The measures that separate a hopsack from a twill are all about the notation or the loom, and the measure that is about the fabric was borrowed from a figure about holes. Firmness, float length and setting — the three quantities a weaver would name if asked how a cloth behaves — are blind here, and they are blind for a structural reason: every one of them is a count over the matrix and none of them asks where the counted things are.
A rib is unbalanced by construction
The ribs are the interesting members of the family because the doubling is applied to one system only, and everything comes out asymmetric.
A 2/2 warp rib interlaces 0.750 times per intersection — squarely between plain weave’s 1.000 and the hopsack’s 0.500 — because grouping the picks divides the warp-direction interlacings by two and leaves the weft direction exactly where it was. That is an identity rather than a measurement, and assertRibDoubling checks it at construction: a rib whose interlacing count is not what its own doubling predicts is not built.
The setting is where it becomes practical, and the result has no free parameter in it. At a quarter-millimetre yarn a 2/2 warp rib jams at 20.00 ends per centimetre and 26.67 picks per centimetre — and those are not two arbitrary numbers. The first is exactly plain weave’s, and the second is exactly the hopsack’s. A warp rib may be set as densely in the warp as plain weave and as densely in the weft as a hopsack, and the yarn diameter cancels out of the comparison entirely, so it is true of any yarn.
The two setts stand at (k + 1) to 2k — three to four at a doubling of two, two to three at a doubling of three, five to eight at a doubling of four — and the gap widens as the group does. So a rib cannot be set square, and a mill that sets one square is setting one of its two systems slack. The unbalanced cloth is usually a choice; here it is the construction.
The unbalance is bounded, and nearly all of it arrives at the first doubling
The rib’s two setts stand at (k + 1) to 2k, and that expression is worth pushing rather than tabulating, because it says something the table of cases hides.
It has a limit. As the doubling grows, (k + 1) ÷ 2k falls to one half and stops. A rib can never be more than twice as densely settable in one system as in the other, however far the grouping is taken — not at a doubling of ten, not at a hundred. The construction that looks unbounded in every other respect is bounded in this one.
And the approach is fast. Plain weave sits at a ratio of one and the limit is one half, so the whole range available is half. A doubling of two gives three quarters, which is exactly halfway to the limit. A doubling of three gives two thirds, two thirds of the way. In general a k-fold rib has travelled 1 − 1/k of the distance a rib can ever travel.
So the first doubling buys half the effect and every doubling after it buys less.
That is a design statement rather than an observation, because the other quantity is not bounded at all. The float length is k and grows without limit, and the float limit is what actually stops a cloth being made. Going from a doubling of two to a doubling of four adds a quarter of the available unbalance and doubles the float.
Which is a quantitative account of something the manuals give as a preference: ribs are made at two and three, occasionally four, and essentially never beyond. The reason is not that larger ribs are ugly. It is that the property being bought saturates while the property being spent does not, and the two curves cross early.
Nothing in that argument mentions yarn, because the ratio is a ratio of interlacing counts and the diameter cancels out of it — so the crossing point is the same for a fine cotton and a coarse wool.
The largest cloth on the smallest harness
What a repeat repeats noted in passing that a 2/2 basket has the largest fundamental domain of the three weaves it compared — eight intersections against the 2/2 twill’s four and plain weave’s two — and left the reason as an observation about the diagonal being broken.
The doubled family says exactly what is happening. Each doubling multiplies the fundamental domain by the size of the group. Plain weave’s unit is two. A k-fold rib’s is 2k, because the doubling in one direction destroys half of the diagonal periods and keeps the rest. A k-fold hopsack’s is 2k², because it happens twice. At k = 2: two, four, eight. At k = 3: two, six, eighteen. At k = 4: two, eight, thirty-two.
Set that beside the harness and the two run in opposite directions. Every one of these weaves needs two shafts, whatever k is, because the doubling adds no distinct column. So a 4/4 hopsack is a cloth of thirty-two intersections woven on two shafts, and a 2/2 twill is a cloth of four intersections woven on four.
That relation is not general. For all three of the standard four-end weaves the shaft count times the fundamental domain comes to exactly sixteen, which is the area of the repeat, and it reads like a law — but running it over the four-by-four sweep says it holds for 48 of the 22,874 drafts, about one in five hundred. The weaves that obey it are almost exactly the weaves anybody weaves, and that is a fact about which drafts are useful rather than a fact about matrices.
What was counted, and how
Everything above is computed from the doubled matrices themselves — the family comparison, the densest settings and the unit areas — and all three run while the figures draw.
warpRib and weftRib are generated from the rule — end j is up on pick i when ⌊i/k⌋ + j is even, and its transpose — and each asserts its own doubling before it is returned. hopsack calls cloth.js’s basket and relabels it rather than writing a second body for it: a matt, a hopsack and a basket are one weave with three trade names, and a second implementation would be the divergence the fleet’s shared-kit rule exists to prevent.
The comparison table is every quantity the site takes off a matrix — floats, interlacings, balance, layers, maximumSett in both directions, shafts, periodLattice and threadGroups — computed for both weaves and sorted by comparing the two values, not by choosing. A new measure added to cloth.js would put itself in the right column without anything here being edited, and the assertion that runs beside it requires firmness and float length to be in the blind column and shafts and the fundamental domain to be in the other.
The setting identities are asserted rather than described: the rib’s warp sett is required to equal plain weave’s and its weft sett to equal the hopsack’s, to within floating-point equality, and the ratio is required to differ from one.
The corded stripe, which costs nothing
Put the family back into a stripe and one more result falls out, which follows from the column sets and not from anything about cords.
A column of a draft records only the pick grouping — which picks that end is up on — so a warp rib and a hopsack of the same k have identical column sets. A warp rib’s ends are single and a hopsack’s are paired, and that difference is invisible to a column. So a cloth striping the two needs two shafts in total, and the whole cloth, cords and ground alike, weaves on the plainest harness there is.
The same argument the other way says a weft rib’s columns are plain weave’s exactly, because a weft rib’s ends alternate every pick just as plain weave’s do. So plain ground with weft-rib cords is also two shafts, and a warp rib beside a weft rib is four, which is the sum.
Where the model stops
The group is not a thick thread. Two ends with nothing between them lie touching in a finished cloth, and the model says only that no weft passes between them. Whether they behave as one thread of twice the diameter depends on twist, on hairiness and on how much the finisher has done to the cloth, and none of those is in a matrix. The hopsack’s coarseness is a consequence of the grouping and is not computed here.
The setting model is one model. The setts quoted come from cloth.js’s maximumSett, in which a thread takes one diameter and each interlacing takes one more. It is a counting model and not a geometry, and Peirce’s circular thread gives different numbers. What survives either model is the ratio, because it is a ratio of interlacing counts and the diameter cancels.
Nothing here says how many threads to group. A hopsack of eight would have a unit of 128 intersections on two shafts, and would also be a cloth with floats eight threads long that no finish would hold together. The limit is a float limit and belongs to a different ladder; the arithmetic in this essay would happily carry on.
And the ribs are not corduroy. A cord raised by cutting floats is a third thread system and is not in a binary matrix at all. The cord in a rib is two threads of the ordinary cloth lying together, which is a much smaller claim and the only one this essay makes.
Who found it, and when
The doubled plain weaves are as old as the loom and were named long before anybody wrote a draft as a matrix. Repp, rib, cord, matt, hopsack, basket and Panama are all in use, they do not partition the constructions cleanly, and the same cloth appears under three of them in three countries.
The systematic presentation belongs to the nineteenth-century design manuals and reaches its settled form in Watson’s Textile Design and Colour, where the ribs and the matts are set out as “weaves derived from plain” and are constructed exactly as they are here — by extending the plain order in one direction or in both. Grosicki’s revisions keep that framing, and it is the right one; what the manuals do not do is measure the result, because measurement of a draft was not available to them.
What the trade has always known and stated as a warning is the rib’s setting. A repp is warped densely and picked coarsely, and the reason given is that the cord wants to stand up. The arithmetic says the same thing in a form that can be checked: the two densest setts differ by (k + 1) to 2k, and setting one system to the other’s number puts that system slack whatever the yarn.
What appears to be new is the blindness. The site has been quoting interlacings per intersection as the firmness number since its earliest essays, and this is the first cloth on which it demonstrably fails — not by being inaccurate, but by returning exactly the right answer to a question that turns out not to be the question.
Where the ladder goes next
This is the base rung of the rib weaves, and the ladder above it is about what grouping does to the surface rather than to the matrix: the cord’s height, the way a rib takes a print, and what happens when the two systems are grouped by different amounts.
Beside it, a stripe is a partition of the warp is the same partition at a coarser scale, and a hole with nothing crossing is the same grouping used to open the cloth rather than to close it.
What the pictures here cannot show. Every draft is drawn as squares of equal size, so the two ends of a group are two columns of the drawing and in cloth they are one thread’s width apart with nothing between them. The whole argument is that the grouping matters and the point paper cannot draw it — which is why the brackets are ruled underneath rather than shown in the grid, and why the coarseness of a hopsack has to be asserted from the grouping rather than seen in the figure.
What links here
Computed from the collection rather than written here: the essays that point at this one.
- The four named weaves are corners of a family
- What nothing separates comes out together
- A cord's height has a ceiling and its width has none
- A group is one thread for cover and two for bending
- The back shaft works hardest
- A figure is not a stripe
- A stripe is a partition of the warp
- An unbroken line is not a clean one
- and 2 more
Reads more easily once this is understood
Essays that name this one as worth reading first.
Shares its objects with
Essays naming at least two of the same things, that neither author linked.
- A selvedge holds only where its edge end changes face — both name firmness, float, interlacing, plain weave
- A cloth cannot shrink past its own crimp — both name float, interlacing, sett
- Does a loose weave tear better — both name float, interlacing, sett
- Floats and abrasion — both name float, interlacing, sett
- What else the relative origin decides — both name float, interlacing, shafts
- What holds a thread in a seam — both name firmness, float, interlacing
Named objects
A flat tag is an object no other essay names yet.
FirmnessFloatFundamental domainHopsackInterlacingPlain weaveSettShaftsThread groupWarp ribWeft rib