HomeMathematicsRiemann Zeta Function — Critical Strip & Zeros

ζ Riemann Zeta Function — Critical Strip & Zeros

Visualise the Riemann zeta function on the complex plane: domain-colour ζ(s), walk the critical line Re(s)=½ and watch |ζ| dip to zero at the non-trivial zeros tied to the primes.

Mathematics3DAdvanced60 FPS
riemann-zeta ↗ Open standalone

About this simulation

This visualiser plots the Riemann zeta function ζ(s) over the complex plane by domain colouring: every pixel is a complex number s = re + i·im, and its hue encodes the argument (phase) of ζ(s) while its lightness encodes the modulus |ζ(s)|. Because the defining series 1 + 1/2ⁿ + 1/3ⁿ + … only converges for Re(s) > 1, the simulation instead sums the Dirichlet eta series η(s) = Σ(−1)ⁿ⁻¹/nⁿ, which converges for Re(s) > 0, and recovers ζ via the identity ζ(s) = η(s) / (1 − 2¹⁻ⁿ). This lets it reach into the critical strip 0 < Re(s) < 1 and reveal the non-trivial zeros that sit — as far as anyone has ever checked — exactly on the critical line Re(s) = ½.

🔬 What it shows

A domain-coloured map of ζ(s): the vertical white line marks the critical line Re(s)=½, the two dashed lines mark the edges of the critical strip (Re(s)=0 and Re(s)=1), and white dots mark the first ten known non-trivial zeros, all lying on that single line. Switching to the "Critical line" view instead plots |ζ(½+it)| as a curve against height t, dipping to zero at each zero.

🎮 How to use it

The Terms slider (10–200) sets how many terms of the eta series are summed — more terms trade speed for accuracy. Zoom (max Im) (10–50) sets how high up the imaginary axis the view extends. Speed controls how fast the yellow point climbs the critical line. Walk line animates the climb, Step advances it once, and Reset returns to t=0; the View buttons switch between the complex-plane map and the critical-line plot.

💡 Did you know?

Mathematicians have verified over 10 trillion non-trivial zeros of ζ(s) by computer, and every single one has landed exactly on the critical line Re(s)=½. Proving this holds for all of the infinitely many zeros — the Riemann hypothesis — is one of the seven Clay Millennium Prize Problems, worth one million US dollars, and remains unsolved since it was first proposed in 1859.

Frequently asked questions

How does the simulation compute ζ(s) inside the critical strip?

The plain series 1/1ⁿ + 1/2ⁿ + 1/3ⁿ + … only converges for Re(s) > 1, so it cannot be summed directly inside the strip. The code instead sums the alternating Dirichlet eta series η(s) = Σ(−1)ⁿ⁻¹ n⁻ⁿ for n from 1 up to the Terms value, which converges for Re(s) > 0, then divides by the factor (1 − 2¹⁻ⁿ) using complex division to recover ζ(s) = η(s) / (1 − 2¹⁻ⁿ).

What do the hue and lightness of each pixel mean?

Each pixel corresponds to a complex point s, and its colour is computed directly from ζ(s). The hue is set by the argument (angle) of ζ(s) in the complex plane, mapped across the full 360° colour wheel, while the lightness is a compressed function of the modulus |ζ(s)|: as |ζ(s)| shrinks toward zero the pixel darkens toward black, which is why zeros of ζ appear as small dark points where every hue meets.

What are the critical strip and the critical line?

The critical strip is the vertical band 0 < Re(s) < 1, shown in the simulation between two dashed lines. The critical line is the line Re(s)=½ running down its centre, drawn in solid white. The unproven Riemann hypothesis states that every non-trivial zero of ζ(s) lies exactly on this critical line rather than merely somewhere inside the strip.

Why does |ζ(½+it)| dip to zero at specific heights?

In the "Critical line" view the point s=½+it climbs straight up the critical line as t increases, and the plot tracks the modulus |ζ(½+it)|. The simulation marks ten known non-trivial zeros at t ≈ 14.13, 21.02, 25.01, 30.42, 32.94, 37.59, 40.92, 43.33, 48.01 and 49.77; every time the walking point reaches one of these heights, |ζ| genuinely falls to zero because s is a root of the zeta function there.

Why does changing the Terms slider change the picture?

The Dirichlet eta series is an infinite sum, and the simulation can only add up a finite number of terms (10 to 200, chosen by the slider) before stopping. With few terms the partial sum is a rougher approximation to the true ζ(s), which can slightly blur colour boundaries and zero positions; with more terms the sum converges closer to the exact value at the cost of more arithmetic per pixel, which is why higher Terms settings render more slowly.

How are the zeros of ζ(s) connected to prime numbers?

Through its Euler product, ζ(s) equals an infinite product over all primes p of 1/(1−p⁻ⁿ), which is why its zeros are not arbitrary: Riemann's explicit formula expresses the exact count of primes up to any number as a smooth main term plus a correction built from oscillating terms, one per non-trivial zero. The precise locations of the zeros shown in this simulation therefore directly control how evenly or unevenly the primes are distributed.

⚙ Under the hood

Visualise the Riemann zeta function on the complex plane: domain-colour ζ(s), walk the critical line Re(s)=½ and watch |ζ| dip to zero at the non-trivial zeros tied to the primes.

Riemann zetacomplex analysiscritical lineprime numbersCanvas 2D

3D · Three.js / WebGL renderer · 60 FPS target · runs fully client-side, no install

What did you find?

Add reproduction steps (optional)