Computed, not illustrated

Physics visualisations

Every animation here is produced by numerically solving the equation it depicts. If the physics changed, the picture would change with it — so you can measure a number off a frame and trust it.

Why this matters

A drawing of a wavefunction can look convincing and still be wrong. These frames come from a split-step integration of the Schrödinger equation and from applying real Grover operators to a real amplitude vector. Each card states a quantity that was checked against the generated data.

How quantum mechanics was built, 1900–1964

Ten steps from Planck’s desperate fix to Bell’s testable inequality — each with the equation that changed things.

verified
A timeline advancing through ten discoveries from Planck in 1900 to Bell in 1964, each with the physicist, their equation and its significance
Watch for
The marker walks the timeline. Note how fast 1924–1928 moves: de Broglie to Dirac in four years.
Checked
Each entry carries the equation its author actually published, in that year.
Method
Timeline rendered from the dated discovery list; equations typeset from LaTeX.

The ultraviolet catastrophe

Classical physics predicted infinite energy at short wavelengths. Quantising energy was the only fix — and it started everything.

verified
Planck blackbody curve against the classical Rayleigh-Jeans prediction, which diverges at short wavelengths, as temperature rises from 3000K to 7000K
Watch for
The dashed classical curve shoots off the top of the chart. The quantised curve turns over and peaks.
Checked
The numerical peak matches Wien’s displacement law to within 0.3% across 3000–7000 K.
Method
Planck’s law evaluated directly against the Rayleigh–Jeans limit, SI constants.

Bohr’s atom and the hydrogen spectrum

An electron drops between fixed levels and emits a photon. The four visible Balmer lines build up as it goes.

verified
Hydrogen energy level diagram with an electron dropping from n=6, 5, 4 and 3 down to n=2, each transition emitting a coloured spectral line onto a spectrum panel
Watch for
Each drop emits one line at a specific colour. Bigger energy gaps give bluer light.
Checked
Wavelengths computed from the Rydberg formula land within 0.03% of the accepted Balmer values (656.11 vs 656.3 nm).
Method
Eₙ = −13.606/n² eV; wavelengths from the Rydberg formula; colours from the visible spectrum.

Born’s rule: probability from amplitude

One measurement tells you almost nothing. Thousands reconstruct |Ψ|² exactly — which is all Ψ ever promised.

verified
A histogram of repeated position measurements gradually converging onto the theoretical probability density curve
Watch for
The L¹ error between measurement and theory, printed live, falls as samples accumulate.
Checked
Error drops from 1.21 to 0.16 over 2,475 samples, converging monotonically on the true density.
Method
Sampling a two-peak |Ψ|², normalised identically to the theory curve for direct comparison.

Deriving the Schrödinger equation

Ten steps from the classical energy of a particle to iℏ ∂Ψ/∂t = ĤΨ, and on to what a quantum gate actually is.

verified
Ten-step derivation building from classical energy through de Broglie and Planck to the time-dependent Schrödinger equation and the Born rule
Watch for
Each step keeps the previous two on screen, so you can see the substitution that turns E and p² into operators.
Checked
Ends at U = e^(−iĤt/ℏ) — the unitary a quantum gate implements.
Method
Rendered from the derivation chain; each equation typeset from LaTeX.

Quantum tunnelling

A wavepacket meets a barrier taller than its energy. Classically nothing gets through. Part of it does.

verified
A Gaussian wavepacket travelling right, striking a potential barrier, partly reflecting and partly passing through
Watch for
The probability density splits at the barrier. The transmitted and reflected fractions are printed live.
Checked
Transmitted + reflected = 1.000 at every frame — probability is conserved. 4.6% tunnels through.
Method
Split-step Fourier integration of iℏ∂Ψ/∂t = ĤΨ, ħ = m = 1, 1024 grid points.

Heisenberg uncertainty in motion

A free particle’s position spreads while its momentum spread stays fixed — the uncertainty product only grows.

verified
A free Gaussian wavepacket spreading out over time while its momentum width stays constant
Watch for
σₓ climbs frame by frame; σₖ does not move. Their product is printed on screen.
Checked
σₓ·σₖ starts at exactly 0.500 — a minimum-uncertainty Gaussian — and never drops below it.
Method
Same TDSE solver with V = 0; σₖ measured from the Fourier transform of Ψ.

Double slit, one detection at a time

Each detection is a single dot. The fringes are not in any one of them — they emerge from thousands.

verified
Individual particle detections accumulating on a screen until an interference fringe pattern emerges
Watch for
The early frames look random. The predicted |Ψ₁+Ψ₂|² curve is overlaid so you can watch the data converge onto it.
Checked
Detections are sampled from the true two-slit intensity, including the single-slit envelope.
Method
Sampling from sinc²(β)·cos²(δ) — the exact two-slit intensity with finite slit width.

Phase precession on the Bloch sphere

Phase evolution moves the state without changing any measurement probability in the computational basis.

verified
A Bloch vector rotating around the vertical axis at constant polar angle while measurement probabilities stay fixed
Watch for
The arrow sweeps a full circle. P(0) and P(1) never budge — which is exactly why phase is invisible until you interfere.
Checked
Polar angle held fixed, so P(0) = cos²(θ/2) is constant by construction.
Method
Bloch vector traced at fixed θ with φ advancing through 2π.

Grover: oracle and diffusion, step by step

Watch the two operations that make Grover work, on real amplitudes, one at a time.

verified
Amplitude bar chart across sixteen basis states; the oracle flips the target amplitude negative and diffusion reflects all amplitudes about their mean
Watch for
The oracle only flips a sign — the bar heights are unchanged. Diffusion does the amplifying, reflecting about the dashed mean.
Checked
P(target) goes 6.25% → 47% → 91% → 96%. 1/N = 6.25% for N = 16, and ⌈π/4·√16⌉ = 3 iterations.
Method
Real amplitude vector; oracle applies a sign flip, diffusion applies 2⟨a⟩ − a.

Regenerate at any resolution with python3 scripts/generate_physics_animations.py --width 1200