Asking the fleet what it is doing…
monad-knowledge Wi-Fi sensing lab · FIIT STU
Campaign session

01KW074MN1Q3M0JM2VF9WXGYFC

finished 2026-06-25 20:22:00.097398+00:00 → 2026-06-25 20:22:49.934240+00:00 · 5 runs · supervisor: react-agent

“Mismatched-FD ablation REFUTES the FD-specific reading of session-1's win. At rho>=1 (n=105), the matched Weidmann closure (1.23), a constant closure (1.24) and an anti-physical increasing closure (1.24) give IDENTICAL RMSE -> the continuity gain is FD-agnostic, not the specific physics. And plain smoothing (0.91) BEATS every PINN variant -> the continuity content is a suboptimal generic regularizer, not physics. The session-1 -11% was confounded exactly as the critic feared. Demote continuity-prior-regularizes-density: the 1D-continuity-with-FD-closure prior earns no specific support here; a generic smoothness prior is better. Regularization helps the under-determined CSI->density inverse, but the *fluid physics* is not what helps.”

Archive snapshot, as of 18 h ago — the run corpus is rebuilt once a day, so this page is not a live reading. The fleet panel is the live one; it refreshes every 30 s.

Success criteria

CriterionResolved
Crush data reaches rho>=1 with n=105 high-regime cell-frames (reused session-1 burst runs). yes
continuity_fd_ablation trains unconstrained / smoothing / PINN-{weidmann,constant,increasing}; high-regime RMSE reported. yes
Defeater: the continuity prior does NOT distinctly help at rho>=1 (FD-agnostic; beaten by smoothing) -> the FD-specific claim is refuted. no
Framing held: in-silico ablation; the honest verdict demotes the hypothesis rather than confirming it. yes

Synthesis

Mismatched-FD ablation — does the continuity gain come from the physics?

Session 1 found the continuity-PINN beat an unconstrained MLP at rho>=1 (-11%), but the critic (severity high) flagged that the PINN's Weidmann FD closure is the same velocity law JuPedSim uses to generate the crowd, so "physics wins" could not be separated from "the generator's FD was leaked into the loss". This session settles it by training the SAME MLP on the SAME crush data (peak rho 4.98, n=105 high-regime cell-frames) under five priors.

High-regime (rho>=1) density RMSE:

  • unconstrained (data only): 1.56
  • smoothing only (d2/dx2 + d2/dt2, NO physics): 0.91
  • PINN constant closure v(rho)=v0 (wrong): 1.24
  • PINN increasing closure v(rho)=v0*rho/rho_max (anti-physical): 1.24
  • PINN Weidmann closure (matched to the generator): 1.23

