Test 16: 1D fundamental diagram
PASS1. Definition
The mean walking speed of all agents in a measuring range is determined for varying densities, with the density given in persons per metre. The geometry is a ring (Fig. 21: two straights of 4 m and two half circles of radius 3 m) or a corridor of about 200 m (Fig. 22), narrow enough that agents move freely but cannot overtake. On the ring the agents walk several laps and there is no exit. Two or three agent profiles with constant speeds are defined (for example 1 m/s) to show how the model parameters change the curve. The reference is the 10 % and 90 % percentile band of real-life data (Fig. 20).
Source: RiMEA 4.1.1, Test 16, pp. 47-49, Figs. 20 to 22. This is a paraphrase, not the text of the standard.
Reference: RiMEA e.V. (2025). RiMEA: Richtlinie für Mikroskopische Entfluchtungsanalysen / Guideline for Microscopic Evacuation Analysis, version 4.1.1. https://rimea.de/ (Page numbers are the page numbers of the bilingual guideline (n / 56).)
2. Scenario

Scenario figure from the executed notebook.
3. What to expect
The curves for the different profiles show the influence of the parameters, with the real-life 10 % and 90 % percentiles as the reference. RiMEA sets no pass limit (p. 28). The raw data are at doi 10.5281/zenodo.8378592 and the percentile table is on rimea.de (p. 49).
Our criterion: Speed-density sweep from free flow to congestion compared with the 10/90 percentile band
RiMEA 4.1.1 asks to show the parameter influence and sets no pass limit. The test sweeps 5 to 45 agents on the ring (about 0.2 to 1.7 1/m) and requires non-increasing mean speed, no overtaking and at least 75% of binned speeds inside the band; the 0.8 m wide lane is not single-file by geometry, so order changes are checked.
4. Our result
Status: PASS
Test cases of this row
| Case | Status | Result | Run | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
test_ | PASS | speed_density_sweep_fraction_inside_reference_band (fraction) 10 series × 1–6 points Download CSV Show values
accepted ≥ 0.75 fraction | n = 45 · seed 42 |
test_: bound: binned sweep inside_band >= 0.75 (N = [5, 10, 20, 30, 40, 45], bins >= 50 samples); comparison: mean speed non-increasing with N (tol 0.02 m/s) and drop >= 0.5 m/s; gate: no order change (no overtaking) at any level; comparison: slower mean speed < baseline mean speed; bound: faster above_p90 >= 0.75; gate: every agent completes >= 3 laps in each v0 run and >= 1 lap in each sweep run1d_ fundamental_ diagram

Result figure from the executed notebook.

Result figure from the executed notebook.
5. Our implementation
Deviations from the standard:
- Only the ring is used. The lane is 0.8 m wide, which fits two agents of 0.3 m diameter side by side, so the geometry does not prevent overtaking. The test counts frames in which the cyclic order of the agents changes.
- The density sweep puts 5, 10, 20, 30, 40 and 45 agents on the ring (a track of about 26.85 m, so about 0.2 to 1.7 persons per metre) at a desired speed of 1.2 m/s, for 180 s per run with the first lap discarded. Separate runs with 10 agents at 0.9, 1.2 and 1.5 m/s walk at least three laps. Density per agent is taken from the gaps to its two neighbours along the ring. Agents have the default radius of 0.15 m and one seed (42).
- The pass rule is the suite’s own (decision D11): no change of order at any level, mean speed not rising with the agent count (tolerance 0.02 m/s per step) and falling by at least 0.5 m/s from the lowest to the highest count, at least 75 % of the density-binned speeds inside the 10 to 90 % band, the 0.9 m/s run slower than the 1.2 m/s run, and at least 75 % of the 1.5 m/s bins above the 90 % percentile.
- The reference band is read from a CSV copy of RiMEA’s percentile table (standards/rimea/scenario_files/rimea16_percentile_reference.csv).
Model: CollisionFreeSpeedModel
- Test function: tests/vv/test_rimea.py::test_1d_fundamental_diagram