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.

Release files for dsf-suite 7.0.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for dsf-suite 7.0.3
File Size Uploaded
dsf_suite-7.0.3.tar.gz 178.1 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for dsf-suite 7.0.3
File
dsf_suite-7.0.3-cp314-cp314-win_amd64.whl CPython 3.14 CPython 3.14 Windows x86-64 Details
dsf_suite-7.0.3-cp314-cp314-manylinux_2_28_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.28+ x86-64 Details
dsf_suite-7.0.3-cp314-cp314-macosx_26_0_arm64.whl CPython 3.14 CPython 3.14 macOS 26.0+ ARM64 Details
dsf_suite-7.0.3-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details
dsf_suite-7.0.3-cp313-cp313-manylinux_2_28_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.28+ x86-64 Details
dsf_suite-7.0.3-cp313-cp313-macosx_26_0_arm64.whl CPython 3.13 CPython 3.13 macOS 26.0+ ARM64 Details
dsf_suite-7.0.3-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
dsf_suite-7.0.3-cp312-cp312-manylinux_2_28_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.28+ x86-64 Details
dsf_suite-7.0.3-cp312-cp312-macosx_26_0_arm64.whl CPython 3.12 CPython 3.12 macOS 26.0+ ARM64 Details

Total release size: 15.9 MB

Release files / dsf_suite-7.0.3.tar.gz

Download URL dsf_suite-7.0.3.tar.gz
Size 178.1 kB
Tags Source
SHA-256 checksum
How to use checksums
d3976cecacbf8d9c3a09b87fecade3de028d0a6e3ad906c41aac2da40bfb2de2
BLAKE2b-256 checksum
How to use checksums
b439134489780c4e258ae5f0c110145d57e40def771b4cdc7f77afb0bf4f1e30
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.14

Release files / dsf_suite-7.0.3-cp314-cp314-win_amd64.whl

Download URL dsf_suite-7.0.3-cp314-cp314-win_amd64.whl
Size 1.6 MB
Tags CPython 3.14 Windows x86-64
SHA-256 checksum
How to use checksums
8bf5d1f2dc198b8e1d282b096e9a339f4ae5650b8c117ba4ce2c4f4332c406bb
BLAKE2b-256 checksum
How to use checksums
16816a2bfb9aebc32bf8d2bca79b496e1d716870a6b0677cfb2fe5a2703355e6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.14

Release files / dsf_suite-7.0.3-cp314-cp314-manylinux_2_28_x86_64.whl

Download URL dsf_suite-7.0.3-cp314-cp314-manylinux_2_28_x86_64.whl
Size 2.2 MB
Tags CPython 3.14 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
d07680567a041491bb7429935068d3c9ea9afd50c61df04392990f8bdee6d3f1
BLAKE2b-256 checksum
How to use checksums
65dfe654b90874350bfea640965a4db2d274cd6f0ad5ef6f4d17a6cc31ad2b96
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.14

Release files / dsf_suite-7.0.3-cp314-cp314-macosx_26_0_arm64.whl

Download URL dsf_suite-7.0.3-cp314-cp314-macosx_26_0_arm64.whl
Size 1.5 MB
Tags CPython 3.14 macOS 26.0+ ARM64
SHA-256 checksum
How to use checksums
629b8e769cff8c3ced8bec1e73638ecfc8aa9375ff3794f217d50f5bfd04ec21
BLAKE2b-256 checksum
How to use checksums
3cb99dafea813a7727aa8daf633ca014c63fc80d4e5b54bd39f1e6f8a5b59519
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.14

Release files / dsf_suite-7.0.3-cp313-cp313-win_amd64.whl

Download URL dsf_suite-7.0.3-cp313-cp313-win_amd64.whl
Size 1.5 MB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
ee3f3fa0e47b99f57be19d2cef7a58471a10fc850749d9c3d94578bf817a1873
BLAKE2b-256 checksum
How to use checksums
455eb1fb77490f81d2dee587a1978457ab2132da7c6e534fbcaa4b2d0fe3b64e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.14

