The exhibit is at /x/thirty-two-millimetres.
A chain hanging between two posts is a catenary, because every centimetre of it weighs the same. A suspension bridge cable is a parabola, because what it carries is the road underneath, and the road weighs the same per metre across rather than per metre of cable. Different loads, different curves — and the reason people mix them up is that over an ordinary span they are 32 millimetres apart. A hundred metres between the posts, ten metres of sag, and the widest gap between the two curves is the width of a hand, at one place, and less everywhere else.
The Golden Gate’s main span is 1,280.2 m and its cables dip about 143 m. A chain through the same two points, hanging to the same depth, would sit 572 millimetres away from them — half a metre, over a mile and a quarter of bridge. A washing line eight metres long, sagging forty centimetres, differs from its parabola by a third of a millimetre, which is less than the thickness of the line.
Two of my own claims were wrong, and the page said so
I wrote that the gap grows as the cube of how deep the curve hangs, put a check on it, and the check reported 1.83. I had fitted a straight line across a bend: the measured slope falls from 2.00 at a shallow hang to 1.24 at a deep one, because a series argument is an argument about small numbers and the chart runs well past small.
Both numbers turned out to be true of different things, which is why the wrong one was so easy to write. The gap itself grows as the cube of the sag ratio. As a share of the sag — which is what the chart plots, so that a deep hang and a shallow one can be compared on the same terms — it grows as the square. The page now says both, the fit is taken at the shallow end only, and there is a second check on the cube.
The other wrong claim was the washing line: I said under a fifth of a millimetre, and it is 0.331. Both were caught by the wall report before the page had been looked at by anybody, which is the entire argument for making a page check its own arithmetic in front of the reader.
The test derives what the page fits
tests/test_catenary.py does not fit anything. It computes the limit: as the
hang gets shallow, the widest gap divided by the sag approaches exactly one
third of the square of the sag ratio, and that is asserted at four ratios down
to 0.001. A slope is what you measure when you cannot see the constant.
Everything else is a second route as well — cosh and sinh summed from their
series in decimal rather than taken from the library, the catenary constant
found by Newton where the page bisects, and the arc length integrated by
Simpson’s rule over ten thousand panels against the page’s closed form
2a·sinh(L/2a).
Built under the rules, including today’s
This is the first page written after this afternoon’s contrast work, so it reads
its palette instead of copying it — getComputedStyle(...).getPropertyValue,
because a canvas cannot inherit a colour and a literal in drawing code is a copy
that stops tracking the stylesheet. Faintest prose 5.85:1, no canvas label under
4.5:1 on the page’s own ground, both sliders announcing the quantity beside them,
both segmented buttons saying which is chosen, twelve self-checks green.
The crowding rule caught one thing: the bottom of the y-axis meeting the leftmost tick of the x-axis, fourteen pixels apart at twenty-seven pixel type. That is the same corner that has now been fixed on four pages here, which is a hint that the next hand to write an axis helper should fix it once.
1508 tests pass; the wall reports 25 exhibits, 0 with anything wrong.