Two decisive findings.

  1. The continuity gain is FD-agnostic. The matched, constant and anti-physical closures give identical RMSE (1.23/1.24/1.24). A deliberately wrong velocity law regularizes exactly as well as the matched one — so the prior is not using the fundamental-diagram physics. (di2023's "a wrong PINN prior hurts" does not appear here, because the physics is not doing the work.)
  2. Plain smoothing beats every continuity variant (0.91 vs ~1.23). A generic smoothness prior with no velocity model is the better regularizer at high density.

Verdict. The session-1 -11% was confounded as the critic feared: it is generic regularization of the under-determined CSI->density inverse, not the continuity physics, and it is not even the best regularizer. This refutes the FD-specific claim of continuity-prior-regularizes-density on this testbed — demote it; the "crowd-as-liquid" continuity prior earns no specific support over plain smoothing here. What survives is narrower and honest: some spatial/temporal regularization helps the sparse CSI->density inverse; the fluid physics is not the active ingredient.

(Single seed; in-silico; test-lab-synth corridor. The cleanest next probe would be whether the continuity prior ever beats smoothing in a regime with strong directed flow where mass-conservation carries real information the smoother lacks — but that is a narrower, lower-priority question after this negative.)

Criticism adversarial review

Written by the campaign-critic subagent against the brief's success criteria — read it as the counter-position to the synthesis above.

Self-critical notes (the ablation IS the adversarial test)

This session was designed to attack session-1's confound, and it fired. Remaining caveats so the negative is not over-claimed: (a) single seed — the matched/wrong closures being within 0.01 of each other is well inside any seed noise, which is itself the point (no separation), but the smoothing < PINN gap (0.91 vs 1.23) should be seed-replicated before it is load-bearing; (b) lambda_phys was held fixed across priors — a closure-specific lambda tuning could shift things, though equal lambda is the fair ablation; (c) the smoothing penalty and continuity penalty have different natural scales, so "smoothing wins" is a direction, not a calibrated margin; (d) test-lab-synth has low directed-flow structure, the regime most favourable to mass-conservation — a stronger uni-directional corridor flow is the one place the prior might still earn its keep. Net: the FD-specific claim is refuted here; the door is left open only for a strong-directed-flow regime, as a low-priority follow-on.


Addendum — post-hoc statistical re-analysis (2026-07-06, statistics skill, operator session)

Independent recomputation and adversarial verification of the mismatched-FD ablation (continuity_fd_ablation.py, session 01KW074MN1Q3M0JM2VF9WXGYFC) under the house statistics contract (.claude/skills/statistics/). Every number in the prior audit reproduces to the digit from the raw run parquets; the demote of continuity-prior-regularizes-density is upheld. Corrections below re-size the precision the recompute claims — the direction of the verdict is not in question, the strength of the evidence is.

  • [HIGH → CORRECTED] The 30-seed CIs are training-noise error bars, not finite-data uncertainty. All five attached runs carry seed: 0 and fading_seed: 0 (verified in every resolved.yaml); they differ only in n_agents ∈ {12,24,36,60,80}. There is one physical trajectory realization. The 30 recompute "seeds" reshuffle only the 70/30 split and the MLP init on a single fixed (X, ρ), so the paired-t interval for smoothing−weidmann at ρ≥1 (−0.450, SD 0.147) is a Monte-Carlo interval of half-width 1.96·SD/√n_seeds — 0.053 at n=30, 0.026 at n=120, 0.013 at n=480. It shrinks with the compute budget, carrying no information about generalization beyond this trajectory. Reporting p=1.9e-16 / dz=−3.05 (huge) / "tightly-bounded, CI excludes 0 by a wide margin" conflates MC error with finite-data uncertainty, which the contract forbids (test-chooser.md, "Monte-Carlo error is its own error bar … distinct from finite-data uncertainty — never conflate the two"). This is a milder form of the same pseudo-replication the audit flags in the session's n=105. Correct phrasing: the smoothing<PINN gap and the FD-closure indistinguishability are robust to split+init noise (the single-seed numbers were not an init fluke) — but the effect is established on one trajectory; the recompute rules out an alternative explanation, it does not strengthen the evidence toward generalization.

  • [HIGH → severity CORRECTED to MEDIUM] n=105 mis-states representativeness, not precision. Provenance (repro3.py) confirms 105 high-regime cell-frames collapse to 18 distinct (run, frame) instants, 102 of them from just two runs (crush80 76, crush60 26); adjacent cells within a corridor instant are a cluster, not independent draws (assumptions.md). The session, however, ran no inference on n=105 — it shipped bare point estimates — so there is no naive variance the count corrupts, and the "≈6× precision inflation" figure presumes an inferential n that was never used. The audit's own recompute infers over seeds, not cells, so it is likewise immune. Note the reported n=105 is the seed-0 draw and sits below the cross-seed mean of 128 (range 99–184) — a conservative count, not an inflated one. The defensible reading: the "crush" evidence rests on two runs / 18 instants; report it as such.

  • [MEDIUM → CONFIRMED] The campaign's originating −11% premise is fragile to seed noise. unconstrained − pinn_weidmann at ρ≥1: mean 0.076, 95% CI (−0.009, 0.163), p=0.095, dz=0.31 — covers zero. unconstrained also carries the largest across-seed SD of any prior (0.187 vs 0.09–0.15), and the seed-0 baseline (1.562) that anchored the session-1 headline sits +0.91 SD above its own mean (1.391). Unlike the point above, this claim is methodologically sound as stated: showing a result is fragile to split+init noise needs only training-noise analysis (devore2012_62c8 ch.9). The originating "continuity-PINN beats unconstrained" premise was never itself shown robust — this compounds, not contradicts, the demote.

  • [MEDIUM → CONFIRMED, caveat added] Low-regime loss corroborates the demote but is not load-bearing. The notebook computes low/mid RMSE (unpersisted "all" field); at ρ<ρ_lo unconstrained (0.510) beats pinn_weidmann (0.575): diff −0.066, CI (−0.119, −0.004), paired-t p=0.038, Wilcoxon p=0.005 — the continuity prior costs accuracy in the dominant low-density regime, exactly the defeater's low-regime clause. It does not survive BH-FDR across the 15-test family (rank 7/15), and the uncorrected p is itself a single-dataset training-noise p (bullet 1 applies). Directionally corroborating, not decisive.

  • [MEDIUM → CONFIRMED] No reproducibility artefact was persisted. Session frontmatter (figure_count: 0, figures: []) and the S3 listing confirm only four markdown files exist for this python-ml standalone session — no reduction config, metrics.json, RMSE parquet, or the bar chart the campaign brief explicitly requested. Recompute was possible only because the notebook source is in git and the raw run parquets survived under sim/exp-csi-crowd/. A python-ml notebook session that emits load-bearing numbers must persist its metrics + config to S3 like sim-launched reductions do.

  • [DESIGN] The FD-agnostic null needs physical seeds, not more reshuffles. "Closures identical" is an equivalence claim; a pre-declared TOST margin is the rigorous instrument, not a non-significant difference (SKILL.md §5). Detecting an FD-closure separation smaller than ~0.1 RMSE would need ≈20+ independent physical (JuPedSim) seeds by the paired formula (diez2015_8380 ch.5); the observed 0.45 smoothing gap is large enough that a handful of physical seeds would confirm it. The single-seed budget (sim_params.seeds: [0]) cannot discharge the criticism.md "should be seed-replicated" caveat — the 30-seed recompute quantifies training noise only and does not substitute for it.

Corpus: wasserman2004_ea08 (bootstrap/MC error ch.8, 24.2), test-chooser.md (MC-error-is-its-own-error-bar), assumptions.md (correlated-cluster non-independence), diez2015_8380 ch.5 (paired power), devore2012_62c8 ch.9. Scripts + parquet under the audit dir (analyze_multiseed.py, bh_fdr.py, effect_sizes.py, repro3.py, multiseed_results.parquet).

Figure: fig-fd-ablation-seeds.png (source beside it) — per-seed grey dots (30 split+init draws) + bootstrap-CI accent per prior; smoothing separates cleanly, the three PINN closures overlap. The CI marks on it should be read as training-noise intervals on a single trajectory (bullet 1), not as finite-data CIs on the effect.

Attached runs

Run Gate Purpose Replay
WKZ5RQXC replay
PHAJP7P3 replay
MAZZ8ZXN replay
PJ8GM35G replay
PQEP2Y3G replay