Skip to main content

DynamicalSystemFramework

Latest Release PyPI version DOI

Standard TBB SPDLOG CSV JSON SQLite codecov

The aim of this project is to rework the original Traffic Flow Dynamics Model. This rework consists of a full code rewriting, in order to implement more features (like intersections) and get advantage from the latest C++ updates.

Table of Contents

Installation

The library is available on PyPI:

pip install dsf-suite

To check the installation you can simply run:

import dsf

print(dsf.__version__)

Installation (from source)

Requirements

The project requires C++20 or greater, cmake, tbb, simdjson, spdlog, csv-parser, and SQLiteCpp.

To install requirements on Ubuntu:

sudo apt install cmake libtbb-dev

To install requirements on macOS:

brew install cmake tbb

Installation (C++)

The library can be installed using CMake. To build and install the project in the default folder run:

cmake -B build -DCMAKE_BUILD_TYPE=Release && cmake --build build -j$(nproc)
sudo cmake --install build

Otherwise, it is possible to customize the installation path:

cmake -B build -DCMAKE_INSTALL_PREFIX=/path/to/install

then building and installing it with:

cmake --build build
cmake --install build

Installation (Python)

If you want to use the library from Python, you can build the Python bindings using nanobind. Make sure you have tbb installed:

sudo apt install libtbb-dev

Then, the installation is automatic via uv:

uv build

or via standard pip:

pip install .

After installation, verify the import in Python:

import dsf

print(dsf.__version__)

If you encounter issues, ensure that the installation path is in your PYTHONPATH environment variable.

Examples

Examples in this repository are being migrated. You can build legacy C++ examples by passing -DDSF_EXAMPLES=ON to CMake; output binaries will be generated under the examples/ directory.

Updated and active examples are maintained in dsf-examples.

Visualization & GUI

For real-time dynamic visualization and visual inspection of network flows, see dsf-gui. It offers an interactive front-end designed specifically for monitoring simulations, analyzing queue dynamics, and visual debugging.

Projects Using DSF

  • bdt-mobility — Bologna Digital Twin Mobility Toolkit: Data extraction pipeline and policy-impact traffic simulation framework built for defined Zones of Interest (ZOI).

For Developers

This project includes a pre-commit hook setup. To enable it locally, run:

pip install pre-commit
pre-commit install

Testing

This project uses Doctest for unit testing.

Tests are built automatically in Debug or Coverage mode. To manually force test compilation:

cmake -B build -DDSF_TESTS=ON
cmake --build build -j$(nproc)

To execute the test suite:

ctest --test-dir build -j$(nproc) --output-on-failure

Benchmarking

Core performance critical components are benchmarked using Google Benchmark.

To build benchmark targets:

cmake -B build -DDSF_BENCHMARKS=ON
cmake --build build -j$(nproc)

To run all benchmark executables:

