# Experiment mathematics audit

**Reviewed:** September 17, 2026 · `/Users/stephenking/Desktop/simulations_updated`  
**Scope:** All 37 catalog worlds, including the 43 experiment modes in the 12 additions. Equations, mathematical kernels, units, parameter limits, readouts, and relevant drawing conventions were compared. Experiment files were not changed.

**Result:** 10 actionable discrepancies: **3 high priority, 6 medium priority, 1 low priority**. The most consequential are the Bell statistic, the Bell verdict/data handling, and the Rutherford comparison. Several limitations were already disclosed in model notes; those disclosures do not resolve contradictory live measurements or instructions.

“Reviewed—consistent” below means no material discrepancy identified within the stated teaching model. It is not a claim of exhaustive numerical validation, experimentally calibrated predictions, or certification of every possible interactive state. This audit examines the source equations and English reference explanations, not a linguistic review of all 18 translations.

## Findings and corrections

### F01 · High · Bell statistic does not calculate the displayed equation

**Source:** `bell_game.html:111–115, 177–182`.

Setting-pair indices are 00, 01, 10, 11. The function computes

`S_actual = |E00 − E10 + E11 + E01|`

while the live label advertises

`S_reference = |E00 − E01 + E10 + E11|`.

For the default singlet angles 0°, 90°, 45°, 135°, the correlations are `[-1/√2, +1/√2, −1/√2, −1/√2]`. The actual calculation gives approximately **0**, whereas the advertised expression gives **2√2 ≈ 2.828427**. Both are valid CHSH sign patterns, but only the advertised one produces the intended maximum violation for these settings.

**Evidence:** Reproduced with the actual `S()` function in Node and in the browser, injecting analytic expected correlations. These were deterministic diagnostic inputs, not fabricated observations or an assertion that 400,000 particles were sampled. `world-notes.js` already acknowledges the defect.

**Correction:** Calculate the advertised expression directly using named pair indices. Add a regression test at the default angles and a classical fixed-card bound test. Build readout angle labels from `ANG`; the current E labels stay at their defaults after Equation lab edits.