Release files / dsf_suite-7.0.3-cp313-cp313-manylinux_2_28_x86_64.whl

Download URL dsf_suite-7.0.3-cp313-cp313-manylinux_2_28_x86_64.whl
Size 2.2 MB
Tags CPython 3.13 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
0142dbacc0d57d369f657de9d46256d263d4545da50365ecf44e9de45d83e7a4
BLAKE2b-256 checksum
How to use checksums
d3958cb551d236d6acb4e828480a01373d409b9704e7627fbb50c90d2f6de9a2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.14

Release files / dsf_suite-7.0.3-cp313-cp313-macosx_26_0_arm64.whl

Download URL dsf_suite-7.0.3-cp313-cp313-macosx_26_0_arm64.whl
Size 1.5 MB
Tags CPython 3.13 macOS 26.0+ ARM64
SHA-256 checksum
How to use checksums
559b921e01705040029dd5cd8b4e11fea90e4894c5b38c2f2d7da29e82ad07ae
BLAKE2b-256 checksum
How to use checksums
3d2643370d40b90a72cc102d3999e986ac8b3b8811bd9626abc4572f65fdf266
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.14

Release files / dsf_suite-7.0.3-cp312-cp312-win_amd64.whl

Download URL dsf_suite-7.0.3-cp312-cp312-win_amd64.whl
Size 1.5 MB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
3fe8c1d2cfc202c92cc8a911373a7b3448882ff02a5144528f12a235a09710d1
BLAKE2b-256 checksum
How to use checksums
54bae1f1a9b1cd90d278e3d804385e37bac878bb662b34c03948819838de89d7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.14

Release files / dsf_suite-7.0.3-cp312-cp312-manylinux_2_28_x86_64.whl

Download URL dsf_suite-7.0.3-cp312-cp312-manylinux_2_28_x86_64.whl
Size 2.2 MB
Tags CPython 3.12 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
5da4c945c1dd56142977e810934d63e254c5065900fecc4d0829920fa49278fa
BLAKE2b-256 checksum
How to use checksums
9d26cd5d4505f2d449b5ca1abe6809b2747084c4c9d281682ba54d3a922c78c6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.14

Release files / dsf_suite-7.0.3-cp312-cp312-macosx_26_0_arm64.whl

Download URL dsf_suite-7.0.3-cp312-cp312-macosx_26_0_arm64.whl
Size 1.5 MB
Tags CPython 3.12 macOS 26.0+ ARM64
SHA-256 checksum
How to use checksums
88d50d4ce39ccc9fd62a2c2d616827f62029e1ee38b99c511cdeed8459defbc5
BLAKE2b-256 checksum
How to use checksums
9b3377a77711c6b21d9ba7a8248999d6df0629f8cfbb779f6dde13d0ed7d00c2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.14

Release history Release notifications | RSS feed

7.2.5

10 release files

7.2.4

10 release files

7.2.3

10 release files

7.2.2

10 release files

7.2.1

10 release files

7.2.0

10 release files

7.1.0

10 release files

7.0.4

10 release files

This release

7.0.3 This release

10 release files

7.0.2

10 release files

7.0.1

10 release files

6.7.0

10 release files

6.6.3

10 release files

6.6.2

10 release files

6.6.1

10 release files

6.6.0

10 release files

6.5.7

10 release files

6.5.6

10 release files

6.5.5

10 release files

6.5.4

10 release files

6.3.2

10 release files

6.3.1

10 release files

6.2.5

10 release files

6.2.4

10 release files

6.2.3

10 release files

6.2.2

10 release files

6.2.1

10 release files

6.2.0

10 release files

6.0.9

10 release files

6.0.8

13 release files

6.0.7

13 release files

6.0.5

9 release files

6.0.4

9 release files

6.0.3

9 release files

6.0.2

9 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page