cd benchmark
for f in ./*.out ; do ./$f ; done

Citing

If you use this software, please cite it using the metadata in CITATION.cff (GitHub's "Cite this repository" button exports it as BibTeX/APA), or via Zenodo DOI: 10.5281/zenodo.18745492.

Bibliography

  • Mungai, Veronica (2024) Studio dell'ottimizzazione di una rete semaforica. University of Bologna, Bachelor's Degree in Physics [L-DM270]. Link to Thesis.
  • Berselli, Gregorio (2024) Advanced queuing traffic model for accurate congestion forecasting and management. University of Bologna, Master's Degree in Physics [LM-DM270]. Link to Thesis.
  • Berselli, Gregorio (2022) Modelli di traffico per la formazione della congestione su una rete stradale. University of Bologna, Bachelor's Degree in Physics [L-DM270]. Link to Thesis.

Metadata

Release files for dsf-suite 7.5.3

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

Source distribution (sdist)

Source distribution for dsf-suite 7.5.3
File Size Uploaded Provenance Actions
dsf_suite-7.5.3.tar.gz 193.2 kB Without provenance Details for dsf_suite-7.5.3.tar.gz

Built distributions (wheels)

Table of built distributions (wheels) for dsf-suite 7.5.3
File Actions
dsf_suite-7.5.3-cp314-cp314-win_amd64.whl CPython 3.14 CPython 3.14 Windows x86-64 Details for dsf_suite-7.5.3-cp314-cp314-win_amd64.whl
dsf_suite-7.5.3-cp314-cp314-manylinux_2_28_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.28+ x86-64 Details for dsf_suite-7.5.3-cp314-cp314-manylinux_2_28_x86_64.whl
dsf_suite-7.5.3-cp314-cp314-macosx_26_0_arm64.whl CPython 3.14 CPython 3.14 macOS 26.0+ ARM64 Details for dsf_suite-7.5.3-cp314-cp314-macosx_26_0_arm64.whl
dsf_suite-7.5.3-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details for dsf_suite-7.5.3-cp313-cp313-win_amd64.whl
dsf_suite-7.5.3-cp313-cp313-manylinux_2_28_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.28+ x86-64 Details for dsf_suite-7.5.3-cp313-cp313-manylinux_2_28_x86_64.whl
dsf_suite-7.5.3-cp313-cp313-macosx_26_0_arm64.whl CPython 3.13 CPython 3.13 macOS 26.0+ ARM64 Details for dsf_suite-7.5.3-cp313-cp313-macosx_26_0_arm64.whl
dsf_suite-7.5.3-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details for dsf_suite-7.5.3-cp312-cp312-win_amd64.whl
dsf_suite-7.5.3-cp312-cp312-manylinux_2_28_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.28+ x86-64 Details for dsf_suite-7.5.3-cp312-cp312-manylinux_2_28_x86_64.whl
dsf_suite-7.5.3-cp312-cp312-macosx_26_0_arm64.whl CPython 3.12 CPython 3.12 macOS 26.0+ ARM64 Details for dsf_suite-7.5.3-cp312-cp312-macosx_26_0_arm64.whl

Total release size: 17.1 MB

Release files / dsf_suite-7.5.3.tar.gz

Download URL dsf_suite-7.5.3.tar.gz
Size 193.2 kB
Tags Source
SHA-256 checksum
How to use checksums
91db8d45639ce46088b23c9df9f87e5fad2859ee2cca932cdd69cdfc91301b33
BLAKE2b-256 checksum
How to use checksums
0a060082d50c48bce6085657d5c6606c817c63ea89cd55f0550dddcc26094916
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.15

Release files / dsf_suite-7.5.3-cp314-cp314-win_amd64.whl

Download URL dsf_suite-7.5.3-cp314-cp314-win_amd64.whl
Size 1.7 MB
Tags CPython 3.14 Windows x86-64
SHA-256 checksum
How to use checksums
49a5e056b5e153e1d35212f4e98a77479cb6f9cf002a0a687116abef7ce412d6
BLAKE2b-256 checksum
How to use checksums
1d6da4e67c8f0783f1531f3e07fd00424a367f4b09cc043a7976aaa234cf96b3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.15

Release files / dsf_suite-7.5.3-cp314-cp314-manylinux_2_28_x86_64.whl

Download URL dsf_suite-7.5.3-cp314-cp314-manylinux_2_28_x86_64.whl
Size 2.4 MB
Tags CPython 3.14 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
6a89157287ed071c1fed7991b73468c635cb5dd83fa9b7713ae9cec62b8d04e1
BLAKE2b-256 checksum
How to use checksums
1efb4d9d24f396e63aa6454888cac7762bb862a11eb2aa357ce531e7c2bb3adf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.15

Release files / dsf_suite-7.5.3-cp314-cp314-macosx_26_0_arm64.whl

Download URL dsf_suite-7.5.3-cp314-cp314-macosx_26_0_arm64.whl
Size 1.6 MB
Tags CPython 3.14 macOS 26.0+ ARM64
SHA-256 checksum
How to use checksums
2123c8b594878db686ef6a9dbe8607ba9debde2b879dc21030042f498b7a7b5f
BLAKE2b-256 checksum
How to use checksums
0c7484307f74c02556c4e1fa0d145770e25e3f6859e5c7c3e62d006c0c4662d1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.15

Release files / dsf_suite-7.5.3-cp313-cp313-win_amd64.whl

Download URL dsf_suite-7.5.3-cp313-cp313-win_amd64.whl
Size 1.7 MB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
cdc30fa0e0bfd4ac511268db671bf00fce710181796accc953cc6306e1a0a5aa
BLAKE2b-256 checksum
How to use checksums
969265520f6a3ddca993428682b108ac31ecc85c0bb57e9e590e3919ba238af6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.15

Release files / dsf_suite-7.5.3-cp313-cp313-manylinux_2_28_x86_64.whl

Download URL dsf_suite-7.5.3-cp313-cp313-manylinux_2_28_x86_64.whl
Size 2.4 MB
Tags CPython 3.13 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
a73d5c1b508ac7bedb7355d2b06c994507c32e2e9385b01b6bac939d03729e4e
BLAKE2b-256 checksum
How to use checksums
d5dbd3313b1adb6c232aa6de2e4463e5646ed22cf93bb269a60f511ff34a9031
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.15

Release files / dsf_suite-7.5.3-cp313-cp313-macosx_26_0_arm64.whl

Download URL dsf_suite-7.5.3-cp313-cp313-macosx_26_0_arm64.whl
Size 1.6 MB
Tags CPython 3.13 macOS 26.0+ ARM64
SHA-256 checksum
How to use checksums
cca15488070b66c29e14f1da881443c50d522193f269bcc768aec351ee92549b
BLAKE2b-256 checksum
How to use checksums
9c460c9936f34cc56b07c4c40f4792d785e926b6541517bd15552c995aed5dcb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.15

Release files / dsf_suite-7.5.3-cp312-cp312-win_amd64.whl

Download URL dsf_suite-7.5.3-cp312-cp312-win_amd64.whl
Size 1.7 MB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
ece9378dfdec8cc586ff4f65a2ebd28b1e705e8541912a642b1d1f70e80190ba
BLAKE2b-256 checksum
How to use checksums
60beef01341c56766ff1c0c6ba8bb0a078b2bc67b85247d406015148520d8e26
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.15

Release files / dsf_suite-7.5.3-cp312-cp312-manylinux_2_28_x86_64.whl

Download URL dsf_suite-7.5.3-cp312-cp312-manylinux_2_28_x86_64.whl
Size 2.4 MB
Tags CPython 3.12 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
b3a11f20747291733aae094611d11bae461c11e746cdad961a33d3770b8db3c3
BLAKE2b-256 checksum
How to use checksums
7cfade4d38d3df6ebb909bb334fdf48c0edf745f9159cc3911cbda4c7321b22b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.15

Release files / dsf_suite-7.5.3-cp312-cp312-macosx_26_0_arm64.whl

Download URL dsf_suite-7.5.3-cp312-cp312-macosx_26_0_arm64.whl
Size 1.6 MB
Tags CPython 3.12 macOS 26.0+ ARM64
SHA-256 checksum
How to use checksums
347fe98b095a554df90b84bc0f1301bb9925f523d163b6226961b0cc4ac86323
BLAKE2b-256 checksum
How to use checksums
7aa8373ee166c498f618115e62f0c6dcb8f3243919afc1e1cca337be5c30170c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.15

Security for dsf-suite 7.5.3

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.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

7.5.3 This release

10 release files No provenance

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