Live status · Read the latest
monad-knowledge Wi-Fi sensing lab · FIIT STU
designed EXP-S1 simulation

Coupled simulation sandbox: foundation checks and continuity limits

In plain words

Which parts of the coupled sandbox are validated, and what can the thesis still infer from them?

this region change inside = in − out inout the continuity rule, as a penalty in the loss
People cannot appear or vanish. Whatever flows into a region minus whatever leaves must equal the change inside it. The design bolts that bookkeeping rule onto the model as a penalty for impossible counts. Schematic of the design, not a measurement.
Why it matters
The simulator supplies controlled contrasts only where its crowd and measurement assumptions are tested.
How it is done
Keep pedestrian and data-interface checks separate from tests of the CSI inverse. Compare any proposed regularizer against smoothing and a nonphysical control.
Where it stands
Foundation checks have results. The original model-zoo run is incomplete, and the wider continuity-prior question now has a documented in-silico negative.

Asks, formallyA pure-Python coupled simulation of pedestrian dynamics (JuPedSim), BLE RSSI (log-distance + log-normal), and a statistical CSI proxy is sufficient to (i) validate the data-plane harness that EXP-P1 and EXP-F* will reuse, and (ii) detect the headline λ-sweep direction for the continuity-residual mechanism (Ch3 L3.4 / Ch5 L5.6) across a small 3-model zoo on one geometry without needing GPU compute.

FoundThe sandbox's pedestrian and scenario checks remain useful within their tested densities.

StandingDesigned, not yet run · last activity 2026-06-09

RoomSimulation only. Parametric Shapely geometry — single seminar room ~8 m × 12 m, six cells, two doors. No physical hardware. No GIS dependency. Optional swap of the parametric geometry for a GIS-backed polygon when [[gis_cells]] returns the target room.

Coupled simulation sandbox: foundation checks and continuity limits

Current assessment (2026-09-15)

The sandbox's pedestrian and scenario checks remain useful within their tested densities. The original c-exp-s1-mechanism-defense reduction remains incomplete. It is no longer the missing thesis headline: the later c-continuity-prior-csi-density-v2 campaign found the continuity prior practically equivalent to smoothing within its declared ±0.10 margin in both tested flow regimes.

The simulation is an instrument for the calibration argument. It does not validate a field data interface merely because synthetic layers run. The July 15 continuity study found no practically meaningful physics-specific advantage, with paired differences near −0.003 within the equivalence margin. That is a scoped negative for continuity-prior-regularizes-density, not an instruction to revive the abandoned headline.

Next evidence needed: Retain the foundation checks and their density limits. Reopen a continuity experiment only for a distinct, falsifiable mechanism; current priority is independently labelled calibration evidence and realistic measurement assumptions.

Basis: Thesis Narrative, the September 10 synthesis, and the September 15 register review. See the review record for evidence sources and outstanding checks.

Earlier protocol and dated results

The methods and observations below retain their original scope. Read their readiness statements and proposed next steps as historical. The current assessment above records what has changed; frozen thresholds have not been retrospectively revised.

The problem, in plain words

A Wi-Fi crowd-counting model learns "this pattern of radio distortion ≈ this many people." But it is a black box: give it a strange input and it will still confidently output some count, with no sense of whether that count is physically possible. People do not teleport — the number in a room changes only because someone walked through a door. That is a conservation law: the rate a cell's occupancy changes must equal the net flow across its boundaries (the continuity equation \partial\rho/\partial t + \nabla\cdot(\rho\mathbf{v}) = 0, the backbone of continuum crowd theory — hughes2002_57b4 ↗, maury2018_d24a ↗).

The idea EXP-S1 tests is to teach the model that law by adding a penalty to its training loss: whenever its predicted per-cell counts violate conservation, it pays. This is exactly the recipe of physics-informed deep learning, which has a mature track record in traffic-state estimation (di2023_285b ↗, shi2022_1e5b ↗). The sceptic's objection — and it is a fair one — is "any regulariser would smooth your predictions; how do you know it is the physics doing the work and not just generic damping?" Defending against that objection is the whole point of the top layer, and it is the part that has not run.

Before you can even ask that question honestly, the simulated crowd underneath has to be believable — otherwise you are teaching a model the physics of a world that does not exist. So EXP-S1 spends its first two layers earning the right to ask the headline question.

What we are trying to prove

Three falsifiable hypotheses, in dependency order:

  • H-S1.1 (harness validity). The coupled pipeline runs end-to-end on a CPU in minutes and emits a structured run card plus the OTel span tree. Null: it does not complete or does not instrument → the platform is not trustworthy and nothing downstream can be believed. Status: met (Phase A smoke test, inherited as the trust anchor).
  • H-S1.2 (mechanism signal). The continuity penalty at its best strength \lambda^* reduces per-cell occupancy MAE by ≥ 0.10 ped/cell on at least 2 of 3 model architectures. Null: no lift, or the lift is a rounding-error → L4½.5 is not supported and the loss term is dropped. Status: NOT EXECUTED.
  • H-S1.3 (separability / transfer). The sign of the lift is positive across all three architectures with bounded variance. Null: the effect is a quirk of one model class, not a transferable mechanism → the thesis must claim far less. Status: NOT EXECUTED.

