aidoesscience
aidoesscience › Perrin · Avogadro's N
Validating · validations

Perrin · Brownian motion proves atoms are real

The Brownian jiggle of a grain too big to be a molecule — does it actually let you weigh the unseeable molecule and count Avogadro's number?

Perrin · Brownian motion proves atoms are real simulation running in the browser

▶ Run the simulationSee the measured result

Measured by the lab
6.0272e+23
Known value
6.0221e+23
Relative error
8.50e-4

How the lab tests it

Take a resin grain of radius a = 0.5 µm suspended in water (η, T known) and use Einstein's (1905) Stokes–Einstein bridge between the visible random walk and the molecular world: D = R·T/(6πη·a·N_A). Forward-model 4000 grains as independent 2-D Gaussian random walks at water's real diffusion coefficient (seeded → reproducible), record the mean-square displacement ⟨r²⟩(t), and least-squares fit its slope through the origin (= 4D in 2-D). Then invert the relation for the one unknown.

What it checks

Avogadro's number N_A = 6.022×10²³ /mol — recovered as N_A = R·T/(6πη·a·D) from the measured D WITHOUT being told it, and with it Boltzmann's constant k_B = R/N_A. That a purely *mechanical* jiggle of micron grains yields the molecular bookkeeping constant — the same N_A chemistry gets from moles — is the whole point: it pinned a number to the atom and ended the 19th-century debate over whether matter is continuous or made of discrete molecules. Unlike the lab's abstract ?world=diffusion (⟨r²⟩=4Dt in arbitrary units), this one is in real SI and extracts a fundamental constant. Perrin's 1908–1913 measurements (Nobel 1926), the experimental confirmation of Einstein's 1905 Brownian-motion theory

Stokes–Einstein calculator: hydrodynamic radius, Avogadro's number and how precisely a jiggle can be counted

A grain a micron across, sitting in still water, never stops moving — and Einstein's 1905 argument turns that refusal to hold still into a count of the molecules doing the pushing. The relation is one line, D = k_B·T/C: the same viscous drag C that resists the grain is what delivers the random kicks, so a single coefficient governs both and their ratio is fixed by temperature alone. For a rigid sphere Stokes solved C in 1851 and it is 6πηa, which makes D = k_B·T/(6πηa) — every quantity in it weighable or readable except one. Run it backwards and that one becomes the answer: N_A = R·T/(6πη·a·D). Perrin did exactly this between 1908 and 1913, watched gamboge grains under a microscope, and got Avogadro's number off a jiggle — which is what ended the argument about whether atoms were real bookkeeping or real things, and what the Nobel committee cited in 1926. Avogadro's number is not typed anywhere on this page. It is ASSEMBLED as R/k_B, which the 2019 SI licenses exactly, because R is DEFINED as N_A·k_B — so both constants sit in boxes above, every score here is against that assembly rather than against a stored answer, and the page can check its own arithmetic without being told what it should get: feed the recovery the D the relation itself predicts and C, T and the grain all cancel, so R·T/(C·(k_B·T/C)) has to come back to R/k_B. It does, to within one ulp — and the page prints the gap rather than claiming there is none, because the two expressions reach the same value by different orders of multiplication and disagree at about two configurations in five. That habit is the whole reason the figures here print in full: there is NO transcendental function anywhere in this calculator. Everything is +, −, ×, ÷ and a square root, all five correctly rounded by IEEE-754, so every digit below survives a change of browser and so does every ulp gap it reports. Two things were refused to keep that true. Perrin's OTHER route to the same number — counting how grain concentration falls with height, a barometric exponential — is not computed here; the sedimentation LENGTH k_B·T/w is, and the profile is not, because one logarithm would make every figure on the page engine-bound. And a fractional number of tracked dimensions is refused rather than approximated. The interesting dial is the one that is usually silent. Stokes' 6πηa assumes the fluid cannot slide along the grain; a free surface it slips over gives 4πηa instead, and the Hadamard–Rybczynski drop interpolates them as 2πηa(3−s). Turning that dial is not decoration, it is the page's rival theory made arithmetic: the SAME measured D names a grain half again as large at one end as at the other, and a measurement that assumed the wrong boundary condition would report N_A high by exactly 50% while looking perfectly self-consistent. The second rival is contamination rather than physics. If the grains are being carried — a convection roll, a stage drifting under the objective — then ⟨r²⟩ gains a v²t² term, and the page shows that an undetected drift always UNDERCOUNTS the molecules and that the error grows the longer you watch, because the honest part of the signal is linear in time and the contaminant's is quadratic. At v = 0 that dial hands the world back unchanged, and exactly so. The direction worth the most is the least glamorous: how precisely can a jiggle be counted at all? D is measured as the slope through the origin of ⟨r²⟩ = 2dDt, and the scatter of that slope has a closed form. Isserlis on the Brownian covariance gives σ_D/D = √(2S/(dN))/Σj² with S = Σᵢⱼ i·j·min(i,j)², the min carrying the fact that a path's later positions remember its earlier ones. Three things fall straight out. The sampling interval cancels completely — filming faster buys nothing. Filming LONGER buys almost nothing either: doubling the track changes the precision by eight thousandths of a percent, while doubling the number of grains improves it by 29%, which is why Perrin counted thousands of grains rather than following one for an afternoon. And at n = 1 the formula collapses to the plain 1/√N of N independent squared displacements, returning it as the same double, which is the page's self-test. Pointed at this lab's own run — 4000 grains, 60 samples, 24 seeds — it predicts 1.3694% against the 1.2460% the finding actually published, well inside the ±14.74% a 24-seed standard deviation carries itself, so that published error bar is the estimator's own noise and not a hidden systematic. Two neighbours own the halves this page does not. The abstract law ⟨r²⟩ = 2dDt and its step statistics belong to this lab's random-walk page, which derives them in arbitrary units and hands D over; here D is an input and the units are SI. Stokes drag driving an ELEMENTARY CHARGE belongs to the oil-drop page, which reads a radius off a terminal fall in air — the settling speed below shares that arithmetic and says so, but nothing here touches a charge or a field. And three things this page will not do on its own account: model a grain that is not a sphere, correct for neighbours at finite concentration, or adjust the reading on the simulation above. That reading is one seed's draw of a stochastic measurement, it is disclosed on the screen as such, and the right response to it is the ensemble the oracle already ran.

D = k_B·T/C with C = 2πηa(3−s) — no-slip 6πηa, free-slip 4πηa · N_A = R·T/(C·D), k_B = R/N_A · a = k_B·T/(6πηD) · D_rot = k_B·T/(8πηa³) · σ_D/D = √(2S/dN)/Σj², S = Σᵢⱼ i·j·min(i,j)² · ℓ = k_B·T/w, v = w/C, a* = (3k_B·T/4πΔρg)^¼ · drift rival: D̂ = D + v²t/2d, t* = 2dD/v²

—