Skip to main content

DynamicalSystemFramework

Latest Release PyPI version codecov DOI

Standard TBB SPDLOG CSV JSON SQLite

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.7.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.7.0
File Size Uploaded Provenance Actions
dsf_suite-7.7.0.tar.gz 198.3 kB Without provenance Details for dsf_suite-7.7.0.tar.gz

Built distributions (wheels)

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

Total release size: 17.2 MB

Release files / dsf_suite-7.7.0.tar.gz

Download URL dsf_suite-7.7.0.tar.gz
Size 198.3 kB
Tags Source
SHA-256 checksum
How to use checksums
7284e8d8ea705483ba58b3231d9c1a117c9f3a1ba9a5da336f58fc29d32dc57d
BLAKE2b-256 checksum
How to use checksums
849061c83f81449bdd22a46488880a5db168eaa244be3cb5894faa88ddd286c5
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.7.0-cp314-cp314-win_amd64.whl

Download URL dsf_suite-7.7.0-cp314-cp314-win_amd64.whl
Size 1.7 MB
Tags CPython 3.14 Windows x86-64
SHA-256 checksum
How to use checksums
6e6b9c21e9b9665204266553aa7326b1fb1c62eff0e91b9b4e21578c8408eed2
BLAKE2b-256 checksum
How to use checksums
3b27fae167e6c2f3cc9cb8b377503b1327169b54d2a62557a9b2553a2a58013a
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.7.0-cp314-cp314-manylinux_2_28_x86_64.whl

Download URL dsf_suite-7.7.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
dac75dd56e3d4490a754e2ae2be2d81f631164c516a3ef8c2ba7689c5cda4b0c
BLAKE2b-256 checksum
How to use checksums
124b69570f5b26fea3d597c4029dab05125b2fcbc302ad9d75c52423f0f7569d
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.7.0-cp314-cp314-macosx_26_0_arm64.whl

Download URL dsf_suite-7.7.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
a649ff9f12ee2b6b585df0fe17d394cb0ee17f616ce804d598d017a31b48afd0
BLAKE2b-256 checksum
How to use checksums
e0e9b09892855996b85d8f62875cfe2c87a4e0399467ac147c84b7c365edff1d
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.7.0-cp313-cp313-win_amd64.whl

Download URL dsf_suite-7.7.0-cp313-cp313-win_amd64.whl
Size 1.7 MB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
857687ac4fd7cdda9778679d15e772df2cce4229c53875779c59d541de99e350
BLAKE2b-256 checksum
How to use checksums
a8a7973a8c30a3412bbb9eeab5a9c43fa46272bebe0e7e583026a97709d26cf9
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.7.0-cp313-cp313-manylinux_2_28_x86_64.whl

Download URL dsf_suite-7.7.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
66507c4fcbc892a51c74535c6ef4fa11d03e1933450407d30191fee2f2d2c976
BLAKE2b-256 checksum
How to use checksums
3e32b7c4152e45bd512c8639c159fb70024f7ca668b30a7dc5768a9c51b2165a
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.7.0-cp313-cp313-macosx_26_0_arm64.whl

Download URL dsf_suite-7.7.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
ff46805e9e87bb5f1ef8a50a455f07412476ab3233f49071f8bc9ef057605160
BLAKE2b-256 checksum
How to use checksums
1433868262b4149f24175ac1847cd71cdbee8d407679113b36aa7a568570ffe8
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.7.0-cp312-cp312-win_amd64.whl

Download URL dsf_suite-7.7.0-cp312-cp312-win_amd64.whl
Size 1.7 MB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
423153b8d95154ed331fa2c3a214b8ed9ae845a43e9734c6377d3bc39279ce27
BLAKE2b-256 checksum
How to use checksums
a5706db8fa15adc2a1661e86cc8aa5b6611b2e4f143380c17d12c4972baa726a
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.7.0-cp312-cp312-manylinux_2_28_x86_64.whl

Download URL dsf_suite-7.7.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
d0c3e792b9209361b04af453fb631250940722a4ec549b27a8ed75ee7d98a240
BLAKE2b-256 checksum
How to use checksums
b4bdc8d28c202d10fb06e5537916f91567e7f36965c1073828194884ac0e1449
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.7.0-cp312-cp312-macosx_26_0_arm64.whl

Download URL dsf_suite-7.7.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
3444bd595bcf0545ac5b369e5f830a0b51ed8f34e32dc1f7819a1eb9a5d35983
BLAKE2b-256 checksum
How to use checksums
e5bd2e3d505a0f80717e8461d06c9719a25ff7475c74cad6f0d8947d92bc7769
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.7.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.7.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