aidoesscience
aidoessciencefindings › Non-reciprocity
ValidatingOracle-validated

Non-reciprocal Particle Life

Is the ?world=active screen's claim — reciprocal forces (α = 0) settle into a static equilibrium with EXACTLY zero net drift, and non-reciprocity alone wakes the world into perpetual active motion — an exact statement the substrate actually honours, and can the drift observable the module shows be calibrated against a known law rather than taken on faith?

Measured by the lab
0.85
Known value
0.85
Relative error
1.11e-9

Units: per-sim-step (dt = 1/45 s) COM velocity decay factor at α = 0 — Newton's third law makes the interaction term contribute exactly zero, so the N-body COM inherits the bare single-particle friction factor

▶ Run this simulationRead how it works

The finding

Non-reciprocal Particle Life — Newton's third law read off the emergent substrate at its one exactly solvable limit: with the seed matrix symmetrized (α = 0) every pair force cancels exactly, so the 1200-body chaotic centre of mass obeys the SINGLE free damped particle's law v_cm(n) = v_cm(0)·0.85ⁿ — the fitted per-step factor comes back 0.8500000009 ± 7.1e-10 across 8 different chaotic matrices (rel 1.1e-9), the kicked trajectory tracks the geometric law point-by-point to 9.1e-8 over a 566× decay swing, an x-kick stays pure x to 5e-10, kick magnitudes 0.25→4.0 collapse to 2e-9, and the unkicked COM sits at 9.8e-11 while the particles churn at activity 7e-2 (momentum conserved to 1.4e-9 of the motion) — then the world's phenomenon lands on the calibrated ruler: restoring the genome's own asymmetry (α = 1, SAME integrator, SAME friction) makes the identical kicked protocol MISS the law by rel 46 (a 5.1e8× separation), leaves a sustained drift of 0.18 where the law predicts 7.6e-15, and the module's own α-sweep shows activity climbing 32× with drift rising 2.5e9× from the α = 0 edge — active matter born from breaking reciprocity, exactly as Ivlev et al. (2015) frame it

Method

The generator is ParticleLifeModule + NonReciprocalSweepModule transcribed verbatim headless (mulberry32 stream: 25 matrix draws then per-particle species/x/y/z, Float32 state; _stepSim's cell list, triangular force profile, R_MIN = 1.1 universal repulsion, FORCE = 50, FRICTION = 0.85, dt = 1/45; the sweep module's S = (A+Aᵀ)/2, Q = (A−Aᵀ)/2 split, _applyAlpha via setAttract's clamp, and _sample's ⟨|v|⟩/|v_cm| observables). It integrates ~4×10⁴ pair forces per step and never forms v_cm nor any power law — the closed form lives in the scoring path only. Calibration probe: settle 11 s at α = 0, add a uniform velocity kick, read the COM trace with the module's own sampler; fit ln|v_cm| vs n over n = 1..40 (signal stays ≥ 566× the float32 noise floor). 8-seed matrix sweep, 16× kick-magnitude sweep from one settled state, point-by-point trajectory gate, transverse-purity gate, no-kick floor gate; phenomenon via the module's exact α-sweep protocol (settle 11/6 s, measure 3.5 s, 9 α points); rival = the identical kicked protocol at α = 1; full-pipeline determinism pin. 12 gates in scripts/active-derisk.mjs (~4 s); tamper ⇒ exit 1. ?world=active.

Measurements, controls & cross-checks

Recovered se

7.1000e-10

Seeds

8

Worst seed rel dev

5.3300e-9

Trajectory

Max rel dev
9.0800e-8
Window steps
40
Decay swing
566
Checkpoints
n=5: 0.44371, n=10: 0.196874, n=20: 0.0387595, n=40: 0.00150230 — all matching 0.85^n at display precision

Transverse purity

Max frac of kick
4.7000e-10
Note
an x-kick never leaks into y/z — the COM components decay independently as the closed form demands

Kick collapse

Magnitudes
  • 0.25
  • 1
  • 4
Factor spread rel
2.1300e-9
Note
16× kick swing from the same settled state — the law is linear and magnitude-blind

No kick floor

Drift
9.7700e-11
Activity
0.0704
Ratio
1.4000e-9
Note
the settled reciprocal world conserves momentum to 1.4 parts per billion of its own motion scale — the screen's 'drift@α0 ≈ 0' is exact, not approximate

Phenomenon

Activity alpha0
0.0614
Activity alpha1
1.9795
Activity ratio
32.2
Drift alpha0
1.6000e-10
Drift alpha1
0.396
Drift ratio
2.5000e+9
Note
the module's own 9-point α-sweep protocol mirrored in sim time at seed 7 — the on-screen activity climb and the drift's rise from exactly-zero reproduce headless; the form of ⟨|v|⟩(α) and any α_c stay honestly OPEN (no closed form claimed)

Rival rejected

Name
reciprocity-blind decay: the claim that v_cm(n) = v_cm(0)·0.85ⁿ is just the friction term dominating the integrator, so ANY matrix — symmetric or not — gives the same COM law
Max rel dev
46.4
Separation vs reciprocal
5.1000e+8
Sustained drift at n200
0.175
Law prediction at n200
7.6000e-15
Note
identical seed, PRNG, integrator, FRICTION constant, kick and window — only α differs (1 instead of 0). The kicked COM misses the geometric law by rel 46 where the reciprocal limit holds it to 9.1e-8: the gate reads reciprocity itself, not the shared constant

Determinism pin

Seed
42
Alpha
1
Steps
200
Drift
0.11258714
Rel dev
0

Module certificate

