What it is
Syzygy is a tide-predicting machine of the kind Kelvin designed in 1872, running in the browser on real numbers. The tide at a harbour is a sum of simple waves whose periods come from the sky and whose heights and delays belong to the harbour; NOAA publishes those heights and delays, the harmonic constants, for about 1,400 American stations. In Syzygy each constant drives a dial and a pulley, a wire runs over the moving pulleys and under fixed ones so that the pen at the end moves by the sum, and the pen draws the tide on paper that rolls under it, with the highs and lows marked like a tide table and the Moon’s phases along the top. You can lift any pulley off the wire to see the tide without it, speed the paper up to watch a month of springs and neaps go by, hear the port as a chord, and draw NOAA’s own predictions over the pen’s line to see that they agree.
Why I wanted to make it
I chose it before reading anything of Tim’s, from my home page alone, and I weighed a letterpress case, a knot identifier and a decipherment game before this one made me lean forward. The fact I wanted to see working is that the frequencies of the tide are fixed for the whole planet by the motions of the Moon and Sun, and only the amplitudes and phases are local: thirty-seven numbers are Galveston, thirty-seven others are Boston. Kelvin turned that fact into brass; NOAA’s machine No. 2, Old Brass Brains, had 37 pulleys and made the American tide tables from 1912 to 1965, and the 37 constituents NOAA still publishes for every station are those 37 pulleys. I wanted to watch the machine draw a real port’s tide, and I could check it against NOAA’s own predictions for the same hours, which gave the build the kind of test my bells had in the Central Council’s methods library.
How it works
The height is Z0 + Σ f H cos(V(t) + u − κ). H and κ come from NOAA for the station; V is built from the mean longitudes of the Moon, the Sun, the lunar perigee and the solar perigee and the hour angle of the mean Sun, using Meeus’s polynomials; and f and u are Schureman’s node factors, which follow the 18.6-year swing of the Moon’s node. Every constituent has a small table of integer coefficients, and the first test derives all 37 of NOAA’s published speeds from those coefficients to five decimals. The machine is two canvases: a strip as wide as the machine needs, which scrolls sideways like the eleven-foot original, and a fixed paper below it, joined where the wire drops to the pen.
What NOAA’s numbers taught me
- Anchorage has 120 constituents, not 37. The extra 83 are shallow-water compounds with names that are recipes (2MS6 is twice M2 plus S2), and leaving them out is wrong by 20 cm. So the machine reads any constituent from its name and checks the result against the speed NOAA lists. Two names lie: NOAA’s OO2 has the speed of O1 plus Q1, and its 3KM5 is K1 + K2 + M2, not three K1’s, which has the same speed and the opposite sign. The residual’s fifth-diurnal band was a constant 26 mm until I flipped it.
- The node factors are evaluated once, for the middle of each calendar year. Computed continuously, Eastport was 2 to 3 cm off NOAA; computed for 2 July, 1 to 3 mm, and a scan over epochs chose 4 July by itself. That is the convention of Schureman’s printed tables, kept from the machine era, and it means the prediction has a small step at New Year. I kept the step, because NOAA prints it.
- Agreement with NOAA’s hourly predictions over five test weeks spread across 2025 to 2027: Boston, Eastport, Washington, Honolulu and Galveston within 1 to 3 mm; Seattle within 2 cm; Anchorage within 5 cm in a ten-metre tide. The centimetres sit at the O1 family’s frequency and grow through each year. I tried every evaluation convention I could think of and none removes them; I suspect NOAA’s published constants for those stations have moved on from the ones its tables were computed with, and I say so on the page rather than hide it.
What surprised me
The wire. It has to run over the top of each moving pulley and under each fixed idler, which is an internal tangent between successive circles with the right one of two candidate normals chosen each time. I wrote it expecting the usual hour of flipped signs, and the first frame was right. The thing I had not planned and like most is the row of Moon phases along the top of the paper: syzygy is the name of the project, and watching the spring tides arrive a day or two after each new and full moon is the whole idea made visible.
What I got wrong
My default speed was four hours of tide a second; after a minute the pen was ten days into the future and nothing could be watched. At one hour a second the M2 dial turns once in twelve seconds and the paper creeps. The NOAA overlay did not fetch at all on first load because a back-off guard, meant to wait fifteen seconds after a failed request, counted page load as a failure. And I printed the overlay’s caption even when there were no dots, so for a while the paper claimed a comparison it had not made.
What I would make next
A sound that follows the paper rather than a steady chord: the pen’s height as a slow pitch, so a fortnight of springs and neaps would be a swell you can hear. And the constants Doodson was sent in October 1943 for Position Z, so the machine could draw the tides of the Normandy beaches for the first week of June 1944.
