Skip to main content

jupedsim-network

A coarse network egress model for fast estimates of evacuation times (pre-movement plus movement). Rooms, corridors and stair flights are nodes with an area; doors and stair entries are links with a flow capacity. Agents move through the graph by relations adapted from the SFPE hydraulic model. A run of a ten-storey building takes about 0.1 s, so scenarios can be sampled many times.

The package is a companion to JuPedSim: use the network model to screen scenarios and find critical cases, and the microscopic models of JuPedSim to check geometry details. It depends only on NumPy.

The model is a prototype. It is verified against hand calculations but not validated against experiments, and it is not intended for regulatory or design use; see the limitations.

Install

Python 3.10 or later:

pip install jupedsim-network

The install provides the jupedsim-network command, which runs a scenario written as a JSON file (Command line):

jupedsim-network init
jupedsim-network run scenario.json
pip install "jupedsim-network[cli]"  # coloured --help
pip install "jupedsim-network[tui]"  # terminal UI
jupedsim-network tui scenario.json

The terminal UI edits, checks and runs a scenario file in forms (Terminal UI).

Development

uv sync
uv run --extra cli --extra tui --group tui-test pytest
uv run ruff check . && uv run ruff format --check .

The pytest command runs the tests of every pull request, as CI does on Python 3.13 (there with a coverage gate of 97 %). In a fresh environment, without --extra tui --group tui-test, the tests of tests/test_tui.py are skipped: the pilot flows and the 12 SVG snapshots of the terminal UI. This is the Python 3.10 leg of CI, uv run --extra cli pytest. Without --extra cli the tests of the coloured help are skipped too. The weekly job tui of .github/workflows/fuzz.yml runs the terminal UI tests on Python 3.10 as well.

After an intended change of the terminal UI, update the snapshots:

uv run --extra cli --extra tui --group tui-test pytest --snapshot-update

Five of these SVGs are also the figures of the Terminal UI page.

The pytest command deselects the long tests. Two further commands run those:

uv run --extra cli pytest -m slow
uv run pytest -m fuzz --hypothesis-profile=fuzz

The first runs the documented numbers of long runs (CI job docs-numbers); the second runs the long property runs and fixed-seed sweeps of .github/workflows/fuzz.yml, weekly and on demand. See Verification.

The documentation is a Hugo site with the Hextra theme in site/. Hugo (extended) and Go are needed to build it:

uv run --group docs python scripts/figures/make_figures.py
uv run --group docs python scripts/figures/make_gifs.py
uv run --group docs python scripts/figures/copy_tui_snapshots.py
cd site && hugo server

The figures and animations are not stored in git. The first two scripts write them to site/static/images/network/ (a few minutes); the third copies the terminal UI snapshots from tests/__snapshots__/test_tui/ to site/static/images/tui/. CI runs them before every build.

License

LGPL-3.0-or-later, as JuPedSim.

Metadata

Release files for jupedsim-network 0.4.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for jupedsim-network 0.4.0
File Size Uploaded
jupedsim_network-0.4.0.tar.gz 491.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for jupedsim-network 0.4.0
File Interpreter ABI Platform
jupedsim_network-0.4.0-py3-none-any.whl Python 3 none any Details

Total release size: 577.4 kB

Release files / jupedsim_network-0.4.0.tar.gz

Download URL jupedsim_network-0.4.0.tar.gz
Size 491.0 kB
Tags Source
SHA-256 checksum
How to use checksums
d0e2bd8372ec4f7534b06b0e5af2e82691694073d3e33f6426ff873c8a134331
BLAKE2b-256 checksum
How to use checksums
76550834249b9db7e5a27e07887f13149e09f92b2893c0305ca0ad157b3bcaff
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 12, 2026.

Transparency log

Release files / jupedsim_network-0.4.0-py3-none-any.whl

Download URL jupedsim_network-0.4.0-py3-none-any.whl
Size 86.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
cd8e9f58988bb12ba926acaec38a9555c0ba6c11adac3c33b0386a3b7f8ed2b4
BLAKE2b-256 checksum
How to use checksums
9e502ba5961bbf3689f73b14682cf18d584d63faf6ff97ffcd6b86760606bc50
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 12, 2026.

Transparency log

Release history Release notifications | RSS feed

0.5.0

2 release files

This release

0.4.0 This release

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page