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

Uploaded CPython 3.14Windows x86-64

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

Uploaded CPython 3.14macOS 26.0+ ARM64

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

Uploaded CPython 3.13Windows x86-64

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

Uploaded CPython 3.13macOS 26.0+ ARM64

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

Uploaded CPython 3.12Windows x86-64

dsf_suite-6.5.5-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.5-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.5.tar.gz.

File metadata

  • Download URL: dsf_suite-6.5.5.tar.gz
  • Upload date:
  • Size: 176.6 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.5.tar.gz
Algorithm Hash digest
SHA256 1207a9e023c43711c094cbc4e9b406344222a62811bf91b87326ad2256593d6d
MD5 63829d7e4682b16aa9fb520f7f060dd3
BLAKE2b-256 82e8462a1592790c94fc755bd2fb4194b7945c4664b37a155ebf99c8c59b9dd3

See more details on using hashes here.

File details

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

File metadata

  • Download URL: dsf_suite-6.5.5-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.5-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 8dc2e7cfa814463327b945402cfe7e8ab95b097dcec1ccb1805e0333657750a0
MD5 8c927c1f246662f9c27e2dfd463ca511
BLAKE2b-256 59466229990b0bb7cca58ee70222d7234b39fcc286dd1e27370f57473cbd04c7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dsf_suite-6.5.5-cp314-cp314-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 872c14e913a9f65d8a597cd5a4d850ec1583f83b1d39afb8b1c67013b25f164a
MD5 897b9d6e07614dc435deeeba6f2fa7c4
BLAKE2b-256 8d0a740b98075d7a7c87c059b5bc559fed0fa685a84d28e722563e75bf09efa7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dsf_suite-6.5.5-cp314-cp314-macosx_26_0_arm64.whl
Algorithm Hash digest
SHA256 5b45acf16aa79e693b44a7b081a6b4f256a1d08463f6f1a13b20d8da1c7fe3e9
MD5 a9f50f0d4f7273dae0b038a89c07ac12
BLAKE2b-256 061526a52194e55abf77c4f26442871bf6a4c95add9704dd18ce331b1180923a

See more details on using hashes here.

File details

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

File metadata

  • Download URL: dsf_suite-6.5.5-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.5-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 1a27a714d3469191872a24b1ad90be2d25c31cc0e80157fffaefb9ee530098c6
MD5 e006f4075df37e2fa419eaf15f194471
BLAKE2b-256 5367d80fd6373f4594f97968a77a37880a0bdcc852389975375eaad1da1bbac3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dsf_suite-6.5.5-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 8fd1e3bd0f74d9318e303ccf6d32aa3f8b1629db880146f38ca26e201c4003a4
MD5 12e5eb0813608df4891c4fbc6459a670
BLAKE2b-256 f4b947f002ab420c953450b9b02bd88d21a3f7177d77ac079e34a415aea8fd64

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dsf_suite-6.5.5-cp313-cp313-macosx_26_0_arm64.whl
Algorithm Hash digest
SHA256 1591894f43634c11624f5a525b4bb23aa6fbf9f1cdc48c3b562a416958214af7
MD5 610f7afc5b75932a683ef4f44e91c91b
BLAKE2b-256 8ffd1a259ff584464bdf0750a376b03634036a4377fe8f4e1da6eba739a934ba

See more details on using hashes here.

File details

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

File metadata

  • Download URL: dsf_suite-6.5.5-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.5-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 0181a821e7c0bf78aa26b88cd8a323b02e90f4913860da0117fdc6978abca583
MD5 1fd2b1156c8dd7564171465bda299739
BLAKE2b-256 dca682043e37ec7bc1b06c98a6da135aa5547c9c545bc273ff8e080fd0024fd3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dsf_suite-6.5.5-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 32092e5a37bae39d6acf72dd6cf945bf23dcce9873384565a5cca465eaa8fff1
MD5 54ae8b9782d9ff4eb5baff0a2c87e9fa
BLAKE2b-256 8169f3386deeba70bd88817a062a7e1c384756e219c2749f2edb97577f0d167c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dsf_suite-6.5.5-cp312-cp312-macosx_26_0_arm64.whl
Algorithm Hash digest
SHA256 212e99d9c55eb1079deed8b7048519fa9d29769f54f593988beacb50725bd2e4
MD5 022e783f761cc4d4e29ef4ed2d87acf5
BLAKE2b-256 3ddf881f00c327d112cfb0b3ea7053f2ba8b23250625d526f86353814605263d

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