fleetpy

Simulation framework to model and control the tasks of vehicle fleets (routing, user-assignment, charging, ...)

https://github.com/tum-vt/fleetpy

Science Score: 67.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 6 DOI reference(s) in README
  • Academic publication links
    Links to: arxiv.org
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (15.7%) to scientific vocabulary
Last synced: 6 months ago · JSON representation ·

Repository

Simulation framework to model and control the tasks of vehicle fleets (routing, user-assignment, charging, ...)

Basic Info
  • Host: GitHub
  • Owner: TUM-VT
  • License: mit
  • Language: Python
  • Default Branch: main
  • Size: 22.4 MB
Statistics
  • Stars: 79
  • Watchers: 6
  • Forks: 35
  • Open Issues: 11
  • Releases: 2
Created over 4 years ago · Last pushed 6 months ago
Metadata Files
Readme Changelog License Citation

README.md

🚖 FleetPy – Open-Source Fleet Simulation Framework

GitHub stars
FleetPy is an open-source fleet simulation framework for modeling and controlling vehicle fleets in ride-sharing, autonomous mobility, and on-demand transport applications.

Whether you're a researcher, transportation engineer, or mobility innovator, FleetPy helps you analyze and optimize fleet operations, routing strategies, and demand-responsive services.

😶‍🌫️ Fleetpy for dummies 📖 Read the Wiki | 🛠 Installation Guide | 🚀 Quickstart

Fleetpy Logo


🎯 Key Features

Agent-Based Simulation – Models individual vehicles, passengers, and operators.
Flexible User-Operator Interaction – Supports multiple request-acceptance models.
Multi-Fleet Management – Simulates ride-pooling, dispatching, and EV charging.
Customizable Routing Algorithms – Choose between memory-efficient and fast methods.
Modular & Extensible Design – Easily integrate new demand models, routing strategies, or data sources.
Optimized for Large-Scale Scenarios – Handles thousands of vehicles and requests efficiently.


🚀 Quickstart

Get up and running in just a few commands!

```bash

Clone the repository

git clone https://github.com/TUM-VT/FleetPy.git cd FleetPy

Set up the virtual environment

conda env create -f environment.yml conda activate fleetpy

Run an example simulation

python run_examples.py ```

✔ The results will be saved in FleetPy/studies/example_study/results/
✔ To visualize the results, run:

bash python replay_pyplot.py scenario_result_directory


🛠 Installation

1️⃣ Install with Conda (Recommended)

Ensure you have Anaconda installed.

```bash

Fetch the latest updates

git clone https://github.com/TUM-VT/FleetPy.git cd FleetPy

Set up a Conda environment

conda env create -f environment.yml conda activate fleetpy ```

2️⃣ Install C++ Router (Recommended)

For improved routing efficiency, compile the C++ router:

bash cd FleetPy/src/routing/cpp_router python setup.py build_ext --inplace

Ensure a C++ compiler and Cython are installed.

3️⃣ Install Optimizer (Optional)

For advanced optimization tasks, install the necessary optimizers:

🏆 Gurobi

To install Gurobi:

bash python -m pip install gurobipy==12.0.1

You can acquire a free academic license from Gurobi. 🎓

OR-Tools

To install Google's OR-Tools:

bash pip install ortools

This is useful for combinatorial optimization and routing problems.


📂 Data Preparation and Study Setup

For now, you can inspect the data structures and files in the examples provided in GitHub:

  • 📁 FleetPy/data
  • 📁 FleetPy/studies

More detailed descriptions of the data structure, preprocessing steps, and result data will be provided in upcoming versions. Additionally, a GUI to set up scenarios (with a choice of submodules and data) is planned for the future. 🎨

In general, you can save your data and study definitions in the mentioned directories. These are included in .gitignore.


📊 Running a Simulation

To test an example scenario:

bash python run_examples.py

✔ The output will be stored in:
📂 FleetPy/studies/example_study/results/

📊 Output Files

| File Name | Description | |----------------------|-------------| | 1_user_stats.csv | User request statistics | | 2_0_op-stats.csv | Fleet vehicle task logs | | standard_eval.csv | Aggregated evaluation results |

To analyze trends:

bash python FleetPy/src/evaluation/temporal.py scenario_result_directory


🎥 Watch a Replay

To visualize a previously simulated scenario, run:

bash python replay_pyplot.py scenario_result_directory <sim_seconds_per_real_second>

🛑 (Optional: Specify start time as an additional argument.)


Benchmark Data Sets

Input data and corresponding example scenario files are available for large-scale case studies of Manhattan, NY, Chicago, IL, and Munich, Germany. This data can be used as benchmark data sets to test and compare new algorithms or to set up large-scale simulations quickly. The FleetPy input data can be downloaded here and has to be copied into the FleetPy/data folder:

  • Manhattan: https://doi.org/10.5281/zenodo.15187906
  • Chicago: https://doi.org/10.5281/zenodo.15189440
  • Munich: https://doi.org/10.5281/zenodo.15195726

🤝 Contributing

We welcome contributions from the community! 🚀
📌 How to contribute:

  1. Fork the repo & create a feature branch (git checkout -b new-feature).
  2. Commit your changes (git commit -m "Added a cool feature").
  3. Push to your branch (git push origin new-feature).
  4. Make sure that the module tests are running (\studies\module_tests\run_module_tests.py).
  5. Open a Pull Request!

📢 Get Involved

💬 Join the discussion: GitHub Discussions
💻 Contribute: Open an issue or PR!
Support FleetPy: Give us a star ⭐ on GitHub!
🚀 Stay updated: Follow us on Homepage & LinkedIn


📌 Tested on

Windows 10 Pro x64
Chrome 79.0.3945
Python 3.10


