A charge in a uniform magnetic field is bent into a circle. Does a faster particle take longer to come around — as it would under gravity, a spring, or any everyday orbit — or does every speed share ONE period, the isochronism Lawrence built the cyclotron on?
Units: Hz — electron cyclotron frequency at B = 1 T, f_c = eB/(2πm_e), from SI-exact e and CODATA-2018 m_e (the '28 GHz per tesla' of ECR physics)
▶ Run this simulationRead how it works
Cyclotron (magnetism): no-oracle → validated — Lawrence's flat line from the Lorentz force alone: with NOTHING coded but a = (q/m)·v×B (RK4; no ω = qB/m, no 2π, no circle, no period law), clocking full turns of the velocity vector returns f_c = 27.9924884 ± 0.0000034 GHz vs CODATA eB/2πm_e = 27.9924899 GHz at 1 T (rel 5.1e-8 under 0.01% chronometry noise; noiseless floor 1.8e-12); the period is speed-INDEPENDENT to a float-exact spread of 0 across a ×100 speed range, r = mv/(qB) free-fits exponent 1.000000000 with prefactor to 1.2e-9, and f ∝ B to slope 1.0000000000 over B ∈ [0.25, 4] T; Newton's velocity-independent 1/r² pull — calibrated on the lab's OWN measured period at v_ref — bends every speed into a circle but its periods go T ∝ v^−3.000000 (×1000 spread, edge z = 7.9e6); a relativistic pusher returns T = γ·2πm/(qB) to 3.5e-12 at β = 0.6/0.9 — the correction that ended the classical cyclotron; the module's Boris-pusher bias is measured equal to the predicted (ωdt/2)²/3 = +3.70e-6 (ratio 1.00000), invisible at its 4-decimal HUD
The generator codes ONE thing: Newton's second law under the Lorentz force, a = (q/m)·v×B with B = B·ẑ, stepped by RK4 at dt = (m/qB)/400 — m/(qB) being the only timescale IN the coded EOM (dimensional analysis, not the period law). No ω = qB/m, no 2π/T, no circle, and no stationarity/closure condition appear anywhere in the recovery path: the velocity angle atan2(vy, vx) is unwrapped, times of successive full 2π turns are clocked (linear interpolation inside a step is exact because the angle advances uniformly), and the period is the least-squares slope of turn time vs turn index. 12 seeds each draw their own launch speed (10^[6,7] m/s), phase, and independent 0.01% Gaussian chronometry jitter per clocked turn (scale set by the first MEASURED interval, not theory). Radius is measured as mean distance to the trajectory centroid. 17 gates in scripts/magnetism-derisk.mjs (~0.2 s); tamper ⇒ exit 1. ?world=magnetism.
3415
8.0400e-7
The cyclotron resonance condition ω_c = qB/m — period independent of ion speed — of Lawrence & Livingston, Phys. Rev. 40, 19 (1932), with the recovered f_c/B = e/(2πm_e) matching CODATA to 5.1e-8. Non-circular: q, m, B are inputs, but ONLY as coefficients of the force law a = (q/m)v×B — that the motion is periodic at all, that the frequency equals qB/(2πm), that it is independent of launch speed and phase, and that r = mv/(qB), are all read off integrated trajectories by clocking velocity-vector turns; the 2π, the circle, and the independence claim are never coded (same pattern as snell: n is a timing input, the sine law emerges). The decisive discriminator is the FLATNESS, which no velocity-independent central attraction can reproduce (Kepler III forces T ∝ v⁻³ on the rival's circular orbits) — magnetism is the only classical force that bends without doing work.
The module (?world=magnetism, src/modules/MagnetismModule.ts) is honest at its core: velocities are pushed by a Boris rotation derived from the coded F = qv×B, and the on-screen 'measured ⟨T⟩' is genuinely clocked off the trajectory (swept velocity angle to 2π), displayed NEXT TO the law-fed 'T = 2πm/qB (theory)' label. Two systematics, both quantified by the derisk's module-emulation gate and both invisible at the HUD's 4 decimals (3.9270): (1) the Boris pusher rotates by 2·atan(ωdt/2) per step, not ωdt, biasing the measured period HIGH by (ωdt/2)²/3 = +3.704e-6 relative at the module's dt = 1/240 — the oracle measures this bias at exactly the predicted value (ratio 1.00000); (2) the module's swept-angle clock quantizes each revolution boundary to a step and running-means the periods, adding a further +O(dt/(2R·T)) that decays as 1/R (measured +2.0e-5 total at R = 50 revolutions, +7.6e-6 at R = 200, converging to the pure Boris bias). No module edit was needed this run. RUNG-6 CERTIFICATE (refiner, 2026-07-24): the derisk now EXECUTES MagnetismModule.ts itself — eight sha256-pinned slices (constants, COLORS, omega(), periodTheory(), init() particle construction, fixedUpdate() accumulator, _step() Boris pusher, render() HUD arithmetic) are mechanically stripped (every replacement count asserted) and driven at the engine's schedule, 14400 ticks of FIXED_DT = fl(1/120), each resolving to exactly 2 substeps of fl(1/240) with the accumulator returning to bit-zero (fl(1/120) === 2·fl(1/240) exactly — the browser and the certificate run the SAME float schedule). Gates K–O pin every displayed number strict-===: all five particles (speeds spanning ×5) complete 30 revolutions with BIT-IDENTICAL period 3.9270833333325004 s, lastT, and firing substeps at every revolution — the HUD's 'max |ΔT| over speeds 0.0001' is one common integrator offset, not a speed dependence; the full HUD text and status strings are reproduced ===. The screen's +9.252e-5 s offset from T = 2πm/qB decomposes as an EXACT identity with zero fitted parameters: Boris rotation deficit +1.454e-5 s (θ = 2·atan(ωdt/2); leading-term ratio 1.00000 vs (ωdt/2)²/3) + substep quantization +7.797e-5 s ∈ (0, dt/R), with every one of the 30 revolution boundaries landing on substep ceil(2πk/θ) predicted from the pinned constants alone (identity gap 8.3e-13 s = float accumulation of the module's _t). The module's own stepper Richardson-extrapolates (dt, dt/2, dt/4, two rungs) to ω∞ = qB/m at 2.3e-12, and the dimensionless invariant T·(qB/m)/2π reconciles the screen with the oracle's SI electron recovery to a 7.2e-13 gap — one law, two unit systems, both at their float floors. Executed |v| drift 1.5e-14 over 28800 substeps. Module untouched — it was already honest; the climb is the forensic certificate.
Rung climbed: no-oracle → validated. 1 tolerance correction pre-landing (not a science miss): the charge-flip gate was initially set at 1e-12, BELOW the RK4 phase floor the noiseless gate itself measures (~2e-12 over 64 revs) — aligned to the 1e-10 floor-class shared by gate B; the measured flip difference is 2.8e-12. Tolerances otherwise: main gate 1.5e-6 ≈ 5–7× the observed error scale across 6 independent 12-seed prototype batches (|mean rel| ≤ 2.2e-7, SE 1.1–2.9e-7, worst seed ≤ 2.8e-6); float-floor gates 1e-10/1e-11 sit 30–50× above observed 1.8e-12/0; rival z floor 1000 is ~8000× below the observed 7.9e6. Hand tamper (known → 28.5 GHz) ⇒ 3 gates FAIL, exit 1, recovered value unchanged at 27.992488 GHz; restored by hand; in-script scoring self-test (gate J, known×1.02) green. Design-time win: the prototype separated the module's two on-screen biases (pure Boris rotation deficit tz²/3, exactly confirmed, vs swept-angle clock quantization ~dt/(2R·T)) before any gate was written. Runtime 0.2 s. REFINER 2026-07-24 (validated → validated + honest-module): certificate gates K–O added to scripts/magnetism-derisk.mjs + module_certificate block in the reference; 26/26 gates green first attempt, ~0.2 s. Tamper self-tests: known_value → 28.5 GHz ⇒ 3 gates FAIL exit 1 with recovered value unchanged (27.992488 GHz); pinned period last-ulp bump (…5004 → …5009) ⇒ gate L FAIL exit 1; both restored by hand, suite green. Scope: oracle pair + finding + fragment + loop-runs line only — no module edit, no shared files.
npm run derisk -- magnetism (scripts/magnetism-derisk.mjs)scripts/oracles/magnetism.reference.jsonE. O. Lawrence & M. S. Livingston, Phys. Rev. 40, 19 (1932). e = 1.602176634e-19 C (SI 2019, exact); m_e = 9.1093837015(28)e-31 kg, CODATA 2018 (Tiesinga et al., Rev. Mod. Phys. 93, 025010 (2021)). Rival: I. Newton, Principia (1687), Book I / Kepler's third law. Breakdown: V. Veksler, J. Phys. USSR 9, 153 (1945); E. M. McMillan, Phys. Rev. 68, 143 (1945).