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

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.1
File Size Uploaded Provenance Actions
dsf_suite-7.6.1.tar.gz 196.3 kB Without provenance Details for dsf_suite-7.6.1.tar.gz

Built distributions (wheels)

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

Total release size: 17.2 MB

Release files / dsf_suite-7.6.1.tar.gz

Download URL dsf_suite-7.6.1.tar.gz
Size 196.3 kB
Tags Source
SHA-256 checksum
How to use checksums
0d0b599eb5c2d779213c37eec6df94764efb2715b788fa55e97f43ce8deaf1b2
BLAKE2b-256 checksum
How to use checksums
a3381e19487686f8bbc883f3550ee282951457d9473659a23729a8e0a6db032b
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.1-cp314-cp314-win_amd64.whl

Download URL dsf_suite-7.6.1-cp314-cp314-win_amd64.whl
Size 1.7 MB
Tags CPython 3.14 Windows x86-64
SHA-256 checksum
How to use checksums
9236c368bcfcb6be9ef4fba147206b4533878b67d1c673ffdced6dbf88f97458
BLAKE2b-256 checksum
How to use checksums
c034f5e1fa1e9b5f842131ef7e2ca4c3ba9405e26d82e8e54323bcedd63c4299
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.1-cp314-cp314-manylinux_2_28_x86_64.whl

Download URL dsf_suite-7.6.1-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
ff2fee2a3a9da3e065bb1e02a52d0aa19fd3e9bcf9755769a5dfd0f115ef391b
BLAKE2b-256 checksum
How to use checksums
50670fe66b85da3b9ca06de7df4e3809bc42a2d249fdb854398e91d8579770e4
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.1-cp314-cp314-macosx_26_0_arm64.whl

Download URL dsf_suite-7.6.1-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
62bc8929f4426fe5e8c5e3f2dbda05d3fb2b89abf6037e6844a39684d5fd9ca4
BLAKE2b-256 checksum
How to use checksums
82c712c66b80c40d09dbfaf0b38b1e8c22d6777ed53dfa44016080a0da430a08
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.1-cp313-cp313-win_amd64.whl

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

Download URL dsf_suite-7.6.1-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
cf5953f16be5fcd5019412b4cae3076b537d2702d321c4ef6ce6534bc50a2734
BLAKE2b-256 checksum
How to use checksums
ca9296cb35685b43214f587e16a51788de42fbe600d73d34bdfbe6ba0816a854
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.1-cp313-cp313-macosx_26_0_arm64.whl

Download URL dsf_suite-7.6.1-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
75539bc4cd1edd2b5053d0c6325a7f254baabd14f7fc0388d469460c5a030176
BLAKE2b-256 checksum
How to use checksums
11f107b79fe4c0ea6304d2587cd8caccbaaad1049d854d03a606686512d15839
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.1-cp312-cp312-win_amd64.whl

Download URL dsf_suite-7.6.1-cp312-cp312-win_amd64.whl
Size 1.7 MB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
cf15b814226af2ca15f259d78bc15583bb26a583dd28945f811639cb3ef008bc
BLAKE2b-256 checksum
How to use checksums
10b7e03003bfad04020db0c645a51f0e75915ac031b87a1b75e5d70c008cef6b
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.1-cp312-cp312-manylinux_2_28_x86_64.whl

Download URL dsf_suite-7.6.1-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
6c1ccdb2e55679e240f74a421c063dbbecd7dc9839cbec4ba98f00d223f9df91
BLAKE2b-256 checksum
How to use checksums
292f60870922590b5d0fffaa7377aea4e3fd534c8931956ea48ccecf3856e131
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.1-cp312-cp312-macosx_26_0_arm64.whl

Download URL dsf_suite-7.6.1-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
376096914e9f17ba6bc6770810f4a07ae3d1472d6f28760df12325ac55337af5
BLAKE2b-256 checksum
How to use checksums
2ba472d61e7e867398ea94e48be95183cb7721da40c0a398cf52948a0f7db1b7
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.1

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