An OSM and OpenDRIVE road-network editor built on top of ORBIT and PyQt6.
- OpenDRIVE visualisation — load and display
.xodrfiles with full lane polygon rendering using the built-in vector renderer backed by ORBIT. - Live XODR refresh — edits to the OSM layer automatically trigger a re-conversion via
netconvertand update the OpenDRIVE overlay in real time. - OSM overlay — fetch, display, and edit OpenStreetMap way/node data; stitch or split roads; export changes to a local OSM file.
- OSM → OpenDRIVE conversion — drive
netconvert(SUMO) via osm-to-xodr from within the UI to convert an OSM file to.xodr. - CARLA OSM tile server — connect to a running WayWiser CARLA OSM tile server to stream map tiles into the editor.
- Imagery layers — ESRI tile imagery and CARLA bird's-eye-view (BEV) tile server, with independent zoom/opacity controls.
- Project persistence — save and reload the full editor state (layers, edits, view position) as a
.oreproject file. - Georeferencing — reads PROJ
+tmercstrings from the XODR<geoReference>block to correctly align map tiles with the road network.
- Python >= 3.12
- PyQt6 >= 6.6
- SUMO >= 1.26.0. See installation instructions.
- See pyproject.toml for the full dependency list.
git clone --recurse-submodules https://github.com/das-rise/open-road-editor.git
cd open-road-editor# Install uv if needed
curl -LsSf https://astral.sh/uv/install.sh | sh
# Create the virtual environment and install dependencies
uv sync
source .venv/bin/activatepython -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install -e .Use open-road-editor or ore to open the editor.
# Open the editor (no file)
open-road-editor
# Open an OSM file directly
open-road-editor --osm path/to/map.osm
# Open a saved project
open-road-editor --project path/to/session.ore
# Connect to a running CARLA OSM tile server
open-road-editor --host 192.168.1.10 --port 8080
# Override reference coordinates
open-road-editor --lat 57.474 --lon 11.984Full argument reference:
| Flag | Description |
|---|---|
--osm PATH |
OSM file to load on startup |
--project PATH |
.ore project file to restore |
--host HOST |
Tile / CARLA server hostname or IP |
--port PORT |
Server port (default 8080) |
--lat FLOAT |
Reference latitude (WGS-84) |
--lon FLOAT |
Reference longitude (WGS-84) |
--tile_max_zoom_level INT |
Maximum tile zoom level (default 18) |
--bounds X0 X1 Y0 Y1 |
World-space bounds override (metres) |
--width INT |
Canvas width in pixels |
--height INT |
Canvas height in pixels |
GPL-3.0 — see LICENSE for details.