c-exps1-fundamental-diagram — Session 01KS7ZS50AQTVF9RTGH101FQNR
Outcome: framework-state report. The FD physics verdict the brief asked for is deferred because the platform exposed three blocking gaps mid-session, two of which were fixed live and the third of which requires a follow-on PR before the (ρ, v) band can be evaluated.
What ran
37 runs attached, 0.023 / 2.5 CPU-h used. The corpus splits into three cohorts that the analysis must filter on params.phase:
| Cohort | phase label | Image digest (jupedsim-runner) | Count | Status |
|---|---|---|---|---|
| Vault-resolver probe | vault-resolver-probe |
f30158 (v1) | 1 | passed |
| Wave 1+2 v1 | fd-gate |
f30158 (v1) | 12 | passed but seed-invariant |
| Wave 3 v1 | fd-gate |
f30158 (v1) | 6 | exited 1, no artefacts |
| Wave 1+2+3 v2 | fd-gate-v2 |
f678c5 (v2 — this session's fix) | 18 | passed, real seed-variation |
Only the 18 fd-gate-v2 runs are usable for any (ρ, v) reasoning. The other 19 are the audit trail of getting there.
Per-success-criterion verdict
- All four Adrian-2024 regimes populated — not resolved. n_agents ∈ {2, 4, 8, 16, 32, 48} on Geometry A (96 m² walkable) reaches a global ρ of 0.50 ped/m² at G6, brushing the free-flow / light-congestion boundary; Voronoi-cell peaks reach ~0.625 ped/m² at G4 (from pedpy.metrics.json max_density). Reaching dense flow (ρ ≥ 2) and jam (ρ ≥ 4) needs either a constricted measurement area or ≥200 agents — out of the brief's scope.
- ≥75% of (ρ, v) pairs in the published band — unresolvable.
pedpy-analyser's entrypoint emits no scalar mean-speed; onlymax_densityandmean_residual. The (ρ, v) coordinate the criterion compares against the band cannot be computed from the current artefact schema. This is the load-bearing gap. - Per-seed Spearman ρ between n_agents and v — unresolvable for the same reason. Even with speed in hand, the v1 cohort was seed-deterministic (jupedsim-runner only set
PYTHONHASHSEED, which JuPedSim's CFSM doesn't read), so per-seed variance was an artefact of measurement noise rather than the simulation itself. The v2 cohort fixes seed-injection but still hits gap (2).
Framework deliverables that did land
The session is best read as a framework stress-test that produced three concrete artefacts:
- Phase D vault-backed simulator resolver —
monad_knowledge/sim/runtime/dispatch.py:resolve_simulator_chainnow reads_knowledge/simulators/<slug>.mdfrontmatter (image+last_seen_digest) as the canonical source;MONAD_SIM_SIMULATORSenv is per-slug fallback. The previously-emptylast_seen_digest:field on both simulator notes is populated; four new tests intests/sim/test_cli_resolvers.pycover the vault branch + vault-wins-over-env precedence. - jupedsim-runner entrypoint bug fix — the v1 image's start-position generator cycled back to
starts[0]forn_agents > 16, generating duplicate spawn coordinates that JuPedSim rejected (Wave 3 failure). The v2 entrypoint uses a deterministic grid (0.6 m pitch on a 6×10 m inset rectangle, capacity ~150) with seeded ±0.09 m RNG jitter so seeds actually produce distinct trajectories. v2 digest sha256:f678c5. - MCP env propagation lesson — the MCP server inherits env at start, so per-host runtime config (
MONAD_SIM_NETWORK,MONAD_SIM_OTLP_ENDPOINT) belongs in.mcp.json's env block, not in a shellexport. Both are added;MONAD_SIM_USE_TAGis no longer required because the vault resolver returns digests that match local RepoDigests after the canonical retag.
Follow-ups (filed as separate IPs)
- IP-A: extend
pedpy-analyserto emitmean_speed,mean_voronoi_density, plus per-time-bin Voronoi summaries. Unblocks criterion 2 + 3 on a future session. - IP-B:
--image-source=build|registryflag with sensible per-mode defaults — local = build, remote = pull digest. Crystallises the curious-vs-systematic routing the prototyping is converging toward. - IP-C: cost-routing convention —
/campaignsmoke-tests on the laptop; campaigns wider than ~6 sim-runners dispatch viasim-campaign.yml. The supervisor LLM lives on the cloud worker, not the subscription.
Thesis-chain implication
None for chapter 5 yet. This session does not support or refute the L4½ Adrian-Liddle band claim. It does support a meta-claim about the IP-078/081 framework: the platform reaches the FD-gate question but does not yet answer it; one more analyser-side PR closes the gap.