|
Dynamical System Framework
|
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.
The library is available on PyPI:
To check the installation you can simply run:
The project requires C++20 or greater, cmake, tbb, simdjson, spdlog, csv-parser, and SQLiteCpp.
To install requirements on Ubuntu:
To install requirements on macOS:
The library can be installed using CMake. To build and install the project in the default folder run:
Otherwise, it is possible to customize the installation path:
then building and installing it with:
If you want to use the library from Python, you can build the Python bindings using nanobind. Make sure you have tbb installed:
Then, the installation is automatic via uv:
or via standard pip:
After installation, verify the import in Python:
If you encounter issues, ensure that the installation path is in your PYTHONPATH environment variable.
Examples in this repository are being migrated. You can build legacy C++ examples by passing -DDSF_EXAMPLES=ON to CMake; output binaries will be generated under the examples/ directory.
Updated and active examples are maintained in dsf-examples.
For real-time dynamic visualization and visual inspection of network flows, see dsf-gui. It offers an interactive front-end designed specifically for monitoring simulations, analyzing queue dynamics, and visual debugging.
This project includes a pre-commit hook setup. To enable it locally, run:
This project uses Doctest for unit testing.
Tests are built automatically in Debug or Coverage mode. To manually force test compilation:
To execute the test suite:
Core performance critical components are benchmarked using Google Benchmark.
To build benchmark targets:
To run all benchmark executables:
If you use this software, please cite it using the metadata in CITATION.cff (GitHub's "Cite this repository" button exports it as BibTeX/APA), or via Zenodo DOI: 10.5281/zenodo.18745492.