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.3.tar.gz (176.3 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.3-cp314-cp314-win_amd64.whl (1.7 MB view details)

Uploaded CPython 3.14Windows x86-64

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

Uploaded CPython 3.14macOS 26.0+ ARM64

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

Uploaded CPython 3.13Windows x86-64

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

Uploaded CPython 3.13macOS 26.0+ ARM64

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

Uploaded CPython 3.12Windows x86-64

dsf_suite-6.5.3-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.3-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.3.tar.gz.

File metadata

  • Download URL: dsf_suite-6.5.3.tar.gz
  • Upload date:
  • Size: 176.3 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.3.tar.gz
Algorithm Hash digest
SHA256 8f20331e891cbf5329226ec86623d018c7414a46a667b9595945e8cbed42cea7
MD5 731883f30a519e715b4e3364225306d3
BLAKE2b-256 b7af497f063b32fb3ba7a9f746a4fb239a58cf5f8fd546b5a58e33e0945fd226

See more details on using hashes here.

File details

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

File metadata

  • Download URL: dsf_suite-6.5.3-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.3-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 d608d4a6d81ef4cc9ac87d43c2fc7379c4d270484ff6ebd6dc03436ecad7aa7b
MD5 f202890b3850e32acc262656ab9679e4
BLAKE2b-256 b3bee873c357948448e14ed50e2ca77677f3be46d0346cdb33cebcee73441230

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dsf_suite-6.5.3-cp314-cp314-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 d4d2adef31c825b666d27730e58fa2a3edfe76696d38b35cb62a7ac514cd1c21
MD5 b0086f9db22ce8b31ef3050b09f536d7
BLAKE2b-256 7baeafcf3234d56a890613762503f12bf0229a74fc891840751122896e0b5ec0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dsf_suite-6.5.3-cp314-cp314-macosx_26_0_arm64.whl
Algorithm Hash digest
SHA256 caef968f2cde0b1a3fd08758bd785f4d2040edc4ceae411b27e1ae0eb95390f3
MD5 9786c8d11b70e34845a73438667ffd92
BLAKE2b-256 54e1d21a755d9c35cd56685d58fb37f806613e683278f9d88d65c141a5c00129

See more details on using hashes here.

File details

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

File metadata

  • Download URL: dsf_suite-6.5.3-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.3-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 6a6839b219201b5304d3ecc4bd7ee3fc7ae7b5bab93be346c38b2750dcab4bf9
MD5 47c03929b05793ad897b429d235b041e
BLAKE2b-256 dc4d8e73380fa692af9d83f39c49b60e7b53c3162f6f320fa22e3a6c0f129ec1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dsf_suite-6.5.3-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 1efce54ecdedcf3c256dbfeae471060dae4272d84ca505208089c127afb3a639
MD5 10fff0be1a1248701c55b0b048513da6
BLAKE2b-256 695f5728dcbb609ce2e5fd6eb21a587ba37038c7f002ca6323505ac97991d00a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dsf_suite-6.5.3-cp313-cp313-macosx_26_0_arm64.whl
Algorithm Hash digest
SHA256 df37189defb2953624b2f133dc2123e714c9ca9f574daa49ea7a486fb6f500d5
MD5 0d4cb7ea5f62bf8a14131c945e8b2592
BLAKE2b-256 d78c1c63aa5a8f2a386a80c6d14097aa957cd316d4b79a872408dac81bdecfe2

See more details on using hashes here.

File details

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

File metadata

  • Download URL: dsf_suite-6.5.3-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.3-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 883fe7949ecd5a54bac57e1bc44838d4a225810698ab2de93450d81ff5cf60a8
MD5 c35838e5a9d5e7afa14d61b548bbaa5b
BLAKE2b-256 a7e549fd4fb2e55546136da3a8bcfa21e6b81bc95e25fa59faaf7ca5580bb1d7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dsf_suite-6.5.3-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 1bbc2e3f71ce34847b6c0dffb26fcc6933a2fae9583647c7f4eb952094c93d92
MD5 06d297ba65b87992c778252dca7a4b97
BLAKE2b-256 3095c9c5e6f1bd6fb99916bef2e810d0632811264ecac1fbbe89bab77fc46829

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dsf_suite-6.5.3-cp312-cp312-macosx_26_0_arm64.whl
Algorithm Hash digest
SHA256 e786685a2788f68c14df98a79f959effc574a4fd614aaad37923d9d0184a59cc
MD5 c790f0a2185226dcb725310fbe9bf337
BLAKE2b-256 d359118a69655ba7312f44f0fa81cb48ff13e083ccd96ce6e92b1c82ae437989

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