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

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.4
File Size Uploaded Provenance Actions
dsf_suite-7.5.4.tar.gz 193.6 kB Without provenance Details for dsf_suite-7.5.4.tar.gz

Built distributions (wheels)

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

Total release size: 17.1 MB

Release files / dsf_suite-7.5.4.tar.gz

Download URL dsf_suite-7.5.4.tar.gz
Size 193.6 kB
Tags Source
SHA-256 checksum
How to use checksums
55f06659cf56a134b8336d7e96712f576c03dafeb63a60828c23cf90a114bcdc
BLAKE2b-256 checksum
How to use checksums
afb8bb329eaf1da88c617b228b0931f574be51f8227317b6f89374abbda8a461
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.4-cp314-cp314-win_amd64.whl

Download URL dsf_suite-7.5.4-cp314-cp314-win_amd64.whl
Size 1.7 MB
Tags CPython 3.14 Windows x86-64
SHA-256 checksum
How to use checksums
ca343c1d5cb26fddc7997a3e280c32d1b40fa5d4bd519f2d1e23efb6a5ac8496
BLAKE2b-256 checksum
How to use checksums
3d137ae34bb8011ea77c6d6516f65d1957e8f27110e2960dadb65d40af2d6e64
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.4-cp314-cp314-manylinux_2_28_x86_64.whl

Download URL dsf_suite-7.5.4-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
a25bae4ff3abb973e06ffcbcf16685b9fb683606921eafbe1c3f402ca294e8ee
BLAKE2b-256 checksum
How to use checksums
8e219f83b8dff5294f6c3923f3c19231750428ca1d7d006aec698681ad10a911
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.4-cp314-cp314-macosx_26_0_arm64.whl

Download URL dsf_suite-7.5.4-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
8d2f3c2e834f8584e18a8bc96c757919569ff412753e2f6e0e391ba58dd19560
BLAKE2b-256 checksum
How to use checksums
28272ce125fb1a77c10ba329ba3c3fc50de17127393f72934715db739fb6cc25
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.4-cp313-cp313-win_amd64.whl

Download URL dsf_suite-7.5.4-cp313-cp313-win_amd64.whl
Size 1.7 MB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
67d0c07f3f5189680ed53a57b3940054ef7135ce2c3c76425a5edb21454c4e2f
BLAKE2b-256 checksum
How to use checksums
275ee80563f1abe023d8214ca48ff3ff1ba2b13676c63c80073e9c08b64a4413
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.4-cp313-cp313-manylinux_2_28_x86_64.whl

Download URL dsf_suite-7.5.4-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
220d8804b4047fc7ab05fcc8a5a471d3fc126ea1bd12f8e66b9cecba72c5a066
BLAKE2b-256 checksum
How to use checksums
29576f28280b19abf280190e93e96e566bd99aeca4f65bd7d04cc8afee688543
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.4-cp313-cp313-macosx_26_0_arm64.whl

Download URL dsf_suite-7.5.4-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
b2ed37184bd2dec175085c93481d28ef6c5a72519e89e31a6e4e3bd2e30d4b1d
BLAKE2b-256 checksum
How to use checksums
8290b032df21348409929b23779466eced6a81022220a63399c3b583cd18d768
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.4-cp312-cp312-win_amd64.whl

Download URL dsf_suite-7.5.4-cp312-cp312-win_amd64.whl
Size 1.7 MB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
25883f40799a1af000c6abe80471aa7dc115c731eb98672c159cb084c89c22f2
BLAKE2b-256 checksum
How to use checksums
812df44a3d7db969477012a83c0adb88241aa1d7ef8cc44f79377bd4c3cb6406
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.4-cp312-cp312-manylinux_2_28_x86_64.whl

Download URL dsf_suite-7.5.4-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
a0a5cc6d0549f0c9d1a76e075958180182f168270b236bbb77dd29c3d79fdbfc
BLAKE2b-256 checksum
How to use checksums
1d6368d445e2744616ada35f631e6efc2d296b971a106aaf6bb300d92419fb14
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.4-cp312-cp312-macosx_26_0_arm64.whl

Download URL dsf_suite-7.5.4-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
7d851cc7afe86fd3a6047e4fa6370c5d769ca4d98db4e5fa6714775e27d878bb
BLAKE2b-256 checksum
How to use checksums
b31d5be4e08f70cdd3bd48766c64fdb8b653b99c8998c78bf2d10019d82d0db9
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.4

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