The documentation home: what lives where, and the fastest reading path for what you want to do.
RoadMaker is an open-source (Apache-2.0) road-network authoring toolkit for
autonomous-driving simulation — a C++20 kernel with Python bindings and a
Qt 6 Widgets editor, centered on ASAM OpenDRIVE correctness. This docs/
tree is the single source of truth for the project's standards,
architecture, domain conventions, and roadmap.
- Building — Qt provisioning, CMake presets, all three platforms, troubleshooting.
- Running — the editor, sample files, the Python package.
- Repository tour — what each folder is.
The user guide is task-by-task guidance for building an OpenDRIVE scene in the editor: Create Road, Edit Nodes, Lane Profile, Elevation, Junction, Objects & signals, and Save & export.
- Workflow — branches, conventional commits, what rides along every change.
- Pull requests — the PR checklist and review process.
- Testing — GoogleTest/pytest doctrine, headless Qt tests, sanitizers, fuzzing.
- CI — what each gate checks.
- Writing user documentation — which tier a page belongs to, and what syntax each one allows.
- Publishing the documentation site — how a merged docs change reaches a live page, and the maintainer runbook for the hosting app.
- The standards your change must meet: C++ style · Cross-platform · Dependencies & licensing · Assets · Product parity & IP · UI design
- Overview — the three layers and the rules between them.
- Kernel — data model, geometry, I/O, meshing, exporters.
- Editor — Document/SelectionModel, undo, renderer.
- Python bindings — the nanobind layer.
- Persistence layers — what lives in the
.xodr, what lives beside it, and why. - Domain background: OpenDRIVE conventions · OpenSCENARIO scenarios · Geometry & meshing · Realism defaults · GIS import · OSM mapping · ASAM references
- Roadmap — "Road to Parity" — the eight capability pillars, their sequencing, the sprint conventions, and the single-release gate. The README section is a summary of this page.
- Golden workflows — the hand-executed acceptance scripts (GW-1 … GW-5) that every pillar feeds; the roadmap's only acceptance mechanism.
- Archive — the retired milestone/version roadmap, golden scenes, seeds, and release notes, kept as a historical record.
- design/ — full design docs per initiative (M2 editing framework, hardening, UI revamp, materials & structures). These are written when an initiative's planning task runs.
- decisions/ — Architecture Decision Records (ADRs): one page per significant, hard-to-reverse decision. Start new ones from the template.
Every page in this tree follows these rules — apply them when adding or editing docs:
- One H1 per file; sentence-case headings.
- Every page opens with a 1–2 line statement of what the page is for.
- Relative links only for in-repo targets; a rule lives on exactly one page and everything else links to it.
- Runnable commands go in fenced code blocks and are tested on at least the platform you develop on.
- No page over ~300 lines — split instead.
- Diagrams are Mermaid, inline in the page.
The tree is plain Markdown. docs/user-guide/ is additionally the authored
source for two generated outputs — the in-app help book and the documentation
site (ADR-0009) — which
constrains what may be written there; see
Writing user documentation. The rest of docs/
has no pipeline and no syntax budget.