Sessions

No sessions yet — this campaign has a brief but no execution.

Brief

Question

Does the same crowd scenario reproduce plausible, watchable through-traffic across a corpus of real floor layouts — tiny one-bed apartments through five-bedroom flats — and does the congestion it produces track the geometry? This extends c-crowd-motion-mix from one furnished floor to the full ten-floor ResPlan ladder, turning the single replay into a gallery that makes the geometry→flow relationship visible.

This is the thesis's "the crowd model generalises across diverse indoor geometries without per-venue retraining" claim (Indoor Crowd Modeling chapter, currently 0 supporting empirics), exercised directly: one floor-agnostic scenario, ten geometries, one replay each.

What we already know

  • c-crowd-motion-mix validated the scenario layer (kind: groups, waves, through-traffic, movement surfaces) on the single furnished floor resplan-12439. This campaign reuses that machinery unchanged; only the floor varies and the spawn/goal are now symbolic regions rather than hand-authored cm bboxes.
  • maury2018_d24a — free walking speed 1.30 ± 0.21 m/s anchors the kinematic gate (criterion 2): a mean speed outside ≈0.8–1.6 m/s on any floor means the walkable derivation for that geometry is wrong, not the crowd.
  • hughes2002_57b4 — speed is governed by total density; the intensity axis tests whether the per-floor time-to-cross degrades with load, and criterion 4 tests whether that degradation is steeper on more constrained layouts.
  • The 10 ResPlan floors are dataset/resplan, single-floor apartments with TOPOGRAPHIC wall layers — walkable_from_floor derives a connected walkable polygon from the wall LineStrings, exactly as for resplan-12439.

Prerequisites

  1. The rebuilt walk-notebook image with symbolic regions. The spawn_region / goal_region resolver (floor_walk.py::_resolve_region / _resolve_group_regions, 2026-06-15) is what makes one scenario floor-agnostic; GHCR :latest predates it. Local: sim build walk-notebook; CI: merged to master → docker-runners.yml / docker.yml rebuild. Without it the region fields are ignored and the run fails the goal_region-only validation.
  2. No furnishing needed. Through-traffic uses target_subtype: null + region goals; the 9 unfurnished ResPlan floors are immediately usable. (The furnished resplan-12439 baseline lives in c-crowd-motion-mix.)
  3. Per-floor staging is automatic. stage_floor_bundle exports floor (per grid cell) from PostGIS to inputs/floor_geometry.json; the container never touches PostGIS.
  4. Walkable-QC pre-flight (floor_walk.py::_walkable_qc). Before JuPedSim runs, the derived walkable is repaired (buffer(0) + light simplify — removes the degenerate near-wall slivers that segfaulted JuPedSim on resplan-10425 at low clearance) and erosion-tested: an empty or split navigable core at the agent radius is a hard fail (impassable floor, loud message — no segfault, no silent stuck agent), and a doorway narrower than ~1.6× the body radius is a warning in domain_metrics.walkable_qc (the resplan-16157 wedge class). agent_clearance_cm: 2.0 is the safe default; the QC is the net that makes any floor/clearance combination fail-loud-or-repair rather than crash.

What the supervisor does

  1. Phase A — gate. One run on the smallest floor (resplan-6090, intensity 1.0, seed 0). Verify the three movement surfaces are present and the walkable/kinematic gate holds (criteria 1–2) before spending the grid: a missing trajectory.html or n_outside_walkable > 0 on the tightest geometry is a region-resolution / walkable-derivation finding that fails fast.
  2. Phase B — grid. The remaining 19 cells (10 floors × 2 intensities × 1 seed − gate), fanned out. Label every run {campaign: c-resplan-crowd-geometry-gallery, floor: <floor>, intensity: <i>, seed: <s>}.
  3. Phase C — synthesis. Per-floor: did traversal close (criterion 3)? Across floors: correlate mean_traversal_s with walkable-area / room count (criterion 4). Cite the best trajectory.html per floor as the headline artefact — the gallery IS the deliverable.

Figure render request

resplan_geometry_gallery — (a) a contact-sheet of the per-floor footfall heatmaps (doorway hotspots emerging with layout complexity), (b) mean traversal time vs floor walkable-area (one point per floor, both intensities), (c) congestion-onset (time-to-cross at intensity 2.0 / 1.0 ratio) vs room count — plus a pointer to each floor's trajectory.html replay.

Out of scope

  • Seat-seeking / daily-life. Needs furnished floors (only resplan-12439 today); that's c-crowd-motion-mix and the furnishing follow-on.
  • CSI/BLE coupling. Once flow is validated across geometries, c-resplan-crowd-to-csi couples the motion to Sionna on a ResPlan floor.
  • Entrance semantics from the DB. Spawn/goal are symbolic regions (floor-bbox slices) until transition subtypes (main_entry) are tagged in PostGIS; the east/west convention is a deliberate proxy.

Expected interpretation

  1. All criteria met → "One floor-agnostic crowd scenario reproduces wall-tight, in-band through-traffic across the ResPlan size ladder, and congestion tracks geometry. The walker generalises across layouts without per-venue retuning." Directly supports the Indoor Crowd Modeling generalisation claim and unlocks the corpus for every downstream coupled-CSI campaign.
  2. Criteria 1–2 met, traversal gaps on some floors → a per-geometry finding: name which floors fail to close and why (a pinched corridor the largest-part walkable severed, a doorway the buffer sealed). The replay makes it visually diagnosable — cite the artefact.
  3. Walkable/kinematic gate fails on a floor → a geometry-import finding for that ResPlan floor (wall topology, envelope), not a crowd finding. Freeze the grid for that floor and report.