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.4.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.4.0
File Size Uploaded Provenance
dsf_suite-7.4.0.tar.gz 191.3 kB Without provenance Details

Built distributions (wheels)

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

Total release size: 17.0 MB

Release files / dsf_suite-7.4.0.tar.gz

Download URL dsf_suite-7.4.0.tar.gz
Size 191.3 kB
Tags Source
SHA-256 checksum
How to use checksums
5227e4acc62ed46a46dde105a68d1a0e2cd194416bcff97046b6655d9fdf5d81
BLAKE2b-256 checksum
How to use checksums
1373d70c5bbd849d6e5c1035a31e0a122b3a61a0bb82ccc86181b30032f086fc
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.4.0-cp314-cp314-win_amd64.whl

Download URL dsf_suite-7.4.0-cp314-cp314-win_amd64.whl
Size 1.7 MB
Tags CPython 3.14 Windows x86-64
SHA-256 checksum
How to use checksums
508fb58be0eeec4cc1bf0404787177f8b95a3ded70d43c3b00cbce2c5a4b5fec
BLAKE2b-256 checksum
How to use checksums
1aa288936ca475f4805f84cfa96df7e585af05e49ca6aaeef085c16de9c0f117
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.4.0-cp314-cp314-manylinux_2_28_x86_64.whl

Download URL dsf_suite-7.4.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
54ede5dcd2521a1fc7a9c19fcb7f8c9ec0e79945e30db92228891823befb9623
BLAKE2b-256 checksum
How to use checksums
f85bd7ff9c7c89f867d6a01f5aa65e74ee5005e413979f12d71754b3cc63006e
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.4.0-cp314-cp314-macosx_26_0_arm64.whl

Download URL dsf_suite-7.4.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
dbe433f15ee05755485db170bdd7d37059b938b81f7e9cf22d06d09f0d27ab38
BLAKE2b-256 checksum
How to use checksums
afd55ae83be3e2fb4347f8c69d8ef56f06360bdba271e3343ae1354d549caee2
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.4.0-cp313-cp313-win_amd64.whl

Download URL dsf_suite-7.4.0-cp313-cp313-win_amd64.whl
Size 1.7 MB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
f1baa1557cbfa92c573004bdd2af4fbd199a98c47cd24975d2858fd02270aa19
BLAKE2b-256 checksum
How to use checksums
7a68cc934440c2fc1e788ff27481122cbc3c1bc5b2551227b2778f1f17f155e0
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.4.0-cp313-cp313-manylinux_2_28_x86_64.whl

Download URL dsf_suite-7.4.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
c6040213ebfea3f96baf7a7994b6d4431999079d8c821c519fd1b93918c0214d
BLAKE2b-256 checksum
How to use checksums
8ed428805d5b6d54c0d6cb1843b1781c183a6fe5be8b844fd9ddc895d2b40b67
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.4.0-cp313-cp313-macosx_26_0_arm64.whl

Download URL dsf_suite-7.4.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
ce9d0a7ffb679410e076a90038e8555e8552e843890ce28e30187411036ff2f5
BLAKE2b-256 checksum
How to use checksums
662180325c35ac9afde359ad3ca4018bc323c08d3b325fa9b17afacf00556dd2
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.4.0-cp312-cp312-win_amd64.whl

Download URL dsf_suite-7.4.0-cp312-cp312-win_amd64.whl
Size 1.7 MB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
ac4ff65569d66340c11a82c51006f781219e23bb3baa6dd71878303477d53c74
BLAKE2b-256 checksum
How to use checksums
f77298293369fba7e5fbdff0b2dbb7b1cf4bda7ee1744081e47124941b0bc815
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.4.0-cp312-cp312-manylinux_2_28_x86_64.whl

Download URL dsf_suite-7.4.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
fa48a48863610274643e1422caf8234835e46bb30e98a218e622863164b17a53
BLAKE2b-256 checksum
How to use checksums
2309ed0e64db74be3dd70d8560f6d5817b7bcc706a595ecccb9e7501454a0f4d
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.4.0-cp312-cp312-macosx_26_0_arm64.whl

Download URL dsf_suite-7.4.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
f88148a1455f510e1d4922c8e3e5d9b5d12bda95d4918716f56809ca9023cd38
BLAKE2b-256 checksum
How to use checksums
46d9b4a004c8483e52ad381a4aa4d8555e8da8883c4ef785cde834da5383684f
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.4.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.4.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