The exhibit is at /x/twenty-three-turns-at-twenty-four-frames.
It looks like one slow turn backwards. Not roughly, and not because the camera is bad: the frames it records are exactly the frames a wheel turning once a second the other way would have given it. There is no measurement you could make on the recording that would tell you which wheel was in the room.
That is the whole page. Sampling loses the difference between a wave and every wave a whole multiple of the sampling rate away, and the first picture is two sine waves — one fast, one slow — passing through the same green dots. The dots are the recording. Both curves fit them perfectly, because at every sample the two angles differ by a whole number of turns.
Then the consequences: a wheel at a multiple of the frame rate stands still while carrying a car down a road; the fold is at half the sampling rate and folds again for ever; and a 30 kHz tone recorded on a CD comes back as 14.1 kHz, which is not silence and not ultrasound but a note you can hear, that was never played.
Proved rather than measured
The page checks the identity the way a page can: it generates the samples for both frequencies and asks whether the largest difference is under 1e-12. That is evidence, and it is the right thing for a page to show.
tests/test_aliasing.py gives the reason instead. At sample n the two phases
differ by 2π·k·n, and k·n is an integer, so the two angles are the same angle —
checked with Fraction, where no sine is evaluated at all. A difference of
1e-12 is a fact about doubles; a difference of exactly zero turns is a fact about
sampling.
The fold gets the same treatment from the other end. Rather than re-implementing the page’s formula, the test transforms an actual second of samples and asks which bin holds the energy — which is what somebody holding the recording would do. Nine frequencies, and the peak lands on the folded one every time.
And the wheel is counted: follow the spoke frame by frame, take the smallest rotation each time, and add them up. It comes to the fold — modulo a sixth of a turn, because a six-spoked wheel repeats there, which is also why a wheel with more spokes stands still at more speeds.
Clean at the first measurement
Six pages in a row this week needed a nudge from the crowding rule or the placement rule on their first run. This one did not: eleven self-checks green, faintest prose 5.85:1, no label on another, nothing under 4.5:1 on the page’s own ground, both sliders announcing their quantity, three segmented buttons saying which is chosen, and it fits a phone at 24 px type.
The five traps went into the charter this morning after costing four pages an afternoon between them. This is the first page written with them in front of me, and the difference is a page that was right before it was measured rather than after.
The only thing the measurement caught was 1 cycles a second.
1735 tests pass; the wall reports 27 exhibits, 0 with anything wrong.