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

c-flat-day-ai — a flat-warming gathering, choreographed by an LLM persona-author fleet

c-flat-day-ai · walk-notebook

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.

Sessions

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

Brief

c-flat-day-ai — a flat-warming gathering, choreographed by an LLM persona-author fleet

The first IP-107 campaign: a believable evening crowd on a real apartment floor (resplan-12439-floor-0), where the cast is authored by a fan-out of LLM persona-author subagents (hosts, couples, the kitchen crowd, the latecomers) and the new multi-leg agenda engine (behavior/agenda.py) walks each persona through their itinerary over JuPedSim.

Scene

~33 guests arriving across ~28 minutes into a 13-room flat (living-0 is the 6-seat social hub; kitchen-0; four bedrooms; a balcony; bathrooms). Hosts loop (circulate all night); couples and friend-groups are cohesive parties that arrive, claim the sofa / take over a quiet bedroom, and leave together; the kitchen crowd does drink-runs room to room; latecomers inherit seats that early-leavers free.

What the v1 run found (seed 0, executed locally)

  • 32 guests on the floor, 24/16 seats reached = 150% utilisation — seats are genuinely reused across the evening.
  • 11 rooms used; living-0 peaks at 18 concurrent, kitchen at 12; a friend-trio breakout fills bedroom-2.
  • 86% of cohesive parties fully seated together; mean walk speed 1.12 m/s, peak 1.32 (no teleport spikes); 0 points outside the walkable area.
  • Coverage: 82% of agent-frames fall within 4 m of one of the 10 real CSI receivers — but the busiest room (living-0) is only 69% covered: the densest crowd is the least observed (echoes c-coverage-meets-crowds).
  • Seeds 0/1/2 settle to 32/33/32 guests and 131–150% reuse — reproducible.

Authoring

Four general-purpose subagents each authored a slice of the cast as structured JSON (persona, count, cohesive, arrival window, ordered legs with room + dwell). A merge step converted minutes→frames, deduped names and validated every target.room against the floor inventory through the WalkScenario Pydantic schema before any compute. No leg was hand-written.

Reproduce

scenario.kind: agendas over the walk-notebook from_floor path; the full cast is in sim_params.walk-notebook.base.scenario.agendas above. Locally: stage the floor bundle, then run floor_walk.py under uv run --with jupedsim (JuPedSim is not in the base venv). Artefacts: trajectory.html (interactive replay), footfall_heatmap.png, room_occupancy_vs_time.png, coverage_footfall.png, coverage_report.json.

Next

Generalise the strategic layer to experiment-defined, live-state guarded FSMs (IP-107) so behaviour becomes reactive (sit if space, else drift/leave) without an LLM in the per-frame loop.