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.5.7.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.5.7-cp314-cp314-win_amd64.whl (1.7 MB view details)

Uploaded CPython 3.14Windows x86-64

dsf_suite-6.5.7-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.5.7-cp314-cp314-macosx_26_0_arm64.whl (1.6 MB view details)

Uploaded CPython 3.14macOS 26.0+ ARM64

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

Uploaded CPython 3.13Windows x86-64

dsf_suite-6.5.7-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.5.7-cp313-cp313-macosx_26_0_arm64.whl (1.6 MB view details)

Uploaded CPython 3.13macOS 26.0+ ARM64

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

Uploaded CPython 3.12Windows x86-64

dsf_suite-6.5.7-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.5.7-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.5.7.tar.gz.

File metadata

  • Download URL: dsf_suite-6.5.7.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.5.7.tar.gz
Algorithm Hash digest
SHA256 743692eb89ad09a1a90f2496306aca72c13b78a0ad900ac1fbefeb2763e8ecce
MD5 62718ef2c63f92ee4bc8039db2a95b51
BLAKE2b-256 79ded59b8d0c71038028525626e099cdf958cde8e27c8c5848f39ec67fada3e5

See more details on using hashes here.

File details

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

File metadata

  • Download URL: dsf_suite-6.5.7-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.5.7-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 e5b13d98e5ed0ce0003fb2a53d959b2e2e15a576d8a5bf8f56a924cedb850384
MD5 fca4c5ccb83dd2801a56e89f0a19f8e6
BLAKE2b-256 17c87db001a96b69aeb8f0ed1434ddccfdbc0509bc38d2496fca9dd5920f2e1b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dsf_suite-6.5.7-cp314-cp314-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 5663b12a652aa9c157af51fe7f957b80a7e456443d3695fe6f68bf02c3f21af1
MD5 ff6ac85190817a17ca082c744c0331db
BLAKE2b-256 65a74a13251975d6269929c7e80c37533b736ea194c27e5fd32bbaefde7d1aa4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dsf_suite-6.5.7-cp314-cp314-macosx_26_0_arm64.whl
Algorithm Hash digest
SHA256 e15e6cb8b25ba9d4cdbd6ea117516cc318c7535f1594c65d5a32011830732244
MD5 02b41304c394a63d814205190ad34c8b
BLAKE2b-256 d5272be9f58fb56513c28bf7a5ab9b94c764ddb52ca0cd590777f8e96d9e2c08

See more details on using hashes here.

File details

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

File metadata

  • Download URL: dsf_suite-6.5.7-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.5.7-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 16dce9d1713b9edd74843a7aa250342ae4ab219d6861cb2e91fbe36b24d44f54
MD5 9d2b3ddf9f5b1dce445bf3dbff7dc254
BLAKE2b-256 99750a1f08a5f952f604424542483543758d1774040ca5ddf7ee9b257ff46df0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dsf_suite-6.5.7-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 20284306e1d6874aca5182fcd50007ef060309f21c33dbaf92457f13638edbe3
MD5 6936c0d4ec1dc846d385a09e52456e63
BLAKE2b-256 3c3a91dee2b16bcc856af6567394102b81341fa9116fc1e746f8614a2beb4e21

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dsf_suite-6.5.7-cp313-cp313-macosx_26_0_arm64.whl
Algorithm Hash digest
SHA256 218c6345d99b537fbb64fe3f5ff9689b1b77a537b7648900b52456cbed0f5b50
MD5 da568d2d1f1b8faaaaf887b406138386
BLAKE2b-256 db2c8897d47ccd60d040771c838829d99ce3ef491d2eb377bb0b08a62bd22815

See more details on using hashes here.

File details

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

File metadata

  • Download URL: dsf_suite-6.5.7-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.5.7-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 927aacbfb9603b474af908950ca9c577e4f688e38e2bdf3f5844357dc7bf7f36
MD5 7b11c38ab54085e5a444599e6ac06cbd
BLAKE2b-256 d41f26078f7ae141baa45553a5ef77f16788a3afe3f44a5041cbe2538fb47cf2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dsf_suite-6.5.7-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 dd5f4b1130893c3a73aee8f9072e9593078223fb269a976fefb7bcc000113627
MD5 7ea46f6b665fc43ed836982eb7672655
BLAKE2b-256 146a3bfb92e5ae59ad6ddfd6ebef65b673ad774bff7ba481e4c2cece90bc998e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dsf_suite-6.5.7-cp312-cp312-macosx_26_0_arm64.whl
Algorithm Hash digest
SHA256 7feed2f44e139e5e8beb8fc5dc9b665964ca84beb308b8f1d43dde46051db81d
MD5 e0567551d1e570fc63b5c6642cf5d9e5
BLAKE2b-256 50a45c9f42389a9ba5d0f0b9e570144e3c249d7b434bf71739353337d981135b

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