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 nanobind. 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-7.0.0.tar.gz (177.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-7.0.0-cp314-cp314-win_amd64.whl (1.6 MB view details)

Uploaded CPython 3.14Windows x86-64

dsf_suite-7.0.0-cp314-cp314-manylinux_2_28_x86_64.whl (2.2 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.28+ x86-64

dsf_suite-7.0.0-cp314-cp314-macosx_26_0_arm64.whl (1.5 MB view details)

Uploaded CPython 3.14macOS 26.0+ ARM64

dsf_suite-7.0.0-cp313-cp313-win_amd64.whl (1.5 MB view details)

Uploaded CPython 3.13Windows x86-64

dsf_suite-7.0.0-cp313-cp313-manylinux_2_28_x86_64.whl (2.2 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ x86-64

dsf_suite-7.0.0-cp313-cp313-macosx_26_0_arm64.whl (1.5 MB view details)

Uploaded CPython 3.13macOS 26.0+ ARM64

dsf_suite-7.0.0-cp312-cp312-win_amd64.whl (1.5 MB view details)

Uploaded CPython 3.12Windows x86-64

dsf_suite-7.0.0-cp312-cp312-manylinux_2_28_x86_64.whl (2.2 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ x86-64

dsf_suite-7.0.0-cp312-cp312-macosx_26_0_arm64.whl (1.5 MB view details)

Uploaded CPython 3.12macOS 26.0+ ARM64

File details

Details for the file dsf_suite-7.0.0.tar.gz.

File metadata

  • Download URL: dsf_suite-7.0.0.tar.gz
  • Upload date:
  • Size: 177.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.12.13

File hashes

Hashes for dsf_suite-7.0.0.tar.gz
Algorithm Hash digest
SHA256 e0934fbcdddf51135e5fe6a69fa82c8d20fcfe12f57f33789c6bfe1c59870e3e
MD5 1ee5cc6bccc9fb44eaf1e0d66e7d6406
BLAKE2b-256 bd6597602db8c165544f6a6f33a837ddf58c6f8fe8621a786ef326d93a02c25e

See more details on using hashes here.

File details

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

File metadata

  • Download URL: dsf_suite-7.0.0-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 1.6 MB
  • Tags: CPython 3.14, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.12.13

File hashes

Hashes for dsf_suite-7.0.0-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 a1538965814416fc28912cb38cfb9071af42df46bee3784c57c84060ad0cba4b
MD5 d25bc0174d80b63d84d140b878f24ba8
BLAKE2b-256 05728639be62a789afb793e479aec051ee62c07afa54b147965fc4cd2d847672

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dsf_suite-7.0.0-cp314-cp314-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 fa0c9bc812d5f756453383fdc808da96e5c720e0d047f3e8de939b8fedcbc504
MD5 35f73809fd29c12bec59cc3da8106503
BLAKE2b-256 cc0b42fcdd5e3d0d5324f27cdecb8f057a517e0959ff30baf25b84a8ce450cad

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dsf_suite-7.0.0-cp314-cp314-macosx_26_0_arm64.whl
Algorithm Hash digest
SHA256 e95ee3acdb180a54c85f53e1a4e0a06340784b13dc02d19a4fd8c7b46a08bb4c
MD5 ea262227d05f6bbdbb8318655d7536ce
BLAKE2b-256 83006b95138ca60e6e80e643af6280ec83d26ffc191324142e53f8fb32161aaf

See more details on using hashes here.

File details

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

File metadata

  • Download URL: dsf_suite-7.0.0-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 1.5 MB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.12.13

File hashes

Hashes for dsf_suite-7.0.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 8f1d952cdebec36aba15ce70e4eed6c0cfc3c4ea6eb866172acb68693547819a
MD5 9ed64171574c23d819e938741c7680c2
BLAKE2b-256 dad416db5fb49c88f52d93cfd442c4c2655a8974dc3f98ea2fb9d9910f01a45c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dsf_suite-7.0.0-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 617a8654d33bfb51274930566233ee61a83f40976edfc6c91e546e2d994b6ccc
MD5 58135f63b32793b1795fbea880b948bc
BLAKE2b-256 08a15f44f3a4291dace104c3775991ca475d49461e07fdef6f7d7d4e42cfadc0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dsf_suite-7.0.0-cp313-cp313-macosx_26_0_arm64.whl
Algorithm Hash digest
SHA256 b77d659cb2564ea66bd499635161306f3c7cea9bb9ca5c903a18821e9300b827
MD5 6d230293df9f56d8a3894e4f16dc9a7b
BLAKE2b-256 c4e0218fe7353a3b953831004e18147d30ac2d4ed4c8af636529fcf36e6a91ed

See more details on using hashes here.

File details

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

File metadata

  • Download URL: dsf_suite-7.0.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 1.5 MB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.12.13

File hashes

Hashes for dsf_suite-7.0.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 348bf9062bd910af8ce773d35147cd867aac6b75b0c21513820b2f8936d42951
MD5 82f6e40a8f4442f1dde2544fbdb8b96a
BLAKE2b-256 e8eebaa07fdd4c1e1857dd03ed5e68a48b9934a3b075f26d5d378156c5ca7868

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dsf_suite-7.0.0-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a7421ce02f55d54e156efeb09ab128415466793a36225b4240ca5fa8bf831d85
MD5 ac294fbd8fd319e4fc151f317a5c8963
BLAKE2b-256 8acffa76efb60c65aba9c3cdcff6d18be6d5049f054669b86b7ead91689f6730

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dsf_suite-7.0.0-cp312-cp312-macosx_26_0_arm64.whl
Algorithm Hash digest
SHA256 d9de115e57048013fa367ca7ea4bee17a3dc9da9fcc8a48975e3f694e9a5b4e4
MD5 03aa199a3d25168a0b02010b1eb1b63e
BLAKE2b-256 e9b82989f747d99a1a3a03747ea34dde3d0d6ad73d737a7ee0b55705591190f4

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