A clean way to read this: H-S1.1 asks "is the instrument real?" (yes), the fundamental-diagram and scenario campaigns ask "is the simulated world real enough?" (largely yes), and H-S1.2/H-S1.3 ask "is the thesis's mechanism real?" — and that last, load-bearing question is still open.

How the experiment works (plain method)

  1. Geometry. A parametric Shapely seminar room (~8 m × 12 m, six logical cells, two doors) — or, for the scenario layer, a real six-room PostGIS floor (resplan-12439-floor-0) staged straight from the spatial database.
  2. Crowd. JuPedSim's Collision-Free Speed Model (tordeux2016_5e66 ↗) moves agents; PedPy computes Voronoi density and speed per time-bin and the continuity residual. This is the layer the fundamental-diagram gate stress-tests.
  3. Radios. BLE RSSI is a log-distance path-loss model with log-normal shadowing (sadowski2020_f2ba ↗); the CSI channel is a statistical proxy — a per-link feature 4-tuple, deliberately not a ray-tracer at this phase — enough to read a λ-sweep direction, explicitly not a fidelity claim.
  4. Graph + models. Per-1 s window, a heterogeneous graph snapshot feeds a small model zoo (Bagging-LGBM, a hand-rolled PINN, CNN+LSTM). The continuity penalty is one autograd term; the λ-sweep \{0, 0.01, 0.1, 0.3, 1.0\} is run per architecture and per seed.
  5. Read-outs. Per-cell MAE at each λ, the achieved continuity residual, and the residual↔MAE correlation — the last is the mechanism test (reducing residual should reduce error; if not, the penalty is generic smoothing).

Three campaigns exercise different layers: c-exps1-fundamental-diagram (step 2 physics), c-crowd-motion-mix (a real-floor scenario stress-test of the walker), and c-exp-s1-mechanism-defense (steps 4–5, the headline — the one that has not run).

What we've found so far (honest, across campaigns)

Layer / campaign What it tested Verdict Real numbers
Fundamental diagram — c-exps1-fundamental-diagram Does the crowd layer reproduce the empirical (density, speed) relation? Partial (2/3) Voronoi speed 1.169 → 1.139 → 0.708 m/s at ρ = 0.042 → 0.167 → 0.500 ped/m²; per-seed Spearman −1.0 (monotone slowdown). Speeds physical, no degenerate collapse. But dense/jam regimes unreachable on 96 m² → criterion 1 fails; in-band fraction 2/3.
Scenario / walker — c-crowd-motion-mix Does a believable multi-wave, seat-reusing crowd run on a real floor, visibly? All 4 criteria met n_outside_walkable = 0 everywhere; walk speed 1.08–1.20 m/s; seat reuse occupancy_rate 2.19–2.25 (>2× people seated than seats); turned_away = 0; time-to-seat 3.1→6.2→13.8 s across load, monotone Spearman ρ = 0.95.
Mechanism (headline) — c-exp-s1-mechanism-defense Does the continuity penalty reduce MAE across the model zoo? (L4½.5) NOT EXECUTED — phantom session Latest session: 7 days stuck running, 0.031 CPU-h, 0 LLM tokens, 0 S3 bytes, no synthesis, no figures, no criteria resolved; operator-cancelled as a dead supervisor. 9 trajectory runs preserved as fan-in but never analysed. Campaign blocked: no runner image ships torch + lightgbm.

Read this table honestly. The two lower layers give real, defensible evidence — and the scenario result is genuinely strong. But the row that carries the thesis claim is empty. There is no MAE lift, no λ*, no residual↔MAE correlation, because the reduction never ran. Anyone citing EXP-S1 for L4½.5 today would be citing a design, not a result. Two important caveats even on the passing rows: (i) the FD gate cannot reach the jam regime on this small room, so its validation is free-flow-to-dense only; (ii) in the scenario campaign the congestion signal is seat-queueing, not fundamental-diagram slowdown — walking speed stays clamped at 1.20 m/s and does not fall with load, so the monotonic time-to-seat is a demand/capacity effect, not the Hughes density law. The synthesis says so explicitly.

The plan for the headline (unexecuted)

To turn the empty row into a real result, in order:

  1. Unblock infrastructure — build the python-ml runner image with torch + lightgbm (and the macOS dual-libomp guard). This is the single gate; the reduction notebook (exps1_continuity_penalty.py) is written and waiting.
  2. Criterion 1 (lift magnitude) — λ-sweep at N=8 on Geometry A across all three architectures, 3 seeds; report Δ-MAE(λ*) per architecture.
  3. Criterion 2 (sign transfer) — verify the lift is positive on all three at λ*.
  4. Criterion 3 (density transfer) — scan N ∈ {4, 8, 12} at λ* on the strongest architecture.
  5. Falsification guard — the Phase-C random-conservation-law counter-test: swap \nabla\cdot(\rho\mathbf{v}) for a nonsense law; if MAE is unchanged, the penalty was generic regularisation and L4½.5 collapses. This is the test that answers the sceptic — and it is downstream of a result that does not exist yet.

