aidoesscience
aidoessciencefindings › Millikan oil drop
ValidatingOracle-validated

Electric charge is quantized

Is electric charge a continuous quantity you can have any amount of, or does it come in indivisible lumps — and if so, how big is the lump?

Measured by the lab
1.5998e-19
Known value
1.6022e-19

Units: C (the elementary charge e)

▶ Run this simulationRead how it works

The finding

Electric charge is quantized: the oil-drop charges are not a continuum but integer multiples of one quantum, whose size — recovered blind from noisy fall/rise velocities across 24 seeds — is e = (1.600 ± 0.008)×10⁻¹⁹ C, matching the elementary charge, while a forward-modelled continuous-charge world fails to quantize under the identical recovery (Millikan 1913)

Method

Forward-model 60 charged oil drops between two horizontal plates 6 mm apart at 480 V. Each drop carries a true charge n·e for a small integer n (1–6). Field OFF: buoyancy-corrected gravity balances Stokes drag at the terminal fall speed v_f = m'g/6πη a, so the fall speed alone MEASURES the radius, a = √(9η v_f/2(ρ_oil−ρ_air)g). Field ON: the electric force qE shifts the terminal velocity to v_E = v_f − qE/6πη a, giving q = 6πη a (v_f − v_E)/E. Add 1.5% Gaussian velocity noise, recover q for every drop, then recover the quantum e WITHOUT being told it — a 1-D scan for the divisor that makes every charge a near-integer multiple, then a least-squares refine e = Σ(n·q)/Σ(n²). Sweep 24 independent seeds for an uncertainty. The elementary charge is loaded from scripts/oracles/millikan.reference.json ONLY to score the recovered quantum and to synthesise the true charges — it never enters the divisor scan or the refine. Decisive control: run the IDENTICAL recovery on a forward-modelled continuous-charge world (charges any real multiple of e) and show it CANNOT be made to quantize.

The law it recovers

field OFF: m'g = 6πη a v_f, m' = (4/3)π a³(ρ_oil−ρ_air) ⇒ a = √(9η v_f/2(ρ_oil−ρ_air)g); field ON: v_E = v_f − qE/6πη a ⇒ q = 6πη a (v_f−v_E)/E; the {q} are integer multiples n·e

Measurements, controls & cross-checks

Recovered uncertainty

8.3000e-22

Recovered rel error mean

-0.0015

Worst seed rel error

0.0103

Quantization

Remainder rms mean
0.147
Remainder rms worst seed
0.188
Continuum control rms
0.289
Note
the fractional-remainder RMS of the recovered charges about their nearest integer multiple is 0.147 (worst seed 0.188), far below the 0.2887 = 1/√12 a continuum would give — the charges cluster on integer bands. This is the non-circular result: it does not depend on the value of e, only on whether the charges are discrete.

Control continuous

Name
continuous charge — the null hypothesis that charge is a continuum (drops carry any real multiple of e, not integer)
Remainder rms mean
0.247
Remainder rms best seed
0.206
Gate
0.2
Note
the SAME blind recovery run on a forward-modelled continuous-charge world leaves the remainder RMS at 0.247 (lowest of any seed 0.206), always above the 0.20 gate and near the 0.289 uniform continuum. The two populations do not overlap (quantized ≤ 0.188 < continuum ≥ 0.206), so the low remainder of the discrete data is a physical quantization signal, not an artifact of the fitter — a continuum CANNOT be forced to quantize. Millikan's decisive argument that charge comes in indivisible lumps.

Circularity note

The recovered VALUE of the quantum (1.600×10⁻¹⁹ C, within 0.15% of the injected e) is a 'recover-what-you-simulate' fidelity check of the blind divisor-scan + LSQ machinery under 1.5% velocity noise — e is the unit injected into the synthetic true charges, so this is not an independent metrological measurement of e. What is genuinely non-circular and falsifiable is the QUANTIZATION (remainder RMS 0.15 vs the 0.29 continuum) and its control: those are structural facts about whether charge is discrete, independent of e's numerical value. TAMPER NOTE (2026-07-23 refinement): this same circularity previously made the tamper self-test vacuous — a tampered known_value was tracked by the recovery and the derisk still passed. The determinism pins added with the on-screen reconciliation restore tamper sensitivity (see result.tamper_repair).

On screen

