3D visualization of SUMO traffic simulations
Project description
|
|
| A three dimensional traffic visualisation |
sumo3Dviz is a lightweight, open-source 3D visualisation pipeline for SUMO traffic simulations. It converts standard SUMO simulation outputs, such as vehicle trajectories and signal states, into high-quality 3D renderings using a Python-based framework.
| Features: | Major OS Support | Python 3.9 Support |
Table of Contents
Highlights
| Visualisation Modes | |||
| (1) Eulerian | (2) Lagrangian | (3) Cinematic | (4) Interactive |
Video Demos on YouTube:
- Eulerian: https://www.youtube.com/watch?v=XvpG5cbv7Ig
- Lagrangian: https://www.youtube.com/watch?v=DesOELXIWxc
- Cinematic: https://www.youtube.com/watch?v=wEUbjlqigyg
- Interactive: https://www.youtube.com/watch?v=dq9pH1Cj7gA
Installation
The python package sumo3Dviz can be installed using pip:
pip install sumo3Dviz
Please note: Currently only Python 3.9 is supported on all major operating systems (Windows, Mac iOS, Linux).
Usage
You can use sumo3Dviz as command line tool (CLI), configure a variety of parameters in the config YAML file, and the run four different visualisation modes:
- Run sumo3Dviz in Eulerian mode:
sumo3Dviz --config examples/config_barcelona.yaml --mode eulerian --output examples/barcelona_simulation_eulerian.avi
- Run sumo3Dviz in Lagrangian mode:
sumo3Dviz --config examples/config_barcelona.yaml --mode lagrangian --output examples/barcelona_simulation_lagrangian.avi
- Run sumo3Dviz in Cinematic mode:
sumo3Dviz --config examples/config_barcelona.yaml --mode cinematic --output examples/barcelona_simulation_cinematic.avi
- Run sumo3Dviz in Interactive mode:
sumo3Dviz --config examples/config_barcelona.yaml --mode interactive
Case Study: Barcelona
Step 1: Prepare Sumo Simulation
You can run any SUMO simulation and render it to a video. Just make sure to log vehicle positions and traffic lights (if desired for rendering). Also, if you want to place trees, fences, buildings, and other objects, please create polygon files with netedit. In the following explanations how to do it. Moreover, we provide an example (barcelona_simulation) that demos all outlined information.
(1) Log Vehicle Positions in your Configuration.sumocfg:
<!-- YOUR Configuration.sumocfg -->
<?xml version="1.0" encoding="UTF-8"?>
<configuration xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://sumo.dlr.de/xsd/sumoConfiguration.xsd">
<!-- ... -->
<!-- INSERT THIS TO LOG VEHICLE POSITIONS -->
<output>
<fcd-output value="simulation_logs/vehicle_positions.xml"/>
<fcd-output.attributes value="x,y,angle"/>
</output>
<!-- ... -->
</configuration>
(2) (Optional) Log Traffic Light States Configuration.sumocfg:
<!-- YOUR Configuration.sumocfg -->
<?xml version="1.0" encoding="UTF-8"?>
<configuration xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://sumo.dlr.de/xsd/sumoConfiguration.xsd">
<!-- ... -->
<!-- INSERT THIS TO LOAD ADDITIONAL FILE tls_logging.add.xml -->
<input>
<additional-files value="tls_logging.add.xml"/>
</input>
<!-- ... -->
</configuration>
And create the additional file tls_logging.add.xml in the same folder:
<?xml version="1.0" encoding="UTF-8"?>
<additional>
<timedEvent type="SaveTLSStates"
dest="simulation_logs/signal_states.xml"/>
</additional>
(3) (Optional) Additional Objects (Fences, Trees, Buildings...):
You can create polygon files (POIs) with Netedit, and store them, for example following trees.add.xml:
<additional xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://sumo.dlr.de/xsd/additional_file.xsd">
<!-- Shapes -->
<poi id="poi_0" color="red" layer="202.00" x="19332.99" y="17853.26"/>
<poi id="poi_1" color="red" layer="202.00" x="19398.22" y="17894.70"/>
<poi id="poi_10" color="red" layer="202.00" x="19412.72" y="17919.65"/>
<poi id="poi_100" color="red" layer="202.00" x="18935.17" y="17729.96"/>
<poi id="poi_1000" color="red" layer="202.00" x="20139.72" y="18631.08"/>
<poi id="poi_1001" color="red" layer="202.00" x="20154.28" y="18637.80"/>
<poi id="poi_1002" color="red" layer="202.00" x="20205.22" y="18645.08"/>
<poi id="poi_1003" color="red" layer="202.00" x="20209.14" y="18647.88"/>
<!-- ... -->
The simulation's input files (network, POIs), and the generated output log files are then processed by sumo3Dviz to generate the visualisation.
Step 2: Prepare Visualisation Configuration
You can configure various aspects, such as textures, position of buildings, fences, trees, etc. in the configuration YAML file.
Furthermore, the configuration contains possible settings for all modes, related to camera configurations.
An exemplary structure for such a configuration can be found in examples/config_barcelona.yaml.
Step 3: Render Video Visualisation with sumo3Dviz
Command Line Interface (CLI)
This is one example how you can run sumo3Dviz with a CLI one line in your terminal:
sumo3Dviz --config examples/config_barcelona.yaml --mode eulerian --output examples/barcelona_simulation_eulerian.avi
Python Code
In this repository we provide four example codes to run sumo3Dviz in the four different modes as a Python script, that can be found in .examples/. These examples visualize the aforementioned case study of Barcelona.
- Run sumo3Dviz in Eulerian mode:
python examples/demo_eulerian.py
- Run sumo3Dviz in Lagrangian mode:
python examples/demo_lagrangian.py
- Run sumo3Dviz in Cinematic mode:
python examples/demo_cinematic.py
- Run sumo3Dviz in Interactive mode:
python examples/demo_interactive.py
Citations
Please cite our paper if you find sumo3Dviz useful:
@inproceedings{riehl2026sumo3Dviz,
title={sumo3Dviz: A three dimensional traffic visualisation},
author={Riehl, Kevin and Schlapbach, Julius and Kouvelas, Anastasios and Makridis, Michail A.},
booktitle={SUMO Conference Proceedings},
year={2026}
}
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file sumo3dviz-0.4.3.tar.gz.
File metadata
- Download URL: sumo3dviz-0.4.3.tar.gz
- Upload date:
- Size: 59.3 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.25
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2e86606d551344ae29382c91e7da1366b0fa18f1e42252712b4feeb6f6d1c7d1
|
|
| MD5 |
d9cad8dd39276eabbb1d0df4a245875a
|
|
| BLAKE2b-256 |
4ab08f30fec2994190cf5365e2dacb03e60d278b833e9e284566420b17a6157a
|
File details
Details for the file sumo3dviz-0.4.3-py3-none-any.whl.
File metadata
- Download URL: sumo3dviz-0.4.3-py3-none-any.whl
- Upload date:
- Size: 59.3 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.25
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b7b2878b44e4ab5e3eac36940c09d0c9200fa0019d8f220716934ce55cbc1825
|
|
| MD5 |
3055121be2de2c590590b37b2482a6e3
|
|
| BLAKE2b-256 |
935bbda972f8c22695a638c480f635a3c6d63765c24a67245604c0096c6d93dd
|