Metromake / Docs
Documentation

Metromake docs: getting started

Build your first road network map in five minutes, then learn the keyboard shortcuts, the cross-section editor, junction controls and command-line export.

Quick start: your first map in 5 minutes

  1. Create a map. Metromake opens on its start menu. Press Cmd+N (or + New on the Map card), pick a terrain template, a size and a folder.
  2. Draw roads. Press Tab for edit mode and 2 for the Roads tool. Click to place points; Shift+click adds a curve point. Starting or ending on a road connects to it; ending on a road splits it into a junction.
  3. Shape the cross-section. In the Draw panel, set lane types and widths before you draw, or select a road and change it in the Inspector.
  4. Set junction controls. With the Select tool (1), click a junction and choose its control in the Inspector.
  5. Check it in 2D. Press B for the blueprint view.
  6. Export. File → Export → OpenDRIVE (.xodr), OpenSCENARIO, glTF, OBJ or heightmap.

Want a real place instead? Convert an OpenStreetMap area to OpenDRIVE.

Keyboard shortcuts

Editor

KeyAction
TabSwitch between view mode and edit mode
1–7Pick a tool (1 Select, 2 Roads, 4 Terrain, 5 Water, 7 Delete)
B2D blueprint view
PProject view
FFrame the selection
WASD / arrowsMove the camera; in 2D, pan
Q / ERotate the camera
Space (hold)View-mode mouse controls while editing
↑ / ↓ in 2DMove the height cut in 5 m steps
PgUp / PgDnElevation for new road points
RTurn a sign to face the other way
Cmd+Z / Cmd+Shift+ZUndo / redo
Cmd+S / Cmd+OSave / open
Cmd+WBack to the start menu (the map stays open)
F1Controls

Selecting and moving

Alt+dragChange a point's height
Shift+drag a roadMove the whole road
Double-click a roadInsert a curve point
Cmd+clickAdd or remove points from the selection
Shift+clickSelect every point along the roads to this one
Drop a node onto a nodeMerge them into a junction

Start menu

Cmd+N / Cmd+Shift+NNew map / new project
Cmd+O / Cmd+Shift+OOpen a map / a project
Cmd+FSearch
Cmd+1/2/3Switch pages

Cross-section editor

The profile editor is in the Draw panel for new roads and in the Inspector for the selected road. For each lane you set:

  • the type: driving, parking, bus, bike, shoulder, hatched, median, sidewalk, verge or barrier
  • width, direction and height
  • the line on each side: 11 marking styles

Drag lane boundaries in the cross-section preview to resize lanes. Raised lanes get curbs automatically, and road-level lanes flow into the junction surface. Custom profiles can be saved to the map's library.

Generated automatically: rounded curb corners (radius per node), crosswalks, stop lines and turn arrows on junction approaches, tapers where profiles change, smooth continuation through nodes that join two roads, street lights, traffic lights and bridge piers.

Junction controls

A junction is a point where three or more roads meet. Its control type decides what is built:

ControlBuilt
PriorityStop lines and turn arrows
Traffic signalsPriority plus a signal on every approach
All-way stopStop lines and STOP text on every approach
Give wayDashed give-way lines
UncontrolledNo stop lines or arrows
RoundaboutA circular carriageway with flared entries, a curbed island, a truck apron, give-way lines and a lane divider when the ring is wide enough for two lanes

Roundabout ring and island radius are adjustable; the ring grows automatically when its roads need it. An approach too short to reach outside the ring is flagged in the Inspector. On export, see how junctions are written to OpenDRIVE.

Command-line export

Export without opening a window, for scripts and CI. On macOS the executable is inside the app bundle: MetroMake.app/Contents/MacOS/metromake.

metromake --export map.json out.xodr                  # OpenDRIVE
metromake --export map.json scenario.xosc [--cut-in | --junction]   # OpenSCENARIO + .xodr
metromake --export map.json out.glb                   # or .gltf / .obj
metromake --export map.json heightmap.png             # + .r16 + .json
#   options: --no-terrain --no-markings --no-furniture --no-props

metromake --import-osm area.osm area.json
metromake --import-xodr network.xodr network.json
metromake --import-heightmap map.json dem.png out.json [minHeight maxHeight]

Maps are plain JSON, so you can generate or edit them before exporting.

Next step

Questions the docs don't answer?

Send us a message.