RoadMaker is an open source (Apache-2.0) road-network authoring toolkit for autonomous-driving simulation, developed by Robomous. It authors clothoid-based road geometry with full lane semantics, reads and writes ASAM OpenDRIVE, and generates simulation-ready 3D meshes.
The core value is geometric and standards correctness: exported OpenDRIVE validates, junctions carry coherent lane logic, and meshes are watertight and robust. A C++20 kernel does the work; a Qt 6 Widgets editor and a Python package sit on top (architecture).
Drag a road assembly, an intersection, or a prop straight from the Library onto the scene — every drop is one undoable edit:
Prebuilt editor packages (DMG / NSIS installer / AppImage) and Python wheels
will ship with the first release, v0.1.0 — published when the
Road to Parity roadmap is complete. Until then,
main carries the pre-release version 0.0.1 and you build from source
below.
git clone https://github.com/robomous/roadmaker.git
cd roadmaker
python3 scripts/setup_qt.py # one-time: provisions Qt into ./.qt/
cmake --preset dev-macos # or dev-linux / dev-windows
cmake --build --preset dev-macos
ctest --preset dev-macos
./build/dev-macos/editor/roadmaker-editor.app/Contents/MacOS/roadmaker-editor \
assets/samples/straight_road.xodrDetails, kernel-only builds, and troubleshooting: building · running · Python quickstart
New to authoring? The user guide walks through the editor tool by tool.
Everything lives under docs/: getting started,
the user guide,
contributing,
standards,
architecture,
domain conventions, design docs, and decision
records.
RoadMaker tessellates a network into simulation-ready 3D meshes and writes:
- glTF 2.0 (
.glb) — binary, self-contained, always available. - OpenUSD (
.usda) — ASCII only, in editor/optional builds configured with-DRM_BUILD_USD=ON(prebuilt release packages include it; Python wheels ship it off)..usdc/.usdzcrate output is intentionally unsupported — every USD consumer (usdview, Omniverse/Isaac Sim, Blender) reads.usda. See docs/design/m2/04_usd_export.md.
RoadMaker follows the "Road to Parity" roadmap (docs/roadmap/README.md): eight capability pillars — interaction & navigation, roads & lanes, markings, junctions & signals, terrain & structures, assets & props & materials, import & export, and scenarios — that converge on a commercial-grade editing experience. Acceptance is by hand-executed golden workflows, and day-to-day status lives on the public project board.
Release policy: there will be exactly one release — v0.1.0 — published
only when every pillar is complete and the
release gate passes. A release is
a promise of maturity and utility, not a development checkpoint; sprints
end with merged PRs, never with tags. Everything built from main reports
version 0.0.1; that number is reset scaffolding and does not move with
sprints — it becomes 0.1.0 only at the release itself.
- ASAM OpenDRIVE 1.8/1.9 read/write/validate, clothoid geometry, watertight simulation-ready meshes, structured diagnostics
- Road-plan authoring: create/extend roads with junction formation on crossings, the full lane tool suite (lane type & direction, width, add, form, carve), road styles as draggable assets, enclosed-area ground surfaces
- Junction control: stop lines, locked/custom junctions (membership, merge, span junctions), per-corner radius and materials, interior surface control, editable maneuver roads with turn types
- Markings: crosswalks, marking curve/point tools, arrow stencils, boundary marking assets, per-instance materials
- Props & assets: Library panel with drag-and-drop creation, four prop placement tools plus prop sets, per-instance sizing persisted through OpenDRIVE object dimensions
- Editor: orbit-pivot camera with framing and cardinal views, scrub-editable Attributes pane, 2D profile editor, in-app help with F1 context lookup, full undo/redo, dark professional theme
- glTF 2.0 + OpenUSD export, esmini round-trip CI gate, Python bindings
Apache-2.0 © 2026 Robomous. Third-party dependencies are listed with their licenses in THIRD_PARTY_LICENSES.md; bundled assets in ASSETS_LICENSES.md.