🧪 Research Projects Using FleetPy

FleetPy has been applied in various academic and applied research projects across topics like shared mobility, autonomous vehicle operations, and electrified fleets:

Ongoing Projects

  • CONDUCTOR – Development of an integrated ride-parcel-pooling service using automated vehicles (CCAM), evaluated via FleetPy-Aimsun coupling (multi-modal integration, AVs, cooperative routing, traffic control, simulation coupling)
  • metaCCAZE – Scientific support and simulation-based evaluation of Munich’s Living Lab innovations including multimodal logistics hubs, dynamic curbside management, and connected/autonomous last-mile vehicles. FleetPy contributes to monitoring and optimizing operations (multimodal hubs, curbside management, AV logistics, LL evaluation, policy support)
  • MINGA – Evaluation of AV stop concepts and passenger interactions at TUM’s test field. FleetPy is used alongside MATSim and microscopic traffic simulations to model AV and non-AV traffic, evaluate climate and system-wide impacts, and support accessibility-focused user studies (AV integration, stop concepts, MATSim coupling, KPI evaluation, accessibility research)
  • STADT:up – Simulation of autonomous shuttle bus in different inter-mobility scenarios with dynamic stops (Operation, traffic evaluation)
  • SUM (Seamless Shared Urban Mobility) – Simulation-based evaluation of operational strategies for automated on-demand fleets in Munich using FleetPy, including integration with public transport, pricing strategies, and transferability to future mobility hubs (on-demand AV fleets, public transport integration, pricing, living lab scalability)

Completed Projects

  • MOIA – Implementation of algorithms to represent MOIA’s fleet control (operation, ride-pooling)

  • MCube: STEAM – Simulation of semi-flexible bus lines in Munich using FleetPy, integrated with the TUM-OSM decision support system (agent-based simulation, semi-flexible transit, DSS coupling, urban mobility, evaluation pipeline)

🧠 Do you use FleetPy in your research? Let us know!


Citation

If you find this framework useful for your work or use it in your project, please consider citing: Engelhardt, R., Dandl, F., Syed, A., Zhang, Y., Fehn, F., Wolf, F., Bogenberger, K. (2022). FleetPy: A Modular Open-Source Simulation Tool for Mobility On-Demand Services. Arxiv pre-print

@misc{engelhardt2022fleetpymodularopensourcesimulation, title={FleetPy: A Modular Open-Source Simulation Tool for Mobility On-Demand Services}, author={Roman Engelhardt and Florian Dandl and Arslan-Ali Syed and Yunfei Zhang and Fabian Fehn and Fynn Wolf and Klaus Bogenberger}, year={2022}, eprint={2207.14246}, archivePrefix={arXiv}, primaryClass={cs.MA}, url={https://arxiv.org/abs/2207.14246}, }

Owner

  • Name: TUM Chair of Traffic Engineering and Control
  • Login: TUM-VT
  • Kind: user
  • Location: Munich, Germany
  • Company: TUM Chair of Traffic Engineering and Control

Citation (CITATION.cff)

cff-version: 1.2.0
message: "If you use Fleetpy, please cite it as below. Furthermore, we invite you to cite the arXiv pre-print: https://arxiv.org/abs/2207.14246"
authors:
- family-names: Engelhardt
    given-names: Roman
  - family-names: Dandl
    given-names: Florian
  - family-names: Syed
    given-names: Arslan-Ali
  - family-names: Zhang
    given-names: Yunfei
  - family-names: Fehn
    given-names: Fabian
  - family-names: Wolf
    given-names: Fynn
  - family-names: Bogenberger
    given-names: Klaus
title: "FleetPy"
license: "MIT"
url: "https://github.com/TUM-VT/FleetPy"

GitHub Events

Total
  • Fork event: 6
  • Create event: 14
  • Release event: 2
  • Issues event: 7
  • Watch event: 15
  • Delete event: 10
  • Member event: 1
  • Issue comment event: 10
  • Push event: 90
  • Pull request review event: 5
  • Pull request review comment event: 3
  • Pull request event: 11
  • Gollum event: 15
Last Year
  • Fork event: 6
  • Create event: 14
  • Release event: 2
  • Issues event: 7
  • Watch event: 15
  • Delete event: 10
  • Member event: 1
  • Issue comment event: 10
  • Push event: 90
  • Pull request review event: 5
  • Pull request review comment event: 3
  • Pull request event: 11
  • Gollum event: 15

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 7
  • Total pull requests: 8
  • Average time to close issues: 12 months
  • Average time to close pull requests: 4 months
  • Total issue authors: 4
  • Total pull request authors: 5
  • Average comments per issue: 0.43
  • Average comments per pull request: 0.5
  • Merged pull requests: 3
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 4
  • Pull requests: 6
  • Average time to close issues: N/A
  • Average time to close pull requests: 21 days
  • Issue authors: 3
  • Pull request authors: 3
  • Average comments per issue: 0.0
  • Average comments per pull request: 0.33
  • Merged pull requests: 3
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • r0meng (4)
  • SantiagoAOM (3)
  • LaurensKrudde (2)
  • zhuhuang-11 (1)
  • FlorianDandl (1)
  • JoelBrodersen (1)
  • ChenhaoDing (1)
Pull Request Authors
  • SantiagoAOM (5)
  • r0meng (4)
  • HodaHisham (3)
  • maxtmng (3)
  • Arjan-de-R (1)
Top Labels
Issue Labels
Pull Request Labels

Dependencies

src/routing/cpp_router/setup.py pypi
environment.yml pypi
  • pyqt5-sip ==4.19.18
  • pyqt6 ==6.5.0
  • pyqt6-qt6 ==6.5.0
  • pyqt6-sip ==13.5.1
  • pyqtwebengine ==5.12.1