Zeta Landscape Lab
The drift of the prime count is a sum of waves, one per zero. Here is where those zeros live: the Riemann zeta function drawn as a field over the complex plane. Height is the size of ζ, color is its phase, and the zeros are the pits — the points the phase winds around. The Riemann hypothesis is a statement about this landscape: every pit in the strip lies on one vertical line. The second tab shows the waves themselves as a two-dimensional field, so interference reads as texture instead of a single wiggling curve.
Window and view exact
ζ(σ + it) — move the mouse for the value at any point
The terrain view maps log|ζ(s)| to height and lights it from the upper left, like a relief map: zeros are deep pits, the pole at s = 1 is a spike, and the flat plain to the right is where the Euler product converges. The phase view assigns a hue to arg ζ; walk a small circle around a zero and the hue runs through the whole wheel exactly once — that winding number is the topological signature of a zero, and it is what does not change under any continuous deformation. The zero-curve view draws the two curves Re ζ = 0 (cyan) and Im ζ = 0 (amber); ζ vanishes exactly where they cross, so RH is the statement that every crossing inside the strip sits on the dashed line. The trivial zeros at σ = −2, −4, … on the real axis are real pits too, but they are not the ones RH is about.
Which field finite
The field, and its column sum
Every row is one wave; every column is one moment. Reading down a column tells you how the waves happen to be aligned there, and the strip underneath is that column added up — the drift, or the factor count. Vertical bands of one color are moments of constructive interference; columns with mixed color are cancellation. In the zero-wave field the rows are drawn in log-time, where each wave has a fixed frequency, so the field is a set of horizontal stripes whose spacing shrinks down the page — the pattern the explicit formula is made of. In the packet field the rows are the prime-power coordinates and every cell is exactly 0 or 1: a prime is a column that is empty below its own row.
How ζ is computed here, and what is and isn't shown
For Re s ≥ ½ the lab uses Borwein's alternating-series algorithm for the Dirichlet eta function and ζ(s) = η(s) / (1 − 21−s), with enough terms that the error is far below the pixel. For Re s < ½ it uses the functional equation ζ(s) = 2s πs−1 sin(πs/2) Γ(1−s) ζ(1−s), with the gamma function from a Lanczos approximation, all in complex logarithms so nothing overflows. The window is capped at t ≤ 200 because the term count grows with t; above that a Riemann–Siegel implementation would be the right tool.
Spot checks the lab's own code passes: ζ(2) = 1.6449…, ζ(½) = −1.4604…, ζ(−1) = −1/12, |ζ(−2)| = 0, |ζ(½ + 14.1347i)| < 10−9.
The tabulated zero markers are the first 1,000 non-trivial zeros from Andrew Odlyzko's tables. Every one of the first 1013 zeros has been verified on the line by other means; this lab does not verify anything, it draws. Whether the pits line up in the window you render is a picture of a known fact, not evidence for the unknown one.
What "topological" buys you: the winding of the phase around a point is an integer, and it cannot change under small perturbations of the function. That is why zeros are robust objects and why counting them (the Riemann–von Mangoldt formula, which counts zeros up to height T by exactly this winding along a contour) is possible without locating each one. What topology does not do is tell you where on the horizontal axis a zero sits. The winding number is the same for a zero at σ = ½ and a hypothetical one at σ = 0.7; RH is a metric statement, not a topological one, and that is precisely why it is hard.