The zeta function, drawn on a sphere. Values: the path of ζ(σ + it) on the Riemann sphere, where 0 is the south pole and infinity the north — every zero is a pass through one point. Phase walk: a traveller steering by the phase of ζ. The strip's image: a band of the critical strip mapped onto the sphere as a surface. The landscape on a ball: |ζ| wrapped around a ball as bumps and pits. Then cuts: slice the sphere with a flat plane, turn it, and record every point where the path pierces it. Drag to turn, scroll to zoom, double-click to reset.
spiral presets:
speed
Values on the Riemann sphere. Every complex number w has one point on the sphere: 0 at the south pole, ±1 and ±i around the equator, infinity at the north pole; the phase of w is the longitude and |w| sets the height. As t climbs, ζ(σ + it) traces a path, and a zero of ζ is a moment when the path passes through the south pole. On σ = ½ it passes through the pole at every zero; move σ off ½ and the path lifts away from it. That the path meets the pole only on σ = ½ is the Riemann Hypothesis in this picture. The small ring marks where each path starts (t at its lowest). Undo the rotation multiplies every value by eiθ(t), removing the steady turning that the sphere factor adds: on σ = ½ what is left, Hardy's Z(t), is exactly real, so the whole path falls onto the great circle through both poles and ±1 and crosses the south pole at each zero. Off the line it does not.
Phase walk. A traveller moves across the sphere at a steady pace, always heading in the direction given by the phase of ζ(σ + it), so the phase draws the path. On the critical line the phase is −θ(t) — the smooth turning of the sphere factor — plus a flip of half a turn at every zero, so the walk turns steadily and reverses at each zero, leaving a cusp (white). Off the line ζ never vanishes, so there are no reversals. With the rotation undone the heading on σ = ½ is only ever 0 or 180°, and the walk shuttles back and forth along one great circle, turning round at each zero: θ is what curls the walk.
The strip's image. Several vertical lines of the strip and the rungs between them, mapped onto the sphere; the mapping keeps angles, so it is a genuine surface patch. The band covers the south pole exactly where a zero sits inside it; the σ = ½ line (white) runs straight through the pole at each zero. The traveller is a whole rung: one dot on each line at the same t, joined — watch it sweep across the pole at every zero.
Every turn for this n — click one to draw it on the sphere · cyan: waits all n loops · red: comes home early (a repeat)
The atlas — one row per number n up to the total, one square per turn m · click a square to draw it
Prime loops. n points sit around the equator; the start is the white ring. Each loop is the one circle through the point it starts from, the south pole, and the point m steps further round — so every loop has a constant curve and dives through the south pole. After each loop the path has turned m/n of a full turn, and it touches its start again only when it truly comes home. The rule: the path comes home after n loops, unless m and n share a factor, in which case it comes home early — after n ÷ (the shared factor) loops, retracing a smaller shape. The primes: a number n is prime exactly when every turn m = 1 … n − 1 waits all n loops — no turn can cut the journey short. In the atlas the primes are the rows with no red at all. This is an exact description of the primes (the mathematics of star polygons and roots of unity); it is not a faster way to find them, because a turn comes home early exactly when it shares a factor with n, so checking every turn is the same work as checking every divisor. A turn that is not a clean fraction (like 0.41421356…) never comes home exactly; the readout reports its closest approach. The curve of each set. Every loop in a journey has the same curve, and it depends only on the turn: it is exactly |cos(π × turn)|. A tiny turn gives a tight loop (curve near 1, a circle about 45° in radius); a half turn gives a straight line, a great circle (curve 0); turns past a half mirror those before it, so m and n − m share a curve. For n points, the n − 1 turns give the curves |cos(π·m/n)| — the waiting turns (cyan) are exactly those whose m shares no factor with n. Changing turns. Switch the turn rule to let the turn change from loop to loop — so each loop gets its own curve. Give it n and a rate of change, and it solves for the starting turn that brings the path home after exactly n loops, then checks it did not pass through its start earlier; or write any formula for the k-th turn with one unknown x, and it solves for x. With a turn that grows by the same amount each loop, homecoming follows the triangular numbers 1, 3, 6, 10, 15 …, and the atlas option shows what that reveals: numbers built from a single prime (9, 25, 16 …) wait the longest, numbers made of two or more different primes come home early — and the primes are still exactly the rows where every turn behaves alike. Whole circles: normally each loop travels only the arc from its point through the south pole to the next point. Tick the box and every loop becomes its complete circle: the traveller starts each one at the south pole, goes once all the way round — up through its two points and over the north — and back to the pole, then carries on into the next circle, since every circle passes through the pole.
The running product — multiply the loops' factors together, one prime at a time
Where the zeros show up — the size of the whole product as t moves (t from … to … above) · violet: the zeros · grey: jittered primes
The Euler-product spiral. ζ(s) is the product over all primes of 1/(1 − p⁻ˢ). Here each loop is one of those factors: loop p has length π·|1 − p⁻ˢ| (π times the factor's size, so every loop fits on the sphere) and turns an extra arg(1 − p⁻ˢ) — the factor's angle. At s = 1 the factors are exactly (1 − 1/p): this is your sieve spiral, and multiplying all the loops' factors gives Mertens' product, which runs down to 0 because ζ(1) is infinite. For σ above 1 the running product settles on 1/ζ(s) exactly (press s = 2). On σ = 1, away from t = 0, it still settles — that fact is equivalent to the prime number theorem. Inside the strip the product never settles: the zeros, where 1/ζ has poles, cannot be read off one spiral. They appear only when you look across many heights at once, in the scan below: the size of the product of all K loops, as t moves, peaks near the zeros. That is the projector's relation — primes in, zeros out — seen through your spiral, and the grey line — every prime nudged randomly within its own gap, same density but no arithmetic — shows it comes from the exact primes.
Colours: your spiral runs from cyan (the first loops) through violet to pink (the last); amber is ζ's phase walk, grey the θ-walk, the white ring is the start and the cyan dot the traveller. The growing-loop spiral. Your idea, built exactly: loop k is a near-circle of length ℓ(k) on the sphere, and after each loop the traveller has turned an extra δ(k) — the "slightest off-balance". With δ = 0 each loop closes perfectly and the path repeats forever (the perfect circle preset). Any δ ≠ 0 makes the loops precess and the path never close. Two facts about spheres shape this: no loop can be longer than a great circle (2π), so growth in size must stop — lasting change has to come from turning; and on a sphere a loop that turns one flat full turn does not come home — the sphere's curvature shifts it by exactly the area it encloses (Gauss–Bonnet), so the sphere itself supplies a built-in off-balance. For comparison: the θ-walk (grey) is ζ's smooth part with the primes removed, a spiral whose turning speeds up like ½·log(t/2π) forever; ζ's phase walk (amber) is that same spiral plus a reversal at every zero. The reversals are the primes' contribution, and no smooth rule of this kind produces them — which is the point of the comparison.
The landscape on a ball. The strip wrapped around a ball: longitude is t, latitude is σ (violet ring: σ = ½), and the surface is pushed out or in by log |ζ|. Zeros are pits; every pit sits on the violet ring — the Riemann Hypothesis for the range drawn.
Cuts — slice the sphere with a flat plane and record where the path pierces it
The fingerprint — sweep through every angle (or offset) and record all the piercings at once
The four families.Through the start and the centre: every such plane contains the path's starting point and its exact opposite, the antipode; the angle turns the plane around the axis through the start, so a full turn visits every plane through that axis (φ and φ + 180° are the same plane). At φ = 0 the plane also contains both poles. Perpendicular to the start: flat slices at right angles to the start direction — d = 1 touches the start, d = 0 cuts through the centre, d = −1 touches the antipode; the readout reports how close the path comes to the antipode. Through the poles: the plane at longitude φ is crossed exactly when the phase of ζ equals φ or φ + 180°, and also wherever the path passes through a pole — so on σ = ½ every such plane is pierced at every zero. With the rotation undone on σ = ½ the path lies in the plane φ = 0 itself, and every other pole plane is pierced only at the zeros. Horizontal: the plane at height d is crossed when |ζ| = √((1 + d)/(1 − d)); d = 0 is the unit circle |ζ| = 1. The fingerprint. For the angle families the sweep plots every piercing time against the angle, one row per plane — the whole family's record at once. For the offset families the piercings of all planes trace a single curve, the path's distance along that direction, drawn directly. Violet lines are the zeros.
How ζ and θ are computed. ζ: Euler–Maclaurin summation with twelve correction terms and a cutoff that grows with |s|, checked against mpmath to better than one part in a billion across the strip up to t = 1000. θ(t): the imaginary part of log Γ(¼ + it/2) − (t/2)·log π, from the shifted Stirling series, checked against mpmath's siegeltheta. The zeros are Andrew Odlyzko's, to nine decimals.
Does it nearly repeat itself? — Bagchi's recurrence test
What this tests. Take a small disc in the strip and ask: is there a shift τ up the strip where the function looks almost exactly the same across the whole disc? The curve is the largest difference over the disc, |F(s + iτ) − F(s)|, against τ (log scale); dips below the amber line are near-repeats. Bagchi's theorem (1981): the Riemann Hypothesis is true exactly when ζ nearly repeats itself like this — for every such disc to the right of σ = ½ and every closeness, a positive fraction of all shifts work. So the hypothesis is a statement about self-recurrence, not about never repeating. A finite search cannot prove the fraction is positive; it shows what the near-repeats look like and how often they turn up. The theorem is about ζ; the Davenport–Heilbronn run is there for comparison only.