The classical bound is 2 and the quantum maximum is 2√2. [IBM CHSH tutorial](https://quantum.cloud.ibm.com/docs/en/tutorials/chsh-inequality).

### F02 · High · Bell “violation” verdict can be produced by invalidly mixed data

**Source:** `bell_game.html:156–162, 192–204`.

Changing quantum/classical modes, instruction-card entries, or randomized-card preparation does not automatically clear previous correlations. Manual settings plus different classical cards can populate the four bins with incompatible preparations. Correlations `[1, 1, −1, 1]` produce **S = 4** in the current gauge despite each individual result being obtainable classically. This does not meet the common-preparation and setting-independence assumptions of the Bell comparison.

The canvas also announces “BELL VIOLATED — no hidden instructions!” whenever `S > 2.02`, with no statistical uncertainty assessment. Four bins containing only one sample each can already trigger that conclusion. The notes warn about clearing data and finite samples, but the verdict remains unconditional.

**Correction:** Clear or separate samples when preparation changes; distinguish manual exploration from an automated randomized-settings experiment; report counts and sampling uncertainty; replace the categorical discovery claim with an appropriately qualified estimate. Address separately from F01—the sign fix alone does not repair the statistical interpretation. [IBM Bell experiment explanation](https://quantum.cloud.ibm.com/learning/en/modules/quantum-mechanics/bells-inequality-with-qiskit).

### F03 · High · Rutherford comparison changes charge strength and mislabels energy

**Source:** `rutherford.html:20–21, 30–40, 54`.

The “alpha energy” slider is used directly as launch **speed**, while also changing the acceleration coefficient through `k = K / slider²`. Switching nucleus/plum modes changes `K` from **26000 to 900**, a factor of **28.8889**. The modes therefore do not isolate concentrated versus distributed charge at equal total charge.

For an asymptotic Coulomb encounter, `tan(θ/2) = k/(b v∞²)` when k is the acceleration coefficient. The implementation's extra speed dependence makes this scale as `slider⁻⁴`. Doubling a true energy parameter should instead halve `tan(θ/2)` at fixed charge and impact parameter. The code additionally reports “Rutherford formula match!” without calculating an analytic comparison. Finite launch and exit distances further prevent interpreting its displayed angle as an exact asymptotic result.

**Correction:** Choose one energy convention, use `v = √(2E/m)`, keep charge/force strength fixed across energy changes and the two charge distributions, and remove the “match” claim until it is numerically verified. Add conserved-energy and asymptotic-angle checks with refinement near close encounters. Existing notes correctly describe the current model as qualitative, but the control and live claim conflict with that limitation. [MIT Rutherford relation](https://web.mit.edu/8.13/8.13c/references-fall/rutherford/melissinos-rutherford-scattering.pdf).

### F04 · Medium · Wormhole launch silently changes requested angular momentum

**Source:** `wormhole.html:102–108, 224–229, 262–266`.

At launch `ρ = 5`, so admissible settings require `|L| ≤ 5v`. The controls allow `L = 3, v = 0.3`, which violates that constraint. The code replaces the negative radial-speed squared with `0.0001`, creating initial speed **0.6000833**, then renormalizes velocity to 0.3. Angular momentum consequently becomes **1.4997917**, rather than the requested 3. The browser reproduces this result.

The crossing guidance also compares against a rounded threshold with `≤`; the exact critical trajectory `|L| = r₀v` approaches the throat asymptotically rather than crossing it in finite trajectory parameter.

**Correction:** Validate the joint launch constraint before spawning, constrain the kick range dynamically or reject impossible combinations, and display the actual conserved L. Compare against the unrounded critical value and identify the equality case separately. The geodesic equations themselves agree with the stated metric.

### F05 · Medium · Collider idle readout produces an unphysical speed

**Source:** `lhc.html:beamEnergy(), 241–246`.

Idle returns beam energy 0. The high-energy formula then evaluates `γ = 0`, `1/(2γ²) = Infinity`, and the browser visibly displays **“beam speed: −Infinity% of c.”** A massive particle cannot have γ below 1. The approximation is suitable for the active TeV beam, not an absent beam.

**Correction:** Display “No beam”/“—” for idle kinematic quantities. For active beams, state that E is total energy and use `β = √(1 − γ⁻²)` where appropriate. Do not interpret zero beam inventory as zero total energy of an individual proton.

### F06 · Medium · Roche survival verdict is disconnected from cohesion and outcome

**Source:** `roche_limit.html:27, 39, 70–76`.

The reference radius stays **0.84448** while the cohesion slider scales self-gravity from 0 to 3. The detailed notes openly identify this as a baseline fluid reference, which is reasonable. However, the live message asserts “outside the limit: the moon survives” based only on the selected periapsis—not the measured clumped fraction, cohesion, or evolved trajectory. The browser still reports that verdict with cohesion zero.

**Correction:** Label the line “baseline fluid Roche reference,” remove the unconditional survival assertion, and base observed disruption language on the evolved cloud. If the slider is intended to represent a physical density change, define and consistently update that model; simply multiplying the reference formula would not validate this softened planar cloud as a fluid moon.

### F07 · Medium · GPS instructions reverse the meaning of the toggles

**Source:** `gps_einstein.html:21, 53–56, 113`; `assets/world-notes.js:133–141`.

The instruction says to compare “corrections enabled,” but ON includes an **uncorrected physical drift contribution**. Both ON gives `+38.6 µs/day`, or **11.57197 km/day** of light-travel range equivalent; both OFF gives zero. These are not correction switches. The scene caption and notes explain the actual behavior, but the instruction contradicts them.

The live value is also labeled “position error,” although `c|Δt|` is a range equivalent, not a solved GPS position error after satellite geometry and receiver clock estimation.

**Correction:** Use “Include SR/GR contribution” consistently and label the distance “uncorrected range equivalent.” If correction switches are desired, implement residual errors after correction separately. The approximate daily relativistic contributions themselves are reasonable. [NIST explanation of the roughly 38 µs/day net effect](https://www.nist.gov/atomic-clocks/a-powerful-tool-for-science/putting-einstein-test).

### F08 · Medium · Fission cap invalidates the stated expectation recurrence

**Source:** `assets/additions.js:43, 94`; `assets/additions-data.js`, fission equation and note.

The displayed recurrence `E[N(g+1)] = k E[N(g)]` is the uncapped Poisson branching model. The actual update truncates the **state**, not just the drawing: `N(g+1) = min(600, Poisson(k N(g)))`. With the supplied seed and k = 2, counts are `8 → 19 → 46 → 81 → 142 → 285 → 530 → 600`, then stay at the cap in the checked run. At N = 600 the stated recurrence predicts conditional expectation 1200, whereas the implemented next count cannot exceed 600.

**Correction:** Either explicitly state the capped stochastic recurrence and qualify the expectation formula as valid before truncation, or separate rendering limits from a safely bounded computational model. The existing cap warning mitigates the issue but does not make the uncapped equation valid after saturation.

### F09 · Medium · Gravity-assist drawing reverses the numeric deflection direction

**Source:** `assets/additions-models.js:8`; `assets/additions.js:65` (`renderers.assist`).

The kernel uses `vy,out = Vplanet + 1.5 sin δ`, with positive planet Y drawn upward. The flyby drawing adds `+sin(δ)` to **canvas** Y, whose positive direction is downward. Thus a negative δ bends the drawn outgoing path upward while the numeric planet-frame Y velocity is negative. At b = +1, V = 1, the readout describes an energy loss while the outgoing drawing tilts toward the upward planet-velocity arrow.

The curve is explicitly schematic, so it need not be an integrated hyperbola. It should still share the kernel's handedness and incoming/outgoing directions; currently its final slope also differs from δ.

**Correction:** Establish one world-to-canvas coordinate mapping and construct schematic incoming/outgoing tangents from the kernel velocity vectors. Verify mirrored impact parameters and the sign of the lab energy change.

### F10 · Low · Lensing source control has ambiguous normalization

**Source:** `assets/additions-data.js`, lensing offset label; `assets/additions.js:86`; `assets/additions-models.js:21`.

The slider says “Source offset / Einstein angle,” implying β/θE for the selected mass. The kernel instead treats its value as β in **fixed reference angular units**, and sets θE = √M. At slider 0.5 and M = 3, the implemented β/θE is **0.288675**, not 0.5. The lens equation and its roots are otherwise correct.

**Correction:** Relabel the input as source angle in fixed reference Einstein-angle units, defining the reference mass; alternatively convert the slider value to β = offset × √M and consistently normalize the output.

## Additional cautions, separate from the 10 findings

- **Twin Paradox:** The two moving markers are selected at the same Earth coordinate time, not the same boosted-frame time. At v = u = 0.8 and Earth t = 2, their boosted times are 3.3333 and 1.2. This is a valid depiction of two chosen events; clarify that they are not simultaneous in the chosen viewing frame. Reunion ages (10 and 6 years) and the 6.4-year turnaround simultaneity gap are correct. [Lorentz transformation and simultaneity](https://openstax.org/books/university-physics-volume-3/pages/5-5-the-lorentz-transformation).
- **Collision illustration:** Contact is prescribed with centers 40 drawing units apart, but the rendered radii sum to about 39.36–53.12 across the mass range. Use radii-consistent contact positions if visual overlap matters. Momentum/restitution and kinetic-energy results are correct.
- **Quantum Tunnel:** E sets central wavenumber, not the packet's exact mean energy. In the continuum free Gaussian, the momentum spread adds `1/(8σ²) ≈ 41.32` to E for σ = 0.055; discretization and boundaries also matter. The notes disclose this spread. “Central kinetic energy” would be a clearer live label. No plane-wave exact transmission accuracy is claimed by this audit.
- **Three-Body Surf:** Surviving 800 model-time units is not a proof of orbital stability. Replace “stable orbit!” at that cutoff with “still orbiting at the time limit.” The implemented dynamics are circular restricted three-body dynamics, not three mutually interacting finite masses, as correctly stated in the notes.

## Validation evidence

- `npm run check`: file/link checks passed; **56 existing Node tests passed**.
- Additional audit probe script: **55 assertions passed**, covering targeted discrepancy reproductions and selected independent invariants/limits. Some assertions intentionally verify the presence of bugs; this is not “55 physics models passed.”
- Numerical checks include collision momentum/restitution across mass and restitution settings, Kepler ellipse identities, all eight QHO state normalizations, closed diffusion conservation, the supplied Life pulsar's period, relativistic velocity bounds, point-lens roots, and Schwarzschild limits of the Kerr formulas.
- The additional double-pendulum run accumulated an absolute energy drift of **0.0002726 model energy units over 100 s** at the supplied 1/240 s step, below the chosen 0.001 diagnostic tolerance. This is a representative trajectory check, not a uniform bound over chaotic initial conditions.
- Headless Chrome loaded the actual local pages and confirmed Bell, idle collider, wormhole, and Roche readouts/state. No experiment files were patched for the probes; page-memory diagnostic changes disappeared when the browser closed.
- Existing tests also cover electrostatic potential gradients, magnetic field limits, Boris speed/radius preservation, Faraday sign/derivative, Maxwell stability/propagation, clock precision, and higher-dimensional geometry.
- No exhaustive browser interaction suite, full fluid convergence study, full parameter sweep for every numerical solver, long-time Kerr critical-orbit error bound, or statistical calibration of the illustrative collider was performed.

## Coverage: original 25 worlds

| World | Mathematics reviewed | Assessment |
|---|---|---|
| Sound Frequency | 64 sine membrane modes; eigenfrequency scaling; complex driven/damped response | Consistent with declared membrane approximation, slowed phase and compressed displacement. |
| Electromagnetic Fields | Softened Coulomb E = −∇V; wire/loop/coil Biot–Savart; Lorentz/Boris motion; dipole flux and Faraday; TMz Yee updates | Consistent within stated cores, ideal fields and grid approximations; model tests pass. |
| Double Slit Lab | sinc² envelope, cos² interference, incoherent sum, sampling and fringe spacing | Marginal intensity matches the declared far-field teaching prescription. Ripple field is separately illustrative; no exact near-field or conditional which-path validation claimed. |
| Qubit Box | Infinite-well eigenstates, energies, equal two-state superposition and energy measurement | Consistent; mass edits update energies. Measurement is energy basis, not position collapse. |
| The Bell Game | Singlet correlation, pair bins and CHSH statistic | F01–F02. |
| Quantum Tunnel | Finite-difference Schrödinger real/imaginary update, Gaussian initialization, region probabilities | Consistent with documented numerical scheme; packet-energy caution above. Absorption and integrator error preclude treating live regional sums as exact scattering coefficients. |
| Quantum Zeno Effect | Exact two-state unitary, Born sampling, product survival probability | Consistent with ideal projective-measurement model. |
| Time Observatory | Schwarzschild hovering lapse, SR rate, Earth clock-rate ratio; cancellation-safe tiny deltas | Consistent; black-hole, speed and altitude modes reviewed. |
| Curved-Space Gravity | Gaussian gradient/Hessian and induced-surface geodesic acceleration | Consistent as a spatial surface analogy, not an Einstein-equation solution. |
| Kerr Black Hole | Equatorial null radial potential, derivative, azimuthal rate, horizon and photon rings | Consistent at equation level; Schwarzschild limits checked. Close-critical trajectory convergence remains outside this audit's quantitative validation. |
| Wormhole Pilot | Induced metric, embedding, conserved speed/angular momentum and crossing condition | F04. |
| Three-Body Surf | Circular primaries, inverse-square restricted dynamics, RK4, rotating coordinates | Consistent at equation level; finite-time stability wording caution. |
| Roche Limit | Central and softened self-gravity, fluid reference estimate, clumped fraction | F06. |
| Twin Paradox Lab | Proper-time totals, Lorentz boost, light-pulse interception, turnaround simultaneity | Core equations consistent; boosted-marker interpretation caution. |
| GPS vs. Einstein | Daily rate sum and cΔt range equivalent | F07. |
| Gold Foil Lab | Coulomb/uniform-sphere force, speed scaling, outgoing angle | F03. |
| Ring Collider | Beam-energy ramp, γ and high-energy speed approximation, illustrative event generation | F05. Event weights/masses/tracks are expressly illustrative. |
| The Light Factory | Retarded-history field-line construction | Matches the disclosed visual construction; not a Liénard–Wiechert or Maxwell radiation solution. |
| The Gas Box | Elastic disk impulses; mass weighting; temperature velocity scaling; 2D Maxwell speed distribution | Core formulas consistent. Hard-disk contact handling and gravity are numerical approximations; no quantitative pressure equation-of-state validation. |
| The Magnet Machine | Ising ΔE = 2s(Σneighbors+h), Metropolis acceptance, bond-counted energy | Consistent with periodic square-lattice J = kB = 1 model. Critical-temperature language applies to zero field and the infinite-lattice limit. |
| Turing Patterns | Gray–Scott reaction terms, four-neighbor Laplacian, explicit update | Matches displayed model. Finite-grid/step and nonlinear stability remain numerical limitations. |
| The Wind Tunnel | D2Q9 equilibrium, BGK relaxation ν = (1/ω−1/2)/3, bounce-back, inlet/outlet, Re | Core formulas consistent with disclosed 2D lattice model. Not validated as quantitative 3D aerodynamics or fully resolved turbulence. |
| Fourier Sandbox | Discrete sine/cosine coefficients, DC normalization, truncated reconstruction | Consistent; finite harmonics retain Gibbs behavior. Audio normalization/DC behavior does not constitute a calibrated amplitude measurement. |
| Chaos Map | Logistic iteration and cobweb/bifurcation sampling | Consistent; finite transients/iterations are visualization choices. |
| Manifold Playground | Surface parameterizations/tangents; 3–8D cubes, rotations and sections; 4–8D knot deformation/projection/slices | Consistent with stated geometry. Paths are prescribed, not geodesics; finite knot slices are polyline approximations. |

## Coverage: 12 added worlds / all 43 modes

| World / modes | Equation-to-implementation review |
|---|---|
| Motion & Machines — projectile | Quadratic drag −b|v|v and gravity in RK4; vacuum range comparison correct. Landing interpolation is finite-step. |
| — simple pendulum | Nonlinear sine acceleration and energy agree; period explicitly small-angle. |
| — double pendulum | Equal-length/mass coupled derivative and energy agree; representative long run checked. |
| — coupled pendulums | Symmetric/antisymmetric frequencies and exact linear normal-mode superposition agree. |
| — collisions | Momentum and restitution solution agree; visual-contact caution above. |
| — Newton’s cradle | Prescribed ideal equal-group transfer and harmonic timing, with unresolved contact elasticity disclosed. |
| — driven spring | Steady-state amplitude/phase agree with ẍ+γẋ+4x=cosωt; drawing compression disclosed. |
| — gyroscope | mgr/(Iω) and angular momentum agree; fast-top approximation excludes nutation/instability. |
| Orbits & Slingshots — Kepler | Eccentric-anomaly solve, ellipse, P²=a³ and vis-viva agree in AU/years. |
| — gravity assist | Asymptotic numeric kernel consistent; F09 drawing direction. |
| Bernoulli Flow — Venturi | Area-speed continuity and pressure change agree. ρ=1000 kg/m³ makes the numeric ½(v₁²−v₂²) term kPa; this is not a missing-density bug. |
| Circuit Transients — RC | τ=RC in seconds is correct for kΩ × mF; 5/R is mA. |
| — RL | L/R time constant, current and inductor voltage agree. |
| — RLC | q̈+Rq̇+q/C=0 for L=1 agrees, including critical R=2/√C. |
| Waves & Optical Bench — strings/tubes | String/open-tube and odd closed-tube frequencies and displacement boundaries agree. |
| — Doppler | Moving source/stationary observer axial shifts agree; Mach is restricted below 1. |
| — reflection/refraction | Snell relation, reflected angle and TIR branch agree. n₂<1 should be understood as an ideal index model. |
| — thin lens | Image distance, magnification, virtual extensions and focal singularity agree. |
| — prism | Minimum-deviation formula and wavelength index model agree; independent incidence and schematic outline disclosed. |
| — polarization | Equal-component phase ellipse and cycle-averaged analyzer power agree over supported 0–90° phase range. |
| — Chladni | Cosine-mode nodal ansatz agrees with equation; explicitly idealized, not a free-edge elastic-plate eigensolver. |
| Thermal Processes — diffusion | No-flux discrete Laplacian, concentration conservation and binary mixing entropy agree. |
| — heat transfer | Lumped conduction, convection and Stefan–Boltzmann losses agree; 8× physical playback explicitly identified. |
| Quantum States & Light — uncertainty | Gaussian standard deviations satisfy σxσp=ℏ/2. |
| — atomic orbitals | 1s, 2s, 2pz and 3dz² hydrogenic density shapes and nodes agree; peak/brightness normalization disclosed. |
| — photoelectric | hf−Φ and eV frequency conversion agree; intensity controls schematic emission count. |
| — quantum oscillator | Hermite recurrence, eigenenergies and normalized densities agree; n=0…7 integrals checked. |
| Relativistic Motion — lengths/velocities | Length contraction and collinear velocity addition agree; subluminal edge cases checked. |
| — light cones | Minkowski interval and timelike/spacelike/null classification agree; origin is a coincident degenerate case. |
| Lenses & Gravity Waves — lensing | Point-lens roots agree; F10 input normalization. |
| — gravitational waves | Plus-polarization test-ring strain and twice-orbit frequency agree with a fixed-frequency quadrupole illustration. No merger integration is claimed. |
| Stars & Cosmic History — stellar life cycles | Lifetime power law and schematic stages match stated approximate model; thresholds are not universal stellar-evolution predictions. |
| — expansion/redshift | Scale-factor redshift and wavelength stretching agree. |
| — CMB | T=2.725(1+z) and wavelength-form Wien constant agree; map explicitly synthetic. |
| — galaxy | Plummer plus cored-halo circular-speed equation agrees; settling/rotating dots explicitly illustrative, not the calculated orbit solution. |
| — Big Bang timeline | Log-second coordinate and approximate milestones agree. |
| Nuclei & Particles — decay | Exponential lifetimes and half-life expected count agree. |
| — fission | F08 capped recurrence. |
| — fusion | D–T reaction energy and declared normalized Gamow-style proxy agree; not a calibrated reaction rate. |
| — Standard Model zoo | Displayed electric charges, grouped force carriers and Higgs agree. |
| Chaos, Fractals & Life — Lorenz | Three ODEs and RK4 step agree; model time t×0.9 matches three 0.005 steps per 1/60 host tick. |
| — Mandelbrot | z²+c iteration and radius-2 escape criterion agree; finite-iteration membership caveat present. |
| — Life | Synchronous toroidal B3/S23 rule agrees; supplied pulsar repeats after three generations. |

## Suggested repair order

1. F01–F03: correct the Bell comparison/statistical messaging and Rutherford parameter semantics.
2. F04–F07: enforce valid launches, handle collider idle state, and align Roche/GPS labels with what is actually computed.
3. F08–F10: reconcile capped fission equations, gravity-assist orientation, and lensing normalization.
4. Add focused regression tests for each repaired discrepancy and update corresponding translated strings through the existing localization mechanism.

Evidence files and runnable probes are included in `simulation-math-audit-evidence.zip`. Paths and line numbers refer to the audited source snapshot; SHA-256 hashes identify that snapshot.