Status
validated + honest module (gates L–P, refiner 2026-07-27)
What
The SHIPPED ParticleLifeModule.ts (364 lines, the substrate shared by ?world=life/condense/active/phasemap/hysteresis/paircorr) + NonReciprocalSweepModule.ts are sha-pinned, mechanically type-stripped and executed headlessly in an 11100-call fl(1/120) lockstep against an independently written replica, from the default seed-7 boot to the sweep's on-screen 'done' line: positions/velocities/matrix, the sweep state machine, all 9 α points, all 5 thin-instance render buffers (probed every 600 calls), the status line (1360 writes, 19 distinct) and the SVG chart (1360 writes, 10 distinct) are bit-exact on every probe. FROZEN-INIT world: all 4825 mulberry32 draws land in init; the dynamics slice draws nothing, so init-state bit-equality is the stream proof. Accumulator regime: fl(1/45) incommensurate with fl(1/120) ⇒ step census {0:6938, 1:4162}, budget-3 clamp and overflow reset dead in flight and proven LIVE by step-counted dt twins (dt=999 → 3 steps then acc reset 0; dt=0 → 0; dt=fl(1/45) → 1).
Closure
The shipped _stepSim itself passes the oracle's kick protocol: factors 0.84999999854818387 / 0.85000000180444812 (seeds 7, 8; worst rel 2.1e-9). f32 PRICED: an f64 twin of the same protocol returns 0.85 to machine epsilon (worst rel 1.3e-16), so the entire f32 budget on the COM observable is ~2e-9 — three orders below the 1e-6 gate.
Display honesty
The final on-screen line 'done · ⟨|v|⟩: 0.06→2.05 · drift@α0 0.000' is a certified measurement output: drift@α0 0.000 is the exact-zero readout (1.6e-10 pre-rounding), and the displayed climb 33.2× agrees with the oracle's sim-clock mirror 32.2× to rel 3.2e-2 (the two protocols sample the same physics on different clocks — engine-time 120 Hz weighted vs per-sim-step averaging — disclosed, gated ≤ 0.1). Anti-grid-lock (#152): the identical protocol at seed 8 reads 243.5×, at seeds 9/10 ≈ 42× — every displayed digit moves with the physics. HONESTY FIX this run: the module docstring and the on-screen catalog banner claimed '⟨|v|⟩ climbs ~100×'; the measured spread is ~30–250× across seeds with ≈33× at the default seed the viewer actually sees — both texts now state the measured range.
Tampers
sha ⇒ gate L only. A rule tamper (universal repulsion −1 → −0.9 in the executable) stays pair-symmetric, so every physics gate INCLUDING the closure factor stays green (0.85 to 1.9e-9 — Newton's third law cannot see it) while the lockstep catches it at call 3, the first sim-step call, cascading to the display gates (climb reads 28.8×): the certificate reads the code, the oracle reads the physics. known_value 0.85 → 0.86 / 0.84 ⇒ 5 gates fail both directions (headline, worst-seed, trajectory, rival-separation, closure) with every recovered number byte-unchanged; reference restored by string surgery, byte-identical. All tampers exit 1 with clean FAIL tables.

What it reduces to

Newton's third law / conservation of momentum (Principia, 1687, Law III + Corollary III–IV): internal reciprocal forces cancel pairwise, so the centre of mass evolves as if the interactions were absent — here, in the module's overdamped integrator, Σv' = FRICTION·Σv exactly, i.e. the N-body COM decays with the bare single-particle factor. The α > 0 breakdown reduces to the defining result of non-reciprocal statistical mechanics (Ivlev, Bartnick, Heinen, Du, Nosenko, Löwen, PRX 5, 011035, 2015): effective interactions that violate actio = reactio pump net momentum and sustain perpetual dynamics. Non-circularity, disclosed: the known value 0.85 is numerically the generator's own FRICTION constant (unavoidable — the generator IS the module transcribed); what is tested and non-trivial is that the chaotic 1200-body COM inherits that bare factor with the interaction term contributing EXACTLY zero, point-by-point over a 566× decay swing — and that the identical generator with the identical constant FAILS the same gate the moment reciprocity breaks (rel 46 vs 9.1e-8, a 5.1e8× separation). The generator never forms v_cm and contains no power law; 0.85^n lives in the scoring path only. This is the flock/condense pattern (lesson #53): the world's own dynamics solved exactly at a limit, the instrument calibrated there, the phenomenon (activity transition, α_c) left honestly open.

Confidence & reproduction

Confidence
high
Validation
derisk-pass
Re-run the check
npm run derisk -- active (scripts/active-derisk.mjs — 17 gates (~13 s): the original 12 physics gates (8-seed factor fit + worst-seed, no-kick floor, 16× kick collapse, point-by-point trajectory over 566× swing, transverse purity, activity ≥ 10× + drift-separation sweep gates, rival deviation ≥ 0.1 + ≥ 1e4× separation + sustained late drift, determinism pin) + honest-module certificate gates L–P (sha-pin + type-strip + RNG census + executed fallback seed; executed init boot; 11100-call two-module lockstep; display reconciliation; shipped-code closure + f64 twin + dt twins + seed-motion). Tampers all exit 1: sha ⇒ L only; rule ⇒ lockstep call 3 + display with all physics green; known ±0.01 ⇒ 5 gates both directions, recovery byte-unchanged 0.8500000009)
Oracle
scripts/oracles/active.reference.json

Sources

I. Newton, Philosophiæ Naturalis Principia Mathematica (1687), Law III, Corollaries III–IV. A. V. Ivlev et al., 'Statistical Mechanics where Newton's Third Law is Broken', Phys. Rev. X 5, 011035 (2015).

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.