# The spirograph nodes - 2026-09-10 [Proved] One curve of a circle roulette crosses itself exactly `a(b - 1)` times when its seat obeys `0 < abs(p) < min(1, M/b)`, for `a/b` the ring over the wheel in lowest terms and `M = a - b` inside, `M = a + b` outside: the crossing equation reduces on the torus to `A abs(sin(b x)) = C abs(sin(M x))` with `A = r M / b` and `C = r abs(p)`, every root carrying exactly `a` half sums, and that is the zero set of the imaginary parts of `A e^(i b x) -+ C e^(i M x)`, whose arguments climb strictly while `A > C` and `A b > C M`, so each takes exactly `2b` zeros and, once `C > 0`, the two share only `x = 0` and `x = pi`. Witness: research/lab/rs/roulette-nodes, mrlylab::roulette::nodes. - 2026-09-10 [Proved] Two distinct curves of one wheel on a circle track cross exactly `2ab` times when both seats lie in the window, `0 < abs(p) < min(1, M/b)`, and share a radius: the half difference equation gains only a phase, each branch keeps its `2b` zeros and the two share none, so the root count is `4b` and the crossing count `a 4b / 2`. For seats of different radii the same count follows from the sufficient bound `2 A sqrt(1 - k^2) > r(abs(p) + abs(q))` with `k = r sqrt(abs(p) abs(q)) M / (A b)`, far from necessary: inside `7/3` at seats `0.950` and `0.672` the bound reads `1.604` against `1.622` and fails while the count is 42. Witness: research/lab/rs/roulette-nodes. - 2026-09-10 [Verified] A whole design carries one node count, `2ab C(k, 2) + k a(b - 1)` crossings with `k` its distinct curves, so the design enters only through `k`: 5553 cells and 4455175 crossings over both tracks, every `a/b` in lowest terms with `a` at most 20 and `b` at most 10, four designs and seven reaches inside the window `0 < abs(p) < min(1, M/b)`, every count three sample counts alike; 143 cells are aligned and printed, 26 need a further doubling, none goes unsettled, and two disagree by a few crossings at a near tangency, inside `20/3` at seat `0.250` and outside `10/9` at `0.400`, both read as the law by the torus. Witness: research/lab/rs/roulette-nodes. - 2026-09-10 [Verified] A roulette cuts the plane into `nodes + 2` regions, the unbounded one among them, at a generic reach with every seat in the window `0 < abs(p) < min(1, M/b)`, `nodes` counting distinct transversal double points: the picture is a connected 4-regular plane graph and Euler gives the count, `k = 1` with `b = 1` carrying no node and 2 regions by Jordan. A flood of the rastered walls at 1600 and at 2400 pixels returns 2, 7, 16, 8 and 32 for one seat inside `3/1`, `5/2`, `7/3` and two seats inside `3/1`, `5/2`, and 1206 for the carpet inside `7/3` at the alignment reach, where 1288 crossings sit at 1148 nodes of 2352 branches and the count is `branches - points + 2`. Witness: research/lab/rs/roulette-nodes. - 2026-09-10 [Verified] The self law ends at the crest of `abs(sin(b x)) / abs(sin(M x))`, the least of its local maxima, never below the seat threshold `C/A = 1` because the ratio reaches 1 at the midpoint of two consecutive zeros of `sin(b x)`: over 213 cells and the 31 inside ratios with `a < 2b` and `a` at most 20, every count below the crest is `a(b - 1)`, every count above it is smaller, always a multiple of `a`, never rising, and every ladder ends at `a(a - b)`. At exactly `C/A = 1` the curve runs through the centre, `a` branches meet, and the counts 25 at `7/5` and 31 at `7/6` are neither the law nor a multiple of `a`. Witness: lab/rs/roulette-nodes. - 2026-09-10 [Proved] Two pencils on a circle track `a/b` in lowest terms draw one curve if and only if a rotation of `2 pi/b` about the wheel's centre carries one seat to the other; the converse is read off `abs(z)^2 = A^2 + C^2 + 2 A C cos(a u - arg p)`, whose phase runs over `a` turns, with Niven's theorem cutting the square lattice to the quarter turns. So curves coincide by half turns when `b` is even and by quarter turns when `4` divides `b`, and `k` is the pencil set modulo the rotations of order `gcd(b, 4)`; on a line track a seat's angle is a shift, so two seats of one radius draw translates of one shape and never one curve. Witness: mrlynum::spirograph::representatives, lab/rs/roulette-reaches, spirograph.md. - 2026-09-10 [Refuted] The loop threshold is not where a design's node laws end: inside a track with `a < 2b` the seat leaves the centre path first and the counts fall while `abs(p)` is still under 1, `7/6` reading 35, 21 and 7 self crossings at seats `0.158`, `0.175` and `0.9` against `a(b - 1) = 35`. One seat past that threshold is enough to lose the pair law where the self law still holds: inside `7/4` at seats `0.900` and `0.636` two curves cross 42 times against `2ab = 56` while both self counts hold at 21 under the crest `1.333`. Past it the pair count is no function of `a` and `b`, reading 6 against 12 at `3/2` and 8 against 24 at `4/3`. Witness: lab/rs/roulette-nodes.