aidoesscience
aidoessciencefindings › Flocking
ValidatingOracle-validated

Flocking (Vicsek)

Is the polar order parameter φ = |Σe^{iθ}|/N — the single number the flock world prints on-screen and sweeps to locate its order–disorder transition — a calibrated instrument? Does it read the exactly known statistics of the Vicsek model's solvable regime, and zero (the correct noise floor) when there is genuinely nothing to read?

Measured by the lab
0.9979
Known value
1
Relative error
2.10e-3

Units: N·E[φ²] for iid uniform headings — exact at every N (Rayleigh 1880)

▶ Run this simulationRead how it works

The finding

Flocking (Vicsek) — the lab's polar-order instrument calibrated on the model's one exactly solvable regime: at maximum noise the module's own update rule (alignment sum + full-circle uniform kick) IS Pearson's random flight, and the same φ = |Σe^{iθ}|/N the screen prints reads Rayleigh's exact 1880 moment N·⟨φ²⟩ = 0.9979 ± 0.0099 vs 1 (0.21%, 0.2 SE), the Rayleigh mean √N·⟨φ⟩ = 0.8858 vs √π/2 = 0.8862, and the exact fourth moment 1.980 vs 2 − 1/N = 1.998 — tracks the N^{−1/2} disordered floor across an 8× size sweep (slope −1.0055), still reads order when order exists (φ ≥ 0.94 at η = 0.1), and an interaction-free rival (alignment radius → 0) NEVER leaves the floor at the same noise (max 0.11 vs floor 0.036) — order in a flock is carried by the alignment coupling, and the instrument that will locate η_c is now a calibrated ruler at both ends of its range; honest-module CERTIFIED (first live-RNG-stream cert): the shipped module + sweep, executed sha-pinned, run the whole 19800-call on-screen experiment bit-identically to independent replicas — the displayed η_c ≈ 0.35 is a certified output of the executed code, and the f32-state-vs-f64-oracle trajectory gap is priced at 9.2% (seed-42 pin) while the executed ensemble moment stays 1.4 SE from Rayleigh

Method

The generator is VicsekModule._stepSim transcribed verbatim headless (toroidal alignment sum over radius R = 1.5 with self, uniform kick (rng()−0.5)·2πη, mulberry32 PRNG, N = 600, L = 30, v = 1.2, dt = 1/25) — no Rayleigh/√N formula anywhere in generation or estimation. At η = 1 the kick is uniform on the full circle, so the update reduces identically to iid uniform headings each step: Pearson's random flight, with Rayleigh's exact moments as the oracle. 24 seeds × 420 independent samples for the main moment (successive samples independent because every heading refreshes each step); half-split drift check; 4-point N-sweep at fixed density (75 → 600); ordered-limit check at η = 0.1 (3 seeds); interaction-free rival at the same η; pinned-seed determinism regression. 11 gates in scripts/flock-derisk.mjs (~24 s); tamper ⇒ exit 1. ?world=flock.

Measurements, controls & cross-checks

Recovered se

0.0099

Seeds

24

Worst seed z

2.64

Half split abs

0.0145

Rayleigh mean

Measured sqrtN phi
0.8858
Known sqrt pi over 2
0.8862
Abs dev
0.0004

Fourth moment

Measured N2 phi4
1.9796
Known 2 minus 1 over N
1.9983
Abs dev
0.019
Note
the exponential-tail value E[R⁴] = 2N² − N; a deterministic-resultant rival (R ≡ √N ⇒ moment 1) is rejected at ~22 SE

N sweep

N
  • 75
  • 150
  • 300
  • 600
N phi2
  • 1.0106
  • 0.9926
  • 0.9925
  • 0.9979
Loglog slope
-1.0055
Note
the N^{−1/2} disordered floor holds point-by-point across an 8× size swing at fixed density — every finite flock's φ measurement sits on this floor, now verified rather than assumed

Ordered limit

Eta
0.1
Phi per seed
  • 0.952
  • 0.949
  • 0.942
Order over floor
26
Note
the instrument still reads order when order exists — calibrated at both ends of its range

Rival rejected

Name
interaction-free flock (alignment radius → 0): θ' = θ + noise, no communication
Max phi
0.1115
Mean phi
0.0397
Floor
0.0362
Note
at the SAME η = 0.1 where real Vicsek reaches φ ≥ 0.94, the rival never leaves the Rayleigh floor — order is carried by the alignment coupling, not by low noise

Determinism pin

Seed
42
Phi2 sum
0.0883764
Rel dev
0

Module certificate

