A plano-convex lens resting on flat glass shows concentric rings with a DARK centre — zero path difference, yet destructive. Do the dark-ring radii really obey r_m² = mλR (so ring radii + a ruler weigh the wavelength of light), does the dark centre follow from nothing but the sign of the Fresnel reflection coefficient, and can Newton's own corpuscular picture of light survive his own apparatus?
Units: m (sodium D-line mean: D2 588.9950 nm + D1 589.5924 nm ⇒ 589.29 nm; module and oracle use 589.3 nm)
▶ Run this simulationRead how it works
Newton's rings weigh light with a ruler — and falsify Newton: a generator that ONLY sums Fresnel reflection phasors bounce by bounce (the famous π flip is never added — it IS the minus sign of r = (n₁−n₂)/(n₁+n₂) at the air→glass reflection) throws dark rings whose radii hand back λ̂ = 589.3000 nm vs the sodium-D mean 589.3 nm (rel 5.0e-9 noiseless; 589.301 ± 0.003 nm at 0.35 SE over 24 seeds of ±2% reading noise) through the ruler law r_m² = mλR; the centre is Stokes-exactly dark (I(0)/I_max = 5.9e-34 — zero path difference yet destructive, the phase flip's fingerprint), the EXACT-sag correction r_m² = mλR − m²λ²/4 emerges with the fitted m² coefficient matching the parameter-free −λ̂²/4 to 8.5e-4, the slope scales as R^1.00000 over a 16× lens sweep, Newton's own corpuscular picture (intensities add) shows NO rings at all (visibility 0 vs 1.0000), and waves WITHOUT the flip go bright-centred with every ring slid out half an order (intercept −s/2)
Generator = first principles only: exact spherical sag t(r) = R − √(R² − r²) (no paraxial r²/2R step), normal-incidence Fresnel amplitudes built from the indices alone (r_top = (n_g−n_a)/(n_g+n_a) = +0.2 glass→air, r_bot = (n_a−n_g)/(n_a+n_g) = −0.2 air→glass — the π 'half-wave loss' is exactly this sign, never an added phase), and the reflected field summed BOUNCE BY BOUNCE, A = r_top + t t′ r_bot e^{iδ} Σ_k (r_up r_bot e^{iδ})^k, 12 terms accumulated term by term (|ρ|¹² ≈ 4e-17): no sin² fringe formula, no closed-form Airy function, no ring law anywhere in the generator. Recovery (never sees λ or the law): normalize the scan on an equal-area detector grid (uniform in u = r²), detect dark troughs by hysteresis on a smoothed copy (enter 0.35 / exit 0.6 — 2% noise can neither split nor invent a ring), fit a least-squares quadratic vertex IN u per trough over a CONTINUOUS coverage-weighted window (interpolated threshold crossings with fractional edge-sample weights), exclude the centre trough (minimum AT u = 0), then fit the vertex ladder u_m = b + s·m + q·m² — a plain degree-2 polynomial in ring index. λ̂ = s/R; the known 589.3 nm is loaded from scripts/oracles/newton.reference.json ONLY to score. Gates: (A) noiseless λ̂ rel < 5e-8; (B) I(0)/I_max < 1e-12 and ring-fit intercept < 0.5% of slope; (C) 24 seeds ±2% noise, mean in 2e-5, worst seed 2e-4; (D) R ∈ {0.25,1,4} m and λ ∈ {450,589.3,650} nm each hand back their own λ, s ∝ R^1±0.001; (E) q̂ vs the parameter-free −λ̂²/4 within 2%; (F) corpuscular rival: intensities add ⇒ visibility < 1e-3, zero troughs; (G) no-flip rival: centre I(0)/I_max > 0.9 and intercept = −s/2 ± 1%; (H) grid ×2 and bounce 2 vs 12 move λ̂ < 5e-8; (I) verbatim module mirror pins the HUD; (J) tamper self-test. HONESTY CERTIFICATE (gates K–P, refiner): the derisk EXECUTES the shipped NewtonRingsModule.ts (sha256 pin + 24 exact strip pairs, new Function with Babylon/DOM recorder stubs): (K) executed init() builds the real scene — 84 tori at exact radii with _toriR bit-exact, centre disc, backing plate, sha-pinned style, camera pose, darkened env; (L) executed init measurement === gate-I mirror BIT-FOR-BIT (λ̂, slope, all 12 ring radii) + executed _intensity === op-order replica at 201 radii × 3 lifts; (M) 600 engine calls of the real fixedUpdate/render at fl(1/120) bit-exact vs a statics-built replica at EVERY call (_acc/_phase/_t0 breathing accumulator, all 84 torus + centre emissive triples per call, %4 HUD cadence with FULL innerHTML — the HUD is genuinely time-varying through t₀), and the dead %8 chart branch proven harmless (exactly 1 write, frozen SVG === replica === fresh executed _buildChart()); (N) shown strings cert-pinned and EARNED (executed λ̂ 588.0 ≠ generator 589.3); (O) the disclosed estimator systematic DECOMPOSED and MEASURED by execution — zero deterministic pull + noise-borne bias distribution; (P) executed measurement block answer-free (ZERO textual LAMBDA refs, no 587/588/589 literals), planted-violation-proven scanner.
Dark rings of the air film between a plano-convex lens (radius R) and a flat: 2t = mλ with t = R − √(R²−r²), i.e. r_m² = mλR − m²λ²/4 (≈ mλR paraxially) — a straight line of slope λR in r_m² vs m; the centre (zero path difference) is DARK because the air→glass reflection alone inverts the field (Hecht §9.4; Young 1802).
(1) Threshold-window QUANTIZATION was the entire error budget: integer sample windows leave one-sample pop-in/pop-out that moves a quadratic vertex by ~1e-7 relative; interpolating the threshold crossings and giving edge samples cell-coverage weights collapses the residual four orders to 5e-9. (2) A CONSTANT per-ring locator bias (from the asymmetric hysteresis window) is harmless — it is absorbed entirely by the ladder intercept because the fringe shape is identical in u for every ring; per-ring window re-centring, the 'obvious refinement', converts it into an m-dependent bias that leaks into slope and curvature and is strictly worse. Locate every ring the same way; let the intercept eat the common systematic.
16/16 pass in 0.3 s; 3 tampers surgical: known_value → 700 nm ⇒ exit 1 with λ̂ unchanged at 589.3000 nm and only A/C firing (cert gates untouched); module_certificate sha256 flip ⇒ only K; exec recovered_lambda_m ulp flip ⇒ only N
Newton's rings with the half-wave phase shift (I. Newton, Opticks 1704, Book II — the observations; T. Young 1802 — the interference explanation and the first wavelength derived from Newton's own ring data; Hecht, Optics §9.4 — r_m² = mλR). Non-circular because the recovery path contains none of it: the generator only adds reflection phasors with Fresnel signs and propagation phases (the dark centre falls out of the Stokes relations, not out of an inserted π), and the readout only locates intensity minima and fits a plain polynomial in ring index — the sin² fringe profile, the r_m² = mλR ruler law, its −m²λ²/4 exact-sag correction, and the half-wave loss are exactly what the sim is asked to rediscover, and does to 5e-9, 8.5e-4, and 34 orders of magnitude of centre darkness respectively. The rival falsifications are decisive in kind, not degree: intensity addition gives NO pattern, and the sign flip is pinned by which orders the rings sit on.
The module's on-screen recovery (NewtonRingsModule, computed once at init) uses the two-beam sin²(2πt/λ) closed form as its display intensity and a coarser estimator — deepest NOISY sample per hysteresis trough over 12 rings, through-origin fit — giving λ̂ = 587.99 nm, −0.22% from true. The bias is now DECOMPOSED AND MEASURED by execution (gate O): the display law itself has ZERO deterministic pull (exact continuous minima of the module's own I(r) sit at r² = mλR to 2.2e-16 — the opposite decomposition to young's fully-deterministic envelope pull), the noiseless scan is grid-limited at −0.0049% ≤ the derived 0.060% ceiling, and the entire screen bias is noise-borne: zero-clipping at the trough floor with a first-sample tie-break pulls every ring low, measured across 24 seeds as −0.315% ± 0.043% — the shipped seed's −0.222% is a +2.1 SD draw of that distribution (this corrects the earlier single-draw framing that read −0.22% as THE bias; the typical draw is −0.32%). Both the value and the bias are pinned by execution (gates K–N: the shipped module runs headless and its λ̂ === the mirror bit-for-bit) and disclosed on-screen (the HUD prints '588.0 nm (sodium 589.3 nm, 0.2% off)'). Ring POSITIONS are identical between the two-beam display form and the full multiple-beam sum (minima at δ = 2πm in both), so the display bias is estimator-only, not physics.
HUD scrape-verified 5/5 against a vite preview build: 'centre (r=0) is dark', 'dark rings found = 12', 'slope λR = 0.588 µm·m', 'λ = 588.0 nm (sodium 589.3 nm, 0.2% off)' — exactly the mirror's predicted digits (0.587990 µm·m, 587.9899 nm, 0.2223%).
npm run derisk -- newton (scripts/newton-derisk.mjs)scripts/oracles/newton.reference.jsonI. Newton, 'Opticks' (1704), Book II, Part I — the rings tabulated to ~1% yet the dark centre unexplained by his corpuscular 'fits'. T. Young, Bakerian Lecture, Phil. Trans. R. Soc. (1802/1804) — rings explained by interference with the half-wave 'loss' at the denser-medium reflection; λ ≈ 570 nm computed from Newton's own measurements. G. G. Stokes, 'On the perfect blackness of the central spot in Newton's rings' (1849) — r′ = −r, tt′ = 1 − r². E. Hecht, 'Optics' 4th ed., §9.4. Sodium D (NIST ASD): D2 = 588.9950 nm, D1 = 589.5924 nm.