aidoesscience
aidoessciencefindings › Foucault pendulum
ValidatingOracle-validated

A pendulum proves the planet turns

Can a swinging pendulum reveal that the Earth turns — without ever looking at the sky? And does its swing plane really turn at the sine-of-latitude rate Foucault announced in 1851, rather than the 'one turn per day' or 'no turn at all' his contemporaries expected?

Measured by the lab
31.798
Known value
31.7877
Relative error
3.38e-4

Units: hours (full swing-plane rotation at the Paris Panthéon, φ = 48°50'47" N; Foucault 1851 reported ~11.3°/h ≈ 31.8 h)

▶ Run this simulationRead how it works

The finding

A pendulum proves the planet turns: the swing plane precesses at exactly Ω·sinφ — recovered from full-3-D-Ω dynamics where the sine law is never plugged in, giving the Panthéon's 31.80-hour rosette against Foucault's 31.79 h

Method

Integrate a FULL 3-D spherical pendulum (exact |r|=L Lagrange-multiplier constraint, RK4, dt=2e-3) in the rotating frame, carrying the COMPLETE rotation vector Ω = Ω(0, cosφ, sinφ) in local east/north/up coordinates — the vertical projection Ω·sinφ is never isolated in the dynamics, so at low latitude the Coriolis force is dominated by the HORIZONTAL component of Ω and the sine law must emerge from the dynamics. The recovery mirrors the live module: sample the swing-line azimuth at every outer turning point (rₕ·vₕ crossing + → −), unwrap mod π, least-squares-fit azimuth vs time; the slope is the measured precession rate, sinφ̂ = −rate/Ω. Canonical run at the Paris Panthéon latitude (48.84636°) across 24 seeds (random release azimuth, ±10% amplitude jitter); scored as the real-world full-turn period T̂ = T_sidereal/sinφ̂ against the known 31.79 h, loaded only to score. Latitude scan pole→Sydney, pendulum-independence (4×L, 2×amplitude), equator cross-check, two historical rival hypotheses, an Ω=0 null, and the live module's 2-D reduction as consistency. ?world=foucault (?lat=<deg>).

The law it recovers

swing-plane precession rate = −Ω·sinφ (vertical component of the planet's rotation vector only); T_Panthéon = T_sidereal/sinφ

Measurements, controls & cross-checks

Recovered uncertainty

0.0012

Recovered deg per hour

11.321

Sine law scan

Slope
0.999662
R squared
1
Points
Latitude degRate over omegaSin phiName
90-0.999662-1pole
66.5637-0.917193-0.9175028arctic circle
48.84636-0.752693-0.7529476Paris Panthéon
30-0.499831-0.5half rate at 30°
10-0.17359-0.1736482near-equatorial
-33.86880.5571050.557293Sydney — sign reversed
Note
the measured rate/Ω tracks −sinφ across the globe with slope 0.99966 and R²=1.000000000; the southern-hemisphere point REVERSES sign (counter-clockwise), as every Foucault pendulum south of the equator shows. The 3.4e-4 slope deficit is the finite-amplitude (Airy) ellipse bias (3/8)(a/L)² = 3.375e-4 at a/L = 0.03 — a real, understood systematic of physical pendulums, well inside the 3e-3 tolerance.

Cross checks

Equator rate over omega
3.9000e-15
Equator note
at φ=0 the rotation vector is entirely HORIZONTAL — the largest transverse Coriolis coupling of any latitude — yet the plane does not turn (|rate|/Ω = 3.9e-15). Only the vertical component of Ω precesses the plane: this is the content of the sine law, emerging from full 3-D dynamics rather than being assumed via a 2-D reduction.
Pendulum independence
Quadruple length rel shift
2.3900e-7
Double amplitude rel shift
0.00101
Note
Foucault's experimental claim: the rate measures the planet, not the pendulum. Quadrupling L (halving ω₀) leaves the rate unchanged to 2.4e-7; doubling the amplitude shifts it only by the predicted Airy scaling (bias ∝ amplitude², ×4 ⇒ ×3 shift ≈ 1.0e-3), still inside tolerance.
Reduction 2d rel delta
0.000338
Reduction 2d note
the live module's textbook planar EOM (ẍ = −ω₀²x + 2Ω_z ẏ, ÿ = −ω₀²y − 2Ω_z ẋ) reproduces the full 3-D rate to 3.4e-4 (the difference is exactly the 3-D pendulum's Airy bias, absent in the isotropic 2-D oscillator) — the on-screen world's reduction is justified against the complete dynamics.

Controls

Rival one turn per day
Predicted rate over omega at 30deg
-1
Measured
-0.499831
Residual vs sine law
0.000169
Residual vs rival
0.5
Separation
3.0e3× worse
Note
the pre-1851 intuition that the swing plane simply 'follows the Earth' (one turn per sidereal day at every latitude) misses by exactly a factor 2 at φ=30°, where the sine law hits −Ω/2 to 1.7e-4. Foucault's sine factor is the measured content.
Rival no precession
Paris rate over omega
0.753
Note
the opposite intuition — the plane never turns — is excluded outright: at Paris the plane sweeps 11.3°/hour.
No rotation null
Omega
0
Fitted rate rad s
7.8000e-17
Note
switch the planet's rotation off and the fitted rate collapses to numerical zero: the precession is entirely the rotation.

Numerics

Energy drift rel
4.4000e-16
Constraint drift rel
4.4000e-16
Dt halving shift
1.3000e-8

Seeds

24

What it reduces to

Foucault's sine law (L. Foucault, C. R. Acad. Sci. 32, 135 (1851); derivation M. Binet, ibid. 32, 197 (1851)): in a frame rotating at Ω, a pendulum's swing plane precesses at the vertical component Ω_z = Ω·sinφ — a full turn per sidereal day at the pole, nothing at the equator, reversed in the south, INDEPENDENT of the pendulum itself. It VALIDATES, not derives: the lab assumes Newtonian mechanics in a rotating frame (the Coriolis force −2Ω×v with the FULL rotation vector) and shows the emergent, fitted plane-rotation rate equals Ω·sinφ — the projection is never isolated in the dynamics, and at the equator the largest horizontal Coriolis coupling produces exactly zero precession, which is the nontrivial half of the law. Scored in real units as the Panthéon's 31.79-hour rosette period. It does NOT model Foucault's real systematics (launch asymmetry, aerodynamic drag, ellipse growth) beyond the finite-amplitude Airy bias, which appears at its textbook magnitude (3/8)(a/L)² and is reported, not hidden. The lab's first rotating-frame world: the dynamical proof that the Earth rotates, needing no sky.

Module systematics

HONEST-MODULE CERTIFICATE (derisk gates I–M, ONE deliberate module edit): the derisk EXECUTES the shipped src/modules/FoucaultModule.ts — sha256-pinned and mechanically stripped of TypeScript (34 exact strip pairs + 3 bulk prefixes, every count asserted), run via new Function against recorder Babylon/DOM stubs. This is a fully LIVE world: the measurement ACCRUES during the run (turning-point azimuth samples feeding a running least-squares fit), so the certificate proves the whole trajectory, not an init snapshot. (1) 1200 real fixedUpdate/render engine calls at fl(1/120) — exactly 2 RK4 substeps of the module's fl(1/240) clock per call, the accumulator returning to EXACTLY 0 — are bit-exact vs a statics-built replica at EVERY call: the full RK4 state, the fit accumulators (n/ΣT/ΣA/ΣTT/ΣTA and the fitted rate), the 6000-slot trail ring and the 16-float thin-instance matrix buffer, bob/rod positions, and the camera drift. (2) The %6 HUD textContent AND the %6 chart SVG are LIVE — the chart redraws with the growing azimuth series (first world in the cert streak whose chart is live rather than a dead branch) — and both are bit-equal to the replica templates at every one of the 201/200 pinned writes; the chart is EMPTY at init and earns its curve during the run. (3) The shown rate '-0.0987' is cert-pinned yet EARNED: the fitted rate (-0.09872513974784834) differs from the coded −Ω·sinφ bit-for-bit (Δ 5.59e-6 — it is a least-squares slope through 7 discretely-sampled turning points, not a paste), and fresh executed instances MOVE it through the real constructor + dynamics + fit: φ=30° → rate/−Ω = 0.49981 ≈ ½, Sydney −33.87° → the rate flips sign. (4) The display is PRICED in named stages with NO free constants: shown − (−Ωz) = finite-window 5.56e-6 ≤ 3·SE_slope (SE 1.82e-5 from the fit's OWN residuals) + algorithm floor 2.82e-7 rel ≤ the derived T^(−3/2)-scaled ceiling 4.71e-6 (24× window; the module's LINEAR 2-D EOM precesses at exactly −Ω_z, so the floor prices RK4 + turning-point sampling only). (5) TWO law-fed display elements, disclosed and priced: the HUD's 'Ω·sin φ' comparison line and the chart's dashed guide slope are CODED (rateTheory = −Ω·sinφ — a theory ruler drawn next to the measurement, never the measurement); the ruler is priced against the ORACLE's emergent full-3-D-Ω rate at the module's own φ=45°: rel Δ 3.37e-4 ≤ 1e-3 (the oracle's own Airy + O((Ω/ω₀)²) systematics). (6) The executed measurement block (turning-point sampler + azimuth unwrap mod π + least-squares fit) is answer-free — no omegaZ/rateTheory/latRad/Math.sin/Math.cos references, no 31.78/0.7529/0.098 literals, 5 disclosed DT clock refs — with a planted-violation self-test. (7) ONE honesty edit to the module ends nothing but a false unit: the HUD's rate conversion (|rate|·60/2π, i.e. turns per MINUTE) was labelled 'turns/day' — with the sped-up 45 s day the label was wrong by ×4/3; relabelled 'turns/min' with zero numeric change, then sha-pinned (certifying a known-false label would be dishonest). Tamper tests surgical: known→25 fails only scoring gate A with the recovery unchanged; cert-sha only I; exec-ulp only K. The sped-up day (Ω = 2π/45 s) and the 2-D reduction remain disclosed on-screen and in the oracle's gate H.

Confidence & reproduction

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

Sources

L. Foucault, 'Démonstration physique du mouvement de rotation de la Terre au moyen du pendule', C. R. Acad. Sci. (Paris) 32, 135–138 (1851) — the Panthéon pendulum (67 m, 28 kg) turned clockwise ~11.3°/hour, a full circle in ~31.8 hours, matching sinφ for Paris. M. Binet, C. R. Acad. Sci. 32, 197 (1851) — first derivation of the sine factor. Modern treatment: J. B. Marion & S. T. Thornton, Classical Dynamics, §10.5; the Airy finite-amplitude ellipse precession (3/8)ω₀ab/L² is the classic systematic every museum pendulum fights.

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.