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.6.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 dsf-suite 7.6.0
File Size Uploaded Provenance Actions
dsf_suite-7.6.0.tar.gz 195.6 kB Without provenance Details for dsf_suite-7.6.0.tar.gz

Built distributions (wheels)

Table of built distributions (wheels) for dsf-suite 7.6.0
File Actions
dsf_suite-7.6.0-cp314-cp314-win_amd64.whl CPython 3.14 CPython 3.14 Windows x86-64 Details for dsf_suite-7.6.0-cp314-cp314-win_amd64.whl
dsf_suite-7.6.0-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.6.0-cp314-cp314-manylinux_2_28_x86_64.whl
dsf_suite-7.6.0-cp314-cp314-macosx_26_0_arm64.whl CPython 3.14 CPython 3.14 macOS 26.0+ ARM64 Details for dsf_suite-7.6.0-cp314-cp314-macosx_26_0_arm64.whl
dsf_suite-7.6.0-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details for dsf_suite-7.6.0-cp313-cp313-win_amd64.whl
dsf_suite-7.6.0-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.6.0-cp313-cp313-manylinux_2_28_x86_64.whl
dsf_suite-7.6.0-cp313-cp313-macosx_26_0_arm64.whl CPython 3.13 CPython 3.13 macOS 26.0+ ARM64 Details for dsf_suite-7.6.0-cp313-cp313-macosx_26_0_arm64.whl
dsf_suite-7.6.0-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details for dsf_suite-7.6.0-cp312-cp312-win_amd64.whl
dsf_suite-7.6.0-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.6.0-cp312-cp312-manylinux_2_28_x86_64.whl
dsf_suite-7.6.0-cp312-cp312-macosx_26_0_arm64.whl CPython 3.12 CPython 3.12 macOS 26.0+ ARM64 Details for dsf_suite-7.6.0-cp312-cp312-macosx_26_0_arm64.whl

Total release size: 17.1 MB

Release files / dsf_suite-7.6.0.tar.gz

Download URL dsf_suite-7.6.0.tar.gz
Size 195.6 kB
Tags Source
SHA-256 checksum
How to use checksums
9f80c49fc04ce0c28c31641bc50070e3968443f687943992554aa247fc1adc85
BLAKE2b-256 checksum
How to use checksums
af5c028657f3f9ccca060ae87199f27d2d094ee95c720b33817d94066819310d
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.6.0-cp314-cp314-win_amd64.whl

Download URL dsf_suite-7.6.0-cp314-cp314-win_amd64.whl
Size 1.7 MB
Tags CPython 3.14 Windows x86-64
SHA-256 checksum
How to use checksums
e3b0ab10a7180b90e722273768110cc9bc50ecf4ae857295275d0e5554989fbd
BLAKE2b-256 checksum
How to use checksums
df4ddff4dee23f70e4ad711d99f92a7674eb98154c610eee46b3a7faee04f427
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.6.0-cp314-cp314-manylinux_2_28_x86_64.whl

Download URL dsf_suite-7.6.0-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
5de80ea6aea4703dbd5350bbc93266aab5972067adaea9cde69e047b85049956
BLAKE2b-256 checksum
How to use checksums
21a299c3b89102a6dc27959758c9482e02f9af2f6df06ebd21c73624d7a13842
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.6.0-cp314-cp314-macosx_26_0_arm64.whl

Download URL dsf_suite-7.6.0-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
468f5b5e405dcb154e17a1c111b334c09c583c4b3d8f9b897b0148bf6946d570
BLAKE2b-256 checksum
How to use checksums
0095524c397aa2de356fdfa759d28dc71d923a712e808cd2c7cc1fd1126d6772
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.6.0-cp313-cp313-win_amd64.whl

Download URL dsf_suite-7.6.0-cp313-cp313-win_amd64.whl
Size 1.7 MB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
7bce294d25311e7d9c93e1d7701f69a6a3c71210dc43ce75d90c74d2c0c894c7
BLAKE2b-256 checksum
How to use checksums
1a1a2e9afbf63a3bd77eab80b44fba9be5a864f460b8af6f8adfeea1768fda43
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.6.0-cp313-cp313-manylinux_2_28_x86_64.whl

Download URL dsf_suite-7.6.0-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
45c93f0d31d50c146237ccfe90e74fbcb1890ac2f12af3239d6ddcb17d8a3eb1
BLAKE2b-256 checksum
How to use checksums
1f0e7b0a1c8e1cd7ae1b12fd54cf7f43812e35769ed34b06be3ff66f018097b2
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.6.0-cp313-cp313-macosx_26_0_arm64.whl

Download URL dsf_suite-7.6.0-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
d222368ca3512ceff9e5b65a2db58c1a7152570c7c6a5e96e4bf7b2f13877271
BLAKE2b-256 checksum
How to use checksums
fb29c4ebae397d1b9f7348eb28b74958bc52b55241f0eafa3d79141301592950
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.6.0-cp312-cp312-win_amd64.whl

Download URL dsf_suite-7.6.0-cp312-cp312-win_amd64.whl
Size 1.7 MB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
e56d0ba064f54f99976ba6101f172e35e17a841fae1894abe7f43b4c5d1f543b
BLAKE2b-256 checksum
How to use checksums
3cee09507e4e51c8fadf0df5339f8cd1ade3b773e8dc4b7d30d09009e192b0e3
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.6.0-cp312-cp312-manylinux_2_28_x86_64.whl

Download URL dsf_suite-7.6.0-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
ea64f14f7d041339bb090643b521be4e9fbb709f098174859774162f830bbcc4
BLAKE2b-256 checksum
How to use checksums
5eba8a411d410d4c240b47bad4ca90a28a92d3e8717a93471578dd4670e67b27
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.6.0-cp312-cp312-macosx_26_0_arm64.whl

Download URL dsf_suite-7.6.0-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
1bc94ea86167ed68c888e5b120ae46389dcba478fd5c8183ee85120001886e32
BLAKE2b-256 checksum
How to use checksums
49f2f13cfe4cdb794b1701540f6b1f0ecab966fc3b16b21742af65b55e7e435a
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.6.0

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.6.0 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