Test 7: Overtaking people with movement disabilities
PASS1. Definition
Room 1 (5 m by 4 m) and room 2 (5 m by 4 m) are joined by a ramp 12 m long and 1.5 m wide, with a 1 m exit at the end of room 2. Room 1 contains zone 1, which holds 24 occupants walking at 1.25 m/s with the model’s default body size, and zone 2, a 1 m strip at the ramp entrance. In Scenario 1 zone 2 holds one occupant with a disability: 0.8 m/s on flat ground, 0.4 m/s on the ramp, occupying more than half the ramp width (0.75 m), for example a wheelchair user. In Scenario 2 the zone-2 occupant is like the other 24. Everyone must reach the exit. A model that cannot represent such occupants documents that limitation.
Source: ISO 20414:2020, Test 7, Table 8, pp. 16-18, Fig. 4. This is a paraphrase, not the text of the standard.
Reference: ISO (2020). ISO 20414:2020, Fire safety engineering - Verification and validation protocol for building fire evacuation models. First edition. International Organization for Standardization, Geneva. https://www.iso.org/standard/78348.html (Page numbers are the printed page numbers of ISO 20414:2020 (the copy read is a proof, so numbers can differ by a page in the published edition). ISO states that its tests are examples and that a tester may use different tests that verify the same component equivalently.)
2. Scenario

Scenario figure from the executed notebook.
3. What to expect
The zone-1 occupants reach the exit later in Scenario 1 than in Scenario 2. ISO calls the test a qualitative verification of emergent behaviour and sets no numeric limit.
Our criterion: Zone-1 occupants exit later (last and mean exit time) when a slower, larger occupant is present
12 m ramp (ISO 20414 Fig. 4). Scenario built by standards/utils/movement_disability.py. The disabled occupant’s ramp speed (0.4 m/s) is set every step in that builder, because jupedsim-scenarios 0.7.3 applies speed zones to every agent; the zone-1 delay is simulator output.
4. Our result
Status: PASS
Test cases of this row
| Case | Status | Result | Run |
|---|---|---|---|
test_ | PASS | zone1_exit_time_disability_vs_control = 46.32, 26.47, 34.72, 20.59 s | n = 25 · seed 42 |
test_: bound: all 25 occupants evacuate in both runs; comparison: measured[0] (last zone-1 exit, disability) > measured[1] (last, control) and measured[2] (mean zone-1 exit, disability) > measured[3] (mean, control)movement_ disability_ increases_ evacuation_ time

Result figure from the executed notebook.

Result figure from the executed notebook.

Result figure from the executed notebook.
5. Our implementation
Deviations from the standard:
- The pass rule is the suite’s own (decision D8): both the last and the mean exit time of the 24 zone-1 occupants are later in Scenario 1 than in Scenario 2. The disabled occupant is not part of either measure.
- The scenario is built in code (standards/utils/movement_disability.py) rather than loaded from a scenario file. The builder sets the disabled occupant’s desired speed at every step from its position, because the scenario harness applies speed zones to all agents.
- The disabled occupant has a radius of 0.4 m (0.8 m wide) and a desired speed of 0.8 m/s on the flat and 0.4 m/s on the ramp. The other 24 occupants walk at 1.25 m/s everywhere, including on the ramp, with the suite’s default radius of 0.15 m.
- The ramp is flat. The 1 m height difference between the rooms is not modelled. One seed (42) is run.
Model: CollisionFreeSpeedModel