Until step 2 returns a number, EXP-S1's contribution to the thesis is a validated data plane and a validated crowd, not a validated mechanism.

How to read the figures

Only the two lower-layer campaigns produced figures; the headline campaign produced none.

  • fundamental_diagram_geomA (c-exps1-fundamental-diagram) — a (density, speed) scatter with the Liddle-2022 / Adrian-2024 empirical band overlaid. Read the downward trend, not individual points: speed should fall as density rises. The honest caveat is that the cloud only spans free-flow to dense; the right-hand jam corner is empty because the room is too small to fill.
  • crowd_motion_mix (c-crowd-motion-mix) — three panels: footfall heatmaps at rising intensity (doorway hotspots grow with load), time-to-seat vs intensity (the super-linear rise is the story), and a per-group on-floor population timeline. The headline artefact is trajectory.html — an animated, group-coloured replay where you can watch the morning wave seat, dwell, stand, and leave, and the late wave re-claim the freed seats. n = 9 runs (3 intensities × 3 seeds).

Key references

  • hughes2002_57b4 ↗ · maury2018_d24a ↗ — the conservation law the penalty enforces.
  • di2023_285b ↗ · shi2022_1e5b ↗ — the physics-informed-loss paradigm and its λ-sweep provenance.
  • tordeux2016_5e66 ↗ · corbetta2023_bcb7 ↗ · liddle2022_ee2c ↗ — the pedestrian model and the empirical fundamental-diagram band the crowd layer is gated against.
  • zhou2020_6173 ↗ · zou2018_1590 ↗ · mondal2023_7f7a ↗ — device-free CSI occupancy baselines and the LGBM-beats-deep result at this scale.
  • sadowski2020_f2ba ↗ · demrozi2021_bf55 ↗ · longo2019_b72f ↗ — the BLE channel model and BLE occupancy grounding.
  • wang2026_2758 ↗ · chen2023_5cbd ↗ · khan2023_b7c5 ↗ · brunello2025_d781 ↗ — the sim-to-real and transfer bars the red-team and ML voices invoke.
  • zhang2026_ccac ↗ · guarino2026_e72c ↗ · huang2025_060d ↗ — the reproducibility protocol and the public real-CSI anchor for the cross-check demand.

See it run

Trajectory replay of run A8N2YAA2 — press play, scrub the timeline, toggle agent trails and footfall.

Loading replay…

Open the run workbench →

Campaigns & sessions 2 campaigns instantiating this experiment
Campaign Session State Runs Started Report
c-exp-s1-mechanism-defense QWVPS939 cancelled 9 2026-06-09 synthesis →
c-exps1-fundamental-diagram N03VYMX4 finished 3 2026-06-09 synthesis →
HWSJ5EKT finished 33 2026-06-09 synthesis →
H101FQNR finished 37 2026-05-22 synthesis →
Simulation runs the 20 most recent, newest first
Run Date Gate Campaign Replay
1WQ4PGWZ 2026-06-09 ✓ c-exp-s1-mechanism-defense —
S3V5BS81 2026-06-09 ✓ c-exp-s1-mechanism-defense —
5GC17VV8 2026-06-09 ✓ c-exp-s1-mechanism-defense —
4HH5MZSN 2026-06-09 ✓ c-exp-s1-mechanism-defense —
0PWESJB4 2026-06-09 ✓ c-exp-s1-mechanism-defense —
V4WNRFMY 2026-06-09 ✓ c-exp-s1-mechanism-defense —
Y32GXB56 2026-06-09 ✓ c-exp-s1-mechanism-defense —
J97HY7W2 2026-06-09 ✓ c-exp-s1-mechanism-defense —
BFXM3RY6 2026-06-09 ✓ c-exp-s1-mechanism-defense —
P9YR5GH3 2026-06-09 ✓ c-exps1-fundamental-diagram —
NWJXYP1E 2026-06-09 ✓ c-exps1-fundamental-diagram —
V3B8YX2F 2026-06-09 ✓ c-exps1-fundamental-diagram —
A8N2YAA2 2026-06-04 ✓ c-crowd-motion-mix replay →
6BPVJ7BZ 2026-06-04 ✓ c-crowd-motion-mix replay →
MTWA9Z0A 2026-06-04 ✓ c-crowd-motion-mix replay →
MSD9BJ3V 2026-06-04 ✓ c-crowd-motion-mix replay →
SAYD4KK4 2026-06-04 ✓ c-crowd-motion-mix replay →
YZAKESV9 2026-06-04 ✓ c-crowd-motion-mix replay →
749M7RV9 2026-06-04 ✓ c-crowd-motion-mix replay →
W3HD0V73 2026-06-04 ✓ c-crowd-motion-mix replay →

All exp-s1 runs in the workbench →

Provenance

—
not recorded

Data types

  • synthetic-trajectories
  • synthetic-ble-rssi
  • synthetic-csi-proxy
  • per-cell-occupancy-ground-truth
  • heterogeneous-graph-snapshots
  • continuity-residual-tensors