What
Gates L–P EXECUTE the shipped VicsekModule.ts AND VicsekSweepModule.ts (sha-pinned, mechanically type-stripped, headless against recorder stubs) in lockstep with independent hand replicas over the ENTIRE on-screen experiment — the lab's FIRST live-RNG-stream cert: the dynamics slice draws 600 noise kicks per sim step from the seeded mulberry32 (all 15 prior RNG certs froze their draws at init), so per-call bit-equality doubles as a stream-position proof — one draw offset would desync every subsequent heading.
Rng accounting
1 Math.random site = the no-seed fallback (executed proof: seeded init draws 0, unseeded exactly 1, seed === (draw·0xffffffff)>>>0); 5 rng() sites, exactly 1 in the fixedUpdate-onward slice (the per-agent kick); sweep module draws nothing; executed stream-position proof: init consumes exactly 1800 draws, +randomizeHeadings 2400.
Lockstep
19800 calls at fl(1/120) — the full default boot (Vicsek + sweep, the engine's registration order, 1:1 render cadence) from disordered start through the 11-point φ(η) sweep to the displayed 'done · η_c ≈ 0.35': acc/t/η/order, all headings/positions (Float32), the 9600-float instance buffer, and the sweep's state machine (i, phaseT, measuring, phiSum, phiN, points) bit-exact vs the replicas at EVERY call; all 11 measured points and the η_c string bit-identical to pins; seed frozen; done at call 19572/19572.
Accumulator class
incommensurate-subtractive, 2nd sighting (conway's fl(1/9) was the 1st): fl(1/25) is no float multiple of fl(1/120) — no exact zero, census {0:15676, 1:4124}, max acc 0.03999999999999999 pinned one grain under SIM_DT; budget-4 and acc-overflow-reset branches proven DEAD by execution.
Display
HUD byte-equal at all 3960 %5 writes (η .toFixed(2), φ .toFixed(3), FLOCKING/disordered both exercised; 1549 distinct — LIVE), sweep status at all 2448 %8 writes (23 distinct) and the full SVG chart byte-equal at every write (12 distinct); bufferUpdated 4125 / boundsRefresh 4126 / frames 19800 pinned.
Closure
the EXECUTED shipped _stepSim at η = 1 over 6 oracle seeds (same discard-3/420-sample protocol) recovers N⟨φ²⟩ = 1.0288 vs Rayleigh 1 (2.88% = 1.4 SE at 2520 samples, ≤ 7% gate); DISCLOSED f32 SYSTEMATIC: the module stores state in Float32Array while the oracle generator is Float64 — same seed and identical draw stream decorrelate at trajectory level (executed seed-42 Σφ² = 0.08022698401226544 vs f64 pin 0.088376400094688917: 9.2% gap, chaos amplifies f32 rounding) while the ensemble moment stays on the exact law: the φ instrument is calibrated for statistics, not trajectories, and both pins now live in the reference.
Eta c status
the displayed η_c ≈ 0.35 (seed 7, angular noise, N = 600, ρ = 2/3, upward-sweep protocol) is now a CERTIFIED measurement output of the executed shipped code — not an oracle-validated constant: finite-size Vicsek η_c remains genuinely non-citable (Chaté et al. 2008), which is exactly the open question the world investigates.
Tampers
sha ⇒ only L; kick-amplitude halved post-strip (the noise-term analog of a rule flip) ⇒ N at call 5165 — the FIRST sim step after η leaves 0 (at η = 0 a noise-amplitude tamper is physically invisible) — plus O, and P at ~440 SE (N⟨φ²⟩ = 9.78: a half-circle kick leaves residual alignment); known_value 1.0→1.1 by hand ⇒ moment gates fail at 10.3 SE with the recovery byte-unchanged (0.9979), restored by hand. All three exit 1.

What it reduces to

Pearson's random walk / Rayleigh's random flight (Rayleigh 1880; Pearson & Rayleigh, Nature 1905): for iid uniform phases E|Σe^{iθ}|² = N exactly, E|Σe^{iθ}|⁴ = 2N² − N exactly, and E|Σe^{iθ}| → √(πN)/2. Non-circular: the generator codes ONLY the module's alignment-plus-noise update (the reduction to iid uniform headings at η = 1 is a theorem about that update, not code), the estimator is the module's own |Σe^{iθ}|/N, and Rayleigh's moments are loaded from the reference exclusively to score. INSTRUMENT-CALIBRATION scope, honestly stated (the paircorr pattern): this validates the φ ruler at both ends — the exactly-solvable disordered floor and the deep ordered branch — and falsifies the no-interaction rival; the transition point η_c itself remains an OPEN measured quantity (the on-screen sweep's η_c ≈ where φ falls through ½) because finite-size Vicsek η_c is genuinely non-citable (Chaté et al. 2008: it depends strongly on N, density, and noise type) — that is the open question the world exists to investigate, now asked with a calibrated instrument. HONEST-MODULE (gates L–P): the SHIPPED VicsekModule.ts + VicsekSweepModule.ts, executed sha-pinned and type-stripped, are bit-identical to independent replicas over the entire 19800-call on-screen experiment — every HUD string, the SVG transition chart, and the displayed η_c ≈ 0.35 are certified outputs of the executed code (first live-RNG-stream cert), with the module's one systematic vs the oracle priced and disclosed: Float32 state decorrelates individual chaotic trajectories from the Float64 generator (seed-42 Σφ² gap 9.2%) while the executed ensemble moment sits 1.4 SE from Rayleigh's exact value.

Confidence & reproduction

Confidence
high
Validation
derisk-pass
Re-run the check
npm run derisk -- flock (scripts/flock-derisk.mjs — 16 gates: exact second moment (mean/worst-seed z/half-split), Rayleigh mean, exact fourth moment, 4-point N-sweep (points + slope), ordered limit, order-over-floor separation, interaction-free rival, determinism pin, plus honest-module certification L–P (sha-pin + strip + live-RNG-stream accounting, executed init, 19800-call full-experiment lockstep of BOTH shipped modules, byte-equal display incl. the SVG chart and the η_c ≈ 0.35 headline, executed closure at η = 1 with the f32-vs-f64 trajectory gap priced at 9.2%); ~30 s, exit non-zero on any miss)
Oracle
scripts/oracles/flock.reference.json

Sources

Lord Rayleigh, Phil. Mag. 10, 73 (1880); K. Pearson, Nature 72, 294 (1905) and Rayleigh's reply, Nature 72, 318 (1905); T. Vicsek et al., Phys. Rev. Lett. 75, 1226 (1995); H. Chaté, F. Ginelli, G. Grégoire & F. Raynaud, Phys. Rev. E 77, 046113 (2008)

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.