Interactive

Zeta Function Explorer

The partial sums of ζ drawn as they are computed. This is the instrument the project used to look at the object — the spiral, its packets, the critical line, and the walk that Paper 1 is about.

Desktop. The explorer is built for a large screen and a pointer. It loads about a megabyte of zero data on start. It will not resize or re-centre your view on its own — the camera stays where you put it. The ⚡ button at the bottom left holds what runs while an animation is playing: by default the S-plane field is drawn when the run stops rather than on every step, which is what keeps a sweep smooth at large t. Everything it holds back can be switched back on.

LMFDB advanced explorer

The same instrument, taking any Dirichlet L-function by name. Type a character label — 5.2, 7.3, 13.7, or 1 for ζ — and the walk redraws as that function.

Taking a name from the LMFDB. The names are the ones used by the L-functions and Modular Forms Database. To draw a function you found there:

  1. Open lmfdb.org → Characters → Dirichlet and pick a character (or open any degree-1 L-function page).
  2. Its name is the pair of numbers in the page heading and in the address: lmfdb.org/Character/Dirichlet/5/2 is the character 5.2 — conductor 5, index 2.
  3. Type that into the L-FUNCTION box in the explorer’s panel, top right, and press Draw or hit Enter. The walk redraws as that function; the camera does not move.

The box takes whatever you would actually copy off the database: the character name 5.2, the full L-function name 1-5-5.2-r1-0-0, or a pasted URL of either page. 1 or ζ goes back to zeta. Only degree 1 — Dirichlet characters — is drawn; anything of higher degree is refused with a message rather than drawn wrongly, and an imprimitive name is drawn but says so. If you would rather not leave the page at all, starters is a short curated list and browse lists every primitive character of a conductor you choose. The panel’s ? repeats all of this inside the explorer, and the link beside it goes to the page on the database for whichever function is currently drawn.

The zeros are the drawn function’s, if you ask for them. Press compute in the panel and the explorer finds that L-function’s own zeros on the critical line and hands them to every instrument that plots or counts zeros — the markers, the zero-index navigator, the window counts. They are located by the sign change of the Hardy-type Z built from that character’s root number, computed in your browser through the same Hurwitz evaluator the rest of the page uses, to about 1e-9 in t. The panel prints the functional-equation residual beside the count as its own check. Until you press it the plotted zeros are ζ’s and the panel says so; the Gram points, θ(t) and the zero-index numbering stay ζ’s either way, and the panel says that too. This is a numerical scan of a finite window — it certifies nothing and decides nothing about any zero of anything.

Two more things in that panel: ζ ghost lays ζ’s walk faintly under the drawn one in the flat view, at the same σ, t and N, so the two can be compared in one frame; and the readout carries the invariants that explain the picture — conductor, order, parity, √q, the Gauss sum and the root number ε, with a line on what each changes in the walk.

A view can be linked to directly, function and all — these open the explorer with the function already drawn: 5.4 (real, even) · 5.2 (order 4, odd) · 13.7 (order 12) · 23.5 (order 22). The explorer’s own link to this view button carries the drawn function too, so a picture of one of these can be sent as it stands.

Credit, and what is and is not fetched. The names, and the conventions behind them, are the LMFDB’s. That database was built to make objects like these — L-functions, modular forms, characters and their invariants, catalogued and cross-linked — openly accessible for research, and this explorer is a small use of what it made findable. It is an independent project, not affiliated with or endorsed by the LMFDB, and the labelling convention was checked against that database’s own published coefficients before this shipped. The coefficients themselves are computed in your browser, not fetched — a stored list runs out after a hundred terms and this walk runs far past that — so nothing is downloaded and no request is made to the database. The zeros too, when you ask for them, are computed here rather than read from anywhere. Whatever on screen is still ζ’s while another function is drawn, the panel names.

Copernicus — pinning the picture at ζ(s)

The advanced explorer has a switch at the top of its left panel, ☀ Copernicus — peg at ζ(s). It changes one thing: which point of the picture is held still.

The walk adds up 1, 2−s, 3−s, … one term at a time, starting from 0. Normally the picture is pinned at that start, the way Ptolemy’s diagrams of the sky are pinned at the Earth. But 0 is not what the walk moves around. Its late terms coil round the value the sum is heading for, ζ(s): the gap between the partial sum and ζ(s) is, to leading order, a spiral of radius N1−σ/|s−1|. So ζ(s) is the Sun of this picture, and with the switch on the picture is pinned there instead.

At a single s this only slides the picture across — the spiral is the same shape either way. The difference shows when s moves. Pinned at 0, the spiral’s centre wanders across the screen as ζ(s) changes. Pinned at ζ(s), the centre stays put and the starting point wanders instead.

⊕ Earth. A second switch just below it marks that starting point — the empty sum, 0, where the first step leaves from — and draws where it goes. Seen from the Sun it sits at −ζ(s), exactly |ζ(s)| away, and as you move s it traces −ζ(s) itself: the values of ζ along your path through the s-plane, turned half a circle about the Sun. It passes through the Sun exactly where ζ(s) = 0. On the critical line, with co-rotating θ also switched on, the Earth moves along a straight line — its position is −Z(t), Hardy’s function — so each zero is a crossing of the Sun. In the 3D view the Earth is a green rod dropped onto the plane, with a ring where it lands and its orbit drawn along the plane; the flat view marks it ⊕ with a dashed line to the Sun. The orbit is computed from the function’s exact values along the path s takes, not joined up between frames. Pinned at 0 the Earth stands still, as Ptolemy’s does. For any other drawn L-function the Earth is −L(s) in the same way.

Two views to open directly: σ = 0.7, pinned at the Sun, Earth on — press ▶ under Real · Imaginary drift animation and the Earth loops round a centre that does not move · the critical line, co-rotating — the Earth runs back and forth through the Sun. The explorer’s own link to this view carries both switches.

This is a change of viewpoint, not a result. Nothing in the mathematics moves, and the picture decides nothing about where any zero is.