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

Uploaded CPython 3.14Windows x86-64

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

Uploaded CPython 3.14macOS 26.0+ ARM64

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

Uploaded CPython 3.13Windows x86-64

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

Uploaded CPython 3.13macOS 26.0+ ARM64

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

Uploaded CPython 3.12Windows x86-64

dsf_suite-6.6.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.6.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.6.3.tar.gz.

File metadata

  • Download URL: dsf_suite-6.6.3.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.3.tar.gz
Algorithm Hash digest
SHA256 0df92e8f058d7d31ce670111a9ac63e781608e98c2dcb00152c8d8c4a2b538d0
MD5 0762a08ccbfa34a44dd5aa42c67496fb
BLAKE2b-256 bfe0ccc2680f98e9251e8e467fb42f3b3b715d10e2912bad37e2078e033d01ce

See more details on using hashes here.

File details

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

File metadata

  • Download URL: dsf_suite-6.6.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.6.3-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 40494f8809a77ae64d33fd720d36ffdc6673f6dc87705e08ad37bed88a3814a8
MD5 12e06f6013404a5c8056ad1b4e889e1c
BLAKE2b-256 1bcb7b9ff03c39d2047bd93b2aeb6f6d2c874c029b365d8e1c8926e4ae354645

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dsf_suite-6.6.3-cp314-cp314-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 7e4f81261a2810c61f921437f3ae02262cd72c7a1bad95ce9b7d07f9e6d3a4d3
MD5 50b6b1a0a17741e7f1802adedddfcd5c
BLAKE2b-256 c77ad8777a952963b92a2f26b635db74cdb115ffee09de98a453254db535d1d4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dsf_suite-6.6.3-cp314-cp314-macosx_26_0_arm64.whl
Algorithm Hash digest
SHA256 b855b0598c0c79939200ce31dd683e27fe354f2e78f983eaf9f4e02b34126544
MD5 66e65a83597967309eec507ed547329d
BLAKE2b-256 2cb341d615e927659aea661becd201a8f802e24d1864b553c16dc1bf7f237e31

See more details on using hashes here.

File details

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

File metadata

  • Download URL: dsf_suite-6.6.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.6.3-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 230d4ce4b35980239cabebd33fbdd2204fb1630f2babbdc89d6cea7fd0933a3c
MD5 a284cd50c26d6cbaaa90ab6f90111df6
BLAKE2b-256 92d6cffb35529feae42a30d5aa76d6123728577ed21b948c6da0a3ccafda64b6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dsf_suite-6.6.3-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 460077466edb835782b7439b0b07cdce8c902d141383dfb7b2be1f9942c6e6cc
MD5 6f50d81e757a88fbd23faee070454d51
BLAKE2b-256 df2ec17704002a3cb777b3ba0c99b640668736d1425fb8513348f0e50a34e2f6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dsf_suite-6.6.3-cp313-cp313-macosx_26_0_arm64.whl
Algorithm Hash digest
SHA256 434200d11e9f54609ee59530a4a589399a5f1554a17d191e0ee894385f4d0ec6
MD5 a5c4295f5be3d92d3651810b8862e304
BLAKE2b-256 00a90de39768f5d8ef0116d9e72ccb6a6c801f01fd1a440bd777c75ee97989b1

See more details on using hashes here.

File details

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

File metadata

  • Download URL: dsf_suite-6.6.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.6.3-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 485c2f5eae18abd32cb630c1344551796dbd005f176d74b445eeb0e5b2c2c040
MD5 cc07ccbe8ce02f98dee38757941d2846
BLAKE2b-256 e754279e658a6bf47c7f09ddf310ae0d9cf13b384f55229b291d2b10a9d591ad

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dsf_suite-6.6.3-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 9936cb0aa7b08c2108a1063cd034c14fdf7f877bd20b9875994408a54c268f3d
MD5 51ba81a3d1ff6415b80189a1bbd29ddb
BLAKE2b-256 3a607f78c18e39d1d545027122f61ff97626ae75e2554e4a2e4fb639ab754d03

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dsf_suite-6.6.3-cp312-cp312-macosx_26_0_arm64.whl
Algorithm Hash digest
SHA256 f6e584b7b869b946f2b758c7fc2b6fa7b96cfdd1931f36bb23093c1c81c451fb
MD5 9ccdbc91a8c75a014f4eaaf5533281b6
BLAKE2b-256 82a5e0e6c35e45e2bad8b3b3b6ddb588637b68dc4fa2024d4a29c9b1601306af

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