E screen
1.5878e-19
E screen err pct
-0.899
Z in ensemble
-1.45
Frac rms screen
0.111
Max n screen
6
Browser verified
headless Chrome HUD read 2026-07-23: "recovered quantum e = 1.5878e-19 C · error = -0.90 % · fractional-remainder RMS = 0.111 · n = 6" — matches the derisk screenReplica bit-for-bit at displayed precision
Note
MillikanModule.init() draws two extra rand() calls per drop (animation x,y scatter) after the noise draws, so the module RNG stream diverges from the derisk ensemble generator at the same seed 0x1234567 from drop #2 on: derisk seed-0 recovers 1.6031e-19 (+0.06%) while the HUD shows 1.5878e-19 (-0.90%). The displayed number was previously a realisation the oracle never scored. The derisk now reproduces the module draw order verbatim (screenReplica) and gates the on-screen value: |error| < 3% (got 0.90%), |z| < 3 in the 24-seed ensemble (got -1.45 — an ordinary realisation, module unedited), remainder RMS < 0.25 (got 0.111), plus bit-exact determinism pins so any module edit that changes the HUD number without an oracle re-check turns the derisk red. Module systematic: the screen single-seed value sits 1.45 seed-sigma below CODATA e — sampling scatter, not bias.

Tamper repair

Pre-existing gap found during this refinement: because e is the unit injected into the forward-modelled charges (q = n*e), a tampered known_value is TRACKED by the blind recovery (scan window 0.6-2.6e-19 brackets it), so all four original gates stayed green under the mandatory tamper self-test — tamper => exit 0, a silent violation of the oracle standard. The new on-screen determinism pins break that degeneracy: they are fixed fingerprints in the reference, so a tampered known_value shifts the generated charges, moves e_screen off the pin, and the derisk exits 1. Verified both ways: known_value 1.602->1.702e-19 => exit 1 (pin rel-miss 6.3e-2); pin tampered alone => exit 1 (rel-miss 1.4e-3); restored => exit 0, 9/9.

What it reduces to

Millikan's 1913 oil-drop determination (R. A. Millikan, Phys. Rev. 2, 109; Nobel 1923) — the proof that electric charge is quantized in integer multiples of the elementary charge e, the last classical 'continuous quantity' to fall. It VALIDATES, not derives: the lab assumes the classical force balance on a Stokes-drag sphere (buoyancy-corrected gravity vs drag, plus qE) and shows that the charges recovered from noisy fall/rise velocities do not form a continuum but land on equally spaced integer bands, whose spacing — recovered blind by a divisor scan the elementary charge never enters — is e = (1.600 ± 0.008)×10⁻¹⁹ C over 24 seeds (mean error 0.15%, worst seed 1.0%). It is made non-circular by the continuous-charge control: the identical recovery run on a forward-modelled continuum leaves the fractional-remainder RMS at ≈0.25 (near the 0.289 uniform value) on every seed, cleanly separated from the quantized data's 0.15, so the fitter cannot manufacture quantization — the discreteness is physical. Honest scope: because the true charges are synthesised as n·e, recovering ~e is a fidelity check of the blind recovery machinery, not an independent measurement of e; the genuinely value-independent, falsifiable result is the quantization itself. It does NOT derive e from deeper theory, model non-spherical drops or Cunningham slip corrections, or account for the real experiment's known systematic (Millikan's low viscosity biased his e ~0.2% high). The lab's charge-quantization pillar of the early-quantum arc (?world=blackbody … ?world=rutherford … ?world=franckhertz … ?world=sterngerlach), where the others quantize energy, reveal the nucleus, and quantize spin — this one quantizes charge.

Confidence & reproduction

Confidence
high
Validation
derisk-pass
Re-run the check
npm run derisk -- millikan (scripts/millikan-derisk.mjs)
Oracle
scripts/oracles/millikan.reference.json

Sources

R. A. Millikan, 'On the Elementary Electrical Charge and the Avogadro Constant', Phys. Rev. 2, 109 (1913) — the oil-drop determination of e and the proof of charge quantization (Nobel 1923); H. Fletcher, contemporaneous collaborator. Air viscosity η = 1.81×10⁻⁵ Pa·s, oil density ρ_oil = 920 kg/m³, plate gap 6 mm, 480 V. CODATA/SI-2019 elementary charge e = 1.602176634×10⁻¹⁹ C (exact since the 2019 SI redefinition).

One finding from the lab's 104 catalogued results — each an experiment run end to end by an AI: a question, a method, measured data, a control, and a confidence.