Add up enough independent draws from any honest distribution and their sum forgets where it came from: it curls into the same bell every time. Sum n uniform(0,1) draws over many trials and the histogram converges on N(n/2, n/12) — a mean that grows and a spread that grows, but a shape that is fixed. Down the center, data flows: the draws go in, the engine sums and bins them, the fitted bell comes out. The blue team builds and defends it; the red team tries to break it.
source Laplace, Théorie analytique des probabilités (1812); de Moivre, The Doctrine of Chances — archive.org/details/thorieanalytiqu01laplgoog (1812 first ed., not-in-copyright). Rendered, not quoted.
A single uniform(0,1) has mean 1/2 and variance 1/12. Nothing bell-shaped about it — it is a flat slab.
Sum n independent copies. Means add: n/2. And because they are independent, variances add too: n/12. The shape is not assumed — it emerges: the standardized sum → N(0,1). Live, from the current run:
| quantity | measured | theory |
|---|
Sample moments track the theory as trials grow — never typed in, always counted.
de Moivre (c.1733) found the bell as the limit of the binomial — a special case, coins at p=1/2. Laplace generalized it in the 1812 Théorie analytique: sums of many small independent errors, whatever their law, pile up Gaussian.
That is why the bell is everywhere: it is the fixed point of adding noise. It is the noise model under least squares (Gauss chose the curve for which the mean is the best estimate) and the likelihood under Bayes. Each sphere in the arc is the next one's premise: the limit here becomes the error law that the estimator downstream assumes.
The blue team's live check: re-simulate at the current settings and confirm the sample mean hits n/2, the variance hits n/12, and the fitted bell tracks the histogram (KS below threshold). If red tampers the fit, this badge is where it shows.
The only raw material is a uniform(0,1) stream from a fixed-seed PRNG (mulberry32) — so every run reproduces exactly. One draw is a coin-flat number between 0 and 1:
| the draw | mean | variance | shape |
|---|---|---|---|
| 1 × U(0,1) | 1/2 | 1/12 | flat |
| n × U(0,1) summed | n/2 | n/12 | → bell |
A trial is one sum of n draws. Run T trials, histogram the sums — that is the whole experiment, and it is what you feed the panel below.
Every bar is counted from the summed draws; the smooth curve is N(n/2, n/12) laid over them. Drag n and watch the slab curl into a bell.
Change any control — the histogram and the fit are recomputed on the spot from real sums, never looked up.
What the machine produces, proven: the sample mean converges to n/2, the sample variance to n/12, and the histogram's distance from the fitted Gaussian (a KS statistic) shrinks as n grows — while at n=1 the draws stay flat, closer to a uniform than to any bell. The current run's numbers are above; the convergence is the output.
The blue team's witness (left) confirms these numbers live; the red team (right) tries to make the fit lie.
And it needs independence (or weak dependence): strongly correlated draws break it. Even when it holds, convergence is only in distribution and only fast near the center — Berry–Esseen bounds the error by O(1/√n) there, but the far tails are governed by large-deviation, not the bell, so rare events are badly mis-predicted. The Gaussian is the limit of a sum, not a law of nature.
"Any large sample is normally distributed." Cut. The CLT is about the sum or mean of many draws, not the draws themselves. A big sample of a skewed variable stays skewed; only its average tends to normal.
"de Moivre proved the central limit theorem." Cut. He proved the binomial case (p=1/2). Laplace generalized it; the rigorous conditions (finite variance) are Lyapunov / Lindeberg, c.1900–1920.
"n = 30 makes it exactly normal." Kept, corrected. There is no magic n; the "30" rule is a rough heuristic. Convergence speed depends on the source's skew and tails — this engine lets you watch the KS distance fall, not assume it.
The red team's move: drop the /12 in the overlaid variance, so the fitted bell uses width n instead of n/12 — far too wide. The histogram is unchanged; only the claim about it is corrupted. The blue team's witness (window 7) is watching the fit.
Use variance n instead of n/12 and the overlaid bell balloons past the data — the KS fit metric blows up, the witness recomputes, disagrees, and turns red. Nothing is faked; the attack is real and it is caught.