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 (eventually in sudo mode) 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 pybind11. Make sure you have tbb installed:

sudo apt install libtbb-dev

Then, the installation is automatic via uv:

uv build

or you can just use the classic pip:

pip install .

After installation, you should be able to import the module 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 (slowly) being deprecated. You can build them by adding the cmake flag -DDSF_EXAMPLES=ON and you will find the exectuables under the examples folder. You can also find some Python examples.

New examples are being updated on dsf-examples.

GUI

If you need a visualization tool there is one available on dsf-gui. It is still in alpha stage but is already useful for some purposes.

For Developers

This project as a pre-commit configuration. To use it properly, please install:

pip install pre-commit
pre-commit install

Testing

This project uses Doctest for testing.

If the project is compiled in Debug or Coverage mode, tests are always built. Otherwise, you can add the -DDSF_TESTS=ON flag to enable test build.

cmake -B build -DDSF_TESTS=ON
cmake --build build -j$(nproc)

To run the tests use the command:

ctest --test-dir build -j$(nproc) --output-on-failure

Benchmarking

Some functionalities of the library have been benchmarked in order to assess their efficiency.
The benchmarks are performed using Google Benchmarks.

To build the benchmarks add the flag -DDSF_BENCHMARKS=ON :

cmake -B build -DDSF_BENCHMARKS=ON
cmake --build build -j$(nproc)

To run all the benchmarks together use the command:

cd benchmark
for f in ./*.out ; do ./$f ; done

Citing

@software{berselli_2026_18745492,
  author       = {Berselli, Gregorio},
  title        = {DynamicalSystemFramework},
  month        = mar,
  year         = 2026,
  publisher    = {Zenodo},
  doi          = {10.5281/zenodo.18745492},
  url          = {https://doi.org/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.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dsf_suite-6.6.2.tar.gz (177.0 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

dsf_suite-6.6.2-cp314-cp314-win_amd64.whl (1.7 MB view details)

Uploaded CPython 3.14Windows x86-64

dsf_suite-6.6.2-cp314-cp314-manylinux_2_28_x86_64.whl (2.3 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.28+ x86-64

dsf_suite-6.6.2-cp314-cp314-macosx_26_0_arm64.whl (1.6 MB view details)

Uploaded CPython 3.14macOS 26.0+ ARM64

dsf_suite-6.6.2-cp313-cp313-win_amd64.whl (1.7 MB view details)

Uploaded CPython 3.13Windows x86-64

dsf_suite-6.6.2-cp313-cp313-manylinux_2_28_x86_64.whl (2.3 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ x86-64

dsf_suite-6.6.2-cp313-cp313-macosx_26_0_arm64.whl (1.6 MB view details)

Uploaded CPython 3.13macOS 26.0+ ARM64

dsf_suite-6.6.2-cp312-cp312-win_amd64.whl (1.7 MB view details)

Uploaded CPython 3.12Windows x86-64

dsf_suite-6.6.2-cp312-cp312-manylinux_2_28_x86_64.whl (2.3 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ x86-64

dsf_suite-6.6.2-cp312-cp312-macosx_26_0_arm64.whl (1.6 MB view details)

Uploaded CPython 3.12macOS 26.0+ ARM64

File details

Details for the file dsf_suite-6.6.2.tar.gz.

File metadata

  • Download URL: dsf_suite-6.6.2.tar.gz
  • Upload date:
  • Size: 177.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for dsf_suite-6.6.2.tar.gz
Algorithm Hash digest
SHA256 634d952c99253066c4bf8badedba6c09bd8fac367409bc5828fd780f74c28e01
MD5 b53cf60f75adb5d1fbc3575b61e8b390
BLAKE2b-256 98c254dfdda8ee46cb3f2e9bf560e28492025e7ec399ecb9090f3bc3c27db982

See more details on using hashes here.

File details

Details for the file dsf_suite-6.6.2-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: dsf_suite-6.6.2-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 1.7 MB
  • Tags: CPython 3.14, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for dsf_suite-6.6.2-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 de5979245dd557ac778afdfc56c2a038315268d8847e208c65b7103aa39345fc
MD5 08c168b97abc0cf2927ff25b998d24c7
BLAKE2b-256 74ce271228882507cbcd608f3c26166aca32cae8538e6db1757d3b34748a652c

See more details on using hashes here.

File details

Details for the file dsf_suite-6.6.2-cp314-cp314-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for dsf_suite-6.6.2-cp314-cp314-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 fe5f38be010f2894293281af67bfcf9e7e0c239182d923bcf55998d1459060bf
MD5 b2e274c2ed2738f1851b8383ee6c7793
BLAKE2b-256 a4e406a82d563efcf1691af3b33769dd7c157829077642d3a69e5376d4e2225b

See more details on using hashes here.

File details

Details for the file dsf_suite-6.6.2-cp314-cp314-macosx_26_0_arm64.whl.

File metadata

File hashes

Hashes for dsf_suite-6.6.2-cp314-cp314-macosx_26_0_arm64.whl
Algorithm Hash digest
SHA256 0f58e4e6a93349baa9713a135909d08385ed8fa9ba8505db6d7129962bf3846c
MD5 f455c44eeae5e4c71f2258850e7aaeb8
BLAKE2b-256 dda175ebaf3c240666e9a8e264ae7691f016e17fad8c17e87556876611d8626b

See more details on using hashes here.

File details

Details for the file dsf_suite-6.6.2-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: dsf_suite-6.6.2-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 1.7 MB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for dsf_suite-6.6.2-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 e336d12bc01dc7529fa971c1599117875fe3a9fbb28322320564fe10bbb11ef3
MD5 63ddd197240776f60d8958d843473214
BLAKE2b-256 fcbf0787d0412e292fa269c1fb5e898fa5a3844add951811f41f96efec161127

See more details on using hashes here.

File details

Details for the file dsf_suite-6.6.2-cp313-cp313-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for dsf_suite-6.6.2-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 05e7f36403a2176939caf79233daf82d76d3e47958d2f8412244490181513784
MD5 a4788c49b687abf19722e31565e88331
BLAKE2b-256 9433dcf95c1f159a4e10993b7504d0df1dfe923674f72a773bf6dfba3a7123f4

See more details on using hashes here.

File details

Details for the file dsf_suite-6.6.2-cp313-cp313-macosx_26_0_arm64.whl.

File metadata

File hashes

Hashes for dsf_suite-6.6.2-cp313-cp313-macosx_26_0_arm64.whl
Algorithm Hash digest
SHA256 1486238ba1cca580cbfb6df9fd7432b9a2f787ab1b230a05ec5ac2cf39b14220
MD5 bb401dd2fd78314337c7e73339662b42
BLAKE2b-256 3466539240b7b24380f0c0f0678a22a610bcfa70ff97af40dcb7e14321369fa5

See more details on using hashes here.

File details

Details for the file dsf_suite-6.6.2-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: dsf_suite-6.6.2-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 1.7 MB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for dsf_suite-6.6.2-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 c63d58161a5bb6119361365759d7a391bd9c61c166a9b6d29863752f4434f654
MD5 a6a712d5677ec0e87cf27c11f915f1b9
BLAKE2b-256 0940dba2b034c30173918ee609a24053f355ee36668cc978f6e16a69f0622c8a

See more details on using hashes here.

File details

Details for the file dsf_suite-6.6.2-cp312-cp312-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for dsf_suite-6.6.2-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 635a682e44be156416d1137523ceb79db1306b3cfa6b3780dc186f8e93f55fe1
MD5 6bd7a4215768283c6318b10f7ac8d922
BLAKE2b-256 d022c7e0aa3fa4602e13cd114a24b4471191fa7393ad02092e4612992d108eb1

See more details on using hashes here.

File details

Details for the file dsf_suite-6.6.2-cp312-cp312-macosx_26_0_arm64.whl.

File metadata

File hashes

Hashes for dsf_suite-6.6.2-cp312-cp312-macosx_26_0_arm64.whl
Algorithm Hash digest
SHA256 62ccba7ef7ada90eeee334d1b5e69243327c133273fa0e2cf9a0bf1eacfd403a
MD5 2db850673805310c141da5aa71aababf
BLAKE2b-256 9c04969ee882940a11d27a4b7099288242ab2d963eb0ee9fe0deb5891d03243d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page