160 interactive modules bring geometry, topology, fractals, calculus, algebra, probability and algorithms into view. Rotate a surface, change a construction or follow an algorithm one step at a time.
A chain you can read - outcome, sum, mean - and two charts on one log-n axis with one cursor: the mean's deviation walks into a funnel of ±2σ/√n, while the excess count S_n − nμ grows like √n and never settles. Predict first whether the excess goes to zero too, then let the run climb; six other runs under the same conditions stand beside it. A forced streak is forgotten by the mean and kept by the count; for the coin the numbers are exact from the binomial; and a Cauchy source, which has no mean, never settles at all.
Two thousand experiments ask whether a mean is zero; the share that rejects at α = 0.05 is counted. With no effect it is 5 % - the type I rate - and the p-values are uniform. With an effect it is the power, which rises with the effect and with n: half a σ is found 32 % of the time with ten observations and 82 % with thirty-four. Look at the data every five observations and stop when p dips below 0.05, and the false positive rate is a quarter. Everything is counted; Student's curve comes from the code.
Monty Hall: switching wins 2/3 - and only 1/2 if the host did not know where the prize was, though he opened the same door. The two children: 'at least one is a boy' makes two boys 1/3, 'the older is a boy' 1/2, 'a boy born on a Tuesday' 13/27. Bertrand's chord: a random chord is longer than the triangle's side with probability 1/3, 1/2 or 1/4, depending on what 'random' means. Every answer is an exact fraction and a count over twenty thousand seeded trials, and the picture shows the procedure that produced it.
There are only a few ways to make a random number with a given distribution, and all of them start from a uniform. Push it through the inverse of the CDF (exponential, Cauchy, triangular). Take two and turn them into a pair of normals (Box-Muller). Throw darts at a box around the density and keep the ones under the curve (rejection - and the share kept is π/4 for the semicircle). Count exponential waits in a unit of time (Poisson) or heads in ten coins (binomial). Follow one numbered token through the machine, then hold the whole sample against its exact curve.
Explore amplitude amplification in an unstructured search. A phase oracle changes the sign of the marked amplitude without changing probabilities in the computational basis. The diffusion step turns relative phase into a higher success probability. Too many iterations reduce that probability again.
Four small circuits with one turnable phase in them, read in the Z, X or Y basis. The phase is a real, located property of the state - the Bloch vector walks the equator with it - and in the wrong basis it is completely invisible: over a whole turn the largest change in any outcome probability is 1e-16. Put a second Hadamard at the end and the same phase decides the answer with certainty. That is interference, and it is the whole difference between a quantum computer and a coin.
Alice's station holds a message qubit and half of a shared pair; Bob's holds the other half. Walk the protocol step by step - CNOT, H, measurement - and send the two bits down an ordinary channel. Stop them before they arrive and try to guess them; then pick Bob's correction and compare what he holds with the message. Until the bits arrive Bob's qubit is I/2 whatever was sent, and after measuring Alice keeps no copy.
A black box computes f from n bits to one bit, and you may only ask it about inputs. To be certain whether f is constant or balanced can take half the table plus one call. Hadamard everything, ask ONCE with the answer as a sign, Hadamard everything again, and the all-zeros outcome settles it. The truth table here is clickable, so the promise can be broken by hand: for any table at all the answer comes up with probability (1 - 2k/N)². And when the table happens to be f(x) = s·x, the one call returns s itself.
Inject X, Z or Y on a 3D code board, read the syndrome and reveal the recovery. Compare the remaining logical operator and input-state fidelity, then test exact probabilities against an ensemble of runs.
A brass-and-wood division bench shows why gcd(a,b)=gcd(b,r). Follow the remainder, inspect exact Bézout coefficients and continued fractions, compare pairs and explore a reproducible sample.
A dial of m marks and one hand. Adding a step draws a star that closes after m/gcd(s, m) moves; multiplying draws a cycle whose length divides phi(m). Some moduli have no primitive root at all, and the card says so - that is a theorem, not a failed search.
Work the sieve by hand on numbered tiles: take the next divisor, predict where its wave starts, and watch it strike its multiples - the ones already struck are only touched. Beside it, pi(x) counted against the approximations x/ln x and Li(x).
One message travels through two modular powers on a wood-and-brass desk. Execute the actual integer steps, inspect small permutations or large sampled maps, and find a divisor with a counted search.
A sorting table: keys as paper tags, a carriage that hashes each one and drops it into the bin its hash names, a collision as two different keys in one bin. The hash is a named function - the sum of the codes, the base-31 polynomial, FNV-1a - or the uniform oracle behind the birthday curve. Edit a key, watch its hash computed character by character, flip one bit and count the hash bits that move; compare two functions on the same keys.
Three sorts run the same array at the same speed in comparisons, so the first to finish is the one that asked fewer questions. What decides the race is disorder, not size: on a sorted input insertion sort takes 63 comparisons where quicksort takes 2016.
Two copies of one maze, two traversals, one cell per tick. The layer breadth-first finds a cell on is the shortest distance - an identity. Depth-first is never shorter, and how much longer depends on where you are going.
Terrain where a step costs the price of the cell you enter, and the wave of settled vertices spreads by price rather than by distance. One slider drops a negative edge on the map and has three measured regimes: right, wrong, and no shortest path at all.
Heaps of stones and their binary digits below. A column with an odd number of ones burns red; with no red columns the player to move has already lost. The card checks that rule by solving the whole game tree, not by quoting it.
Some modules belong to more than one Suite. Shared experiments have one description here.