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

Uploaded CPython 3.14Windows x86-64

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

Uploaded CPython 3.14macOS 26.0+ ARM64

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

Uploaded CPython 3.13Windows x86-64

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

Uploaded CPython 3.13macOS 26.0+ ARM64

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

Uploaded CPython 3.12Windows x86-64

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

File metadata

  • Download URL: dsf_suite-6.5.2.tar.gz
  • Upload date:
  • Size: 176.2 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.2.tar.gz
Algorithm Hash digest
SHA256 7b031507899ecebb2093c3f8118d776dd9b6cc674d4086b11f5287c91748260c
MD5 c96f581bb06a1224272b00d11db0b84f
BLAKE2b-256 fee07ae79045b3c09626b4825b178306102d0449702d2e865890655538052641

See more details on using hashes here.

File details

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

File metadata

  • Download URL: dsf_suite-6.5.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.5.2-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 20ec9a1c09b0e3df0a865d33e86774aedde2f45b2aab25ed99fd7f8bab955a21
MD5 5c1826831102fcb3dc34ba180eef93be
BLAKE2b-256 3180c2bd6877ed5dc320758f2371e0dfd5df8d528b5af8df94a1e10be8636500

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dsf_suite-6.5.2-cp314-cp314-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 8e72e6026647265ec31d1336c5e3afbcc9865e1678bd52327021d4b287f1cecf
MD5 afb64f98f7df28dc6beff0a4ac053044
BLAKE2b-256 e675b71e8f9a48da9fda981b85b3a09aa698cf14acf062d31d1cf07a7450cc2b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dsf_suite-6.5.2-cp314-cp314-macosx_26_0_arm64.whl
Algorithm Hash digest
SHA256 75e6ce88ef8347e9f54e037da2534f99091cc5885ce1884bbcbfd114e52a3b51
MD5 6377208331555897c0b7224e9d77e887
BLAKE2b-256 e77d237bbdfbe272da8ea51e76744ab5e49e063ece51e4104c3bb1bba98feef3

See more details on using hashes here.

File details

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

File metadata

  • Download URL: dsf_suite-6.5.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.5.2-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 738973ff8dac0779c319c11e42609f4a2f49353d2f77efeb008c0064de8a69ad
MD5 d8a2342c0da53e6173c47e954660da6c
BLAKE2b-256 78627a84973416435d758f9c1e4c22dd9bc3f34d69303e4a61ec99539e780ea2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dsf_suite-6.5.2-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b3a829563d7d6e819909a14aa9230b9f9496b6106a6c6317be64ac3443211b4d
MD5 e619656686949c92ea49c61fa1830ca6
BLAKE2b-256 0e2b2d71d0ca1d277bab1c9761908140150d683c57a0aa7d94ad20cef511fa81

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dsf_suite-6.5.2-cp313-cp313-macosx_26_0_arm64.whl
Algorithm Hash digest
SHA256 e5021681300d616fec562335fcd105f0dd2768bc3dc0dae3771f52e2b04461b6
MD5 4e415cfb0fe720ed9d1f84f798cced98
BLAKE2b-256 d5faa9f9c226da8fbaa2109281d4e5d080e1a4470783c919ea1b659521b0b962

See more details on using hashes here.

File details

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

File metadata

  • Download URL: dsf_suite-6.5.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.5.2-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 3140b46cb9420bcad0b20cf63b2cfcf5b3dbaf00c23b1ed2c759cc6f7540bb87
MD5 5df15317fdf572ff84915452472411c9
BLAKE2b-256 c0801ecbf4572606154a44eb2979863d75fcb26212278f582d0f13f6035cb2b6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dsf_suite-6.5.2-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 518149879d8461ec0acc0283f7a77d43287fad6a637228e6fd908358d010f122
MD5 bf2b0ad4896f6ebf6828be1d0e14a1f9
BLAKE2b-256 00dd29e42ea6bdeed54278e028bff90ccccc80b0210215220ac91b0ad02d2e83

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dsf_suite-6.5.2-cp312-cp312-macosx_26_0_arm64.whl
Algorithm Hash digest
SHA256 7d9914f921d27e9b88e14d28b9f0df081dba8b0e4f928912e6dce4d810979e50
MD5 14cc197537b89e3264d6db870b9435dc
BLAKE2b-256 e474594024ff26f6772f781259d993b43920294489503d1fcec08f16c28b37fd

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