Verif.3.3: Affiliation
TEST-LOCAL1. Definition
The room of Verif.3.2 is used: 10 m by 15 m, with two 1 m wide exits on the 15 m walls, equidistant from the bottom wall. Scenario 1: one occupant without pre-evacuation time, walking at 1 m/s, is unfamiliar with both exits and stands at the same position in every run, equidistant from the exits. Scenario 2: one occupant at the start of the corridor area is affiliated with Exit 2, which it prefers when everything else is equal for both exits. Each scenario is repeated until the exit usage changes by no more than 1 % with one more run. The test needs an exit-choice model with a variable for affiliation (familiarity) with exits.
Source: NIST TN 1822, Verif.3.3, pp. 33-35, Fig. 10. This is a paraphrase, not the text of the standard.
Reference: Ronchi, E., Kuligowski, E. D., Reneke, P. A., Peacock, R. D., Nilsson, D. (2013). The Process of Verification and Validation of Building Fire Evacuation Models. NIST Technical Note 1822. National Institute of Standards and Technology. 10.6028/NIST.TN.1822 (Page numbers are the printed page numbers of TN 1822.)
2. Scenario

Rendered from the scenario files of this repository (top view).
3. What to expect
The usage of Exit 2 in Scenario 2 is higher than in Scenario 1. The result is a quantitative comparison of exit usage. When exit choice is deterministic (distance only or user input), TN 1822 treats the test as an analytical verification of model assignment and not as emergent behaviour. The tester documents whether the model has an affiliation algorithm and whether its exit choice is predictive.
Our criterion: Agents prefer familiar exits
Affiliation is represented by journey weights set in the input; the test checks that exit choice responds to those weights, not an affiliation model.
4. Our result
Status: TEST-LOCAL
Test cases of this row
| Case | Status | Result | Run |
|---|---|---|---|
test_ | PASS | balanced_exit_fraction_difference (fraction) balanced_fraction_difference: 0 balanced_exit_counts: 20, 20 affiliated_exit_counts: 0, 40 accepted ≤ 0.1 fraction | n = 40 · seed 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20 |
test_: bound: measured <= 0.10 (|exit1 - exit2| / total, 50/50 weights); comparison: affiliated_exit_counts[1] > affiliated_exit_counts[0] with 20/80 weightsaffiliation_ biases_ exit_ choice
5. Our implementation
Deviations from the standard:
- JuPedSim has no familiarity or affiliation state. Affiliation is represented by the journey weights of the occupants: 50/50 for the unfamiliar case and 20/80 (Exit 1 / Exit 2) for the affiliated case. The test verifies that exit choice follows the weights that the input assigns, not an affiliation model.
- The scenario has two occupants at random positions in a 1.3 m by 1.0 m area around x = 5 m, instead of one occupant at a fixed position.
- The pass rule is the suite’s own: over 20 seeds (1 to 20), the Exit 1 and Exit 2 counts in the 50/50 case differ by no more than 10 % of the total, and Exit 2 is used more than Exit 1 in the 20/80 case. TN 1822 compares Exit 2 usage between the two scenarios and asks to repeat until it changes by no more than 1 %.
- Occupants use the suite’s default body radius of 0.15 m.
Model: CollisionFreeSpeedModel
- Test function: tests/vv/test_nist.py::test_affiliation_biases_exit_choice
- Scenario file: Nist-3-3-familiar-exits.zip
6. Our notebook
No notebook for this test yet.