> ## Documentation Index
> Fetch the complete documentation index at: https://docs.simforge.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# simforge render

> Reference for simforge render: usage, arguments and flags, generated from the CLI.

Generated from the CLI's own help (CLI 0.2.0-rc.5). Global flags and exit codes are on the [command reference](/cli).

## render

Render the same scenario file locally or with --cloud

```sh theme={null}
simforge render [OPTIONS] <TARGET> [EXTRA]...
```

| Argument / flag | Notes | What |
| - | - | - |
| `<target>` | required | Scenario JSON file or materialized workspace; identical input for local and cloud |
| `<extra>` | repeatable | Runtime-specific options; forwarded without shell interpolation |
| `--out OUT` | | Output folder; local requires it, cloud waits and downloads when it is given |
| `--mode MODE` | one of 2d, schematic, 3d; default 2d | `2d` (top-down map video on the CPU), `schematic` (the flat OpenDRIVE view, GPU) or `3d` (photoreal camera sensors, GPU) |
| `--rig RIG` | | Sensor rig JSON (`simforge rig init`). Default: the `basic-dash-camera` rig on the ego |
| `--preset PRESET` | one of training, showcase, schematic | Render preset |
| `--camera-detector FILE` | | Local native render only: authored instantaneous HDR detector response JSON |
| `--camera-temporal FILE` | | Local native render only: bounded exact-time HDR exposure request JSON |
| `--camera-delivery FILE` | | Local bounded offline measurement delivery or controlled delivery-only resume |
| `--fps FPS` | | Frame rate every camera records (2d: the video's), over the render preset's own rate; 3d takes 5 to 60 |
| `--wait` | | Wait for a submitted cloud job to finish |
| `--download` | | Download a succeeded cloud job into --out; implies --wait |
| `--max-cost CENTS` | | Explicit maximum cloud cost in cents; required for billable cloud jobs |
| `--revision REVISION` | | Immutable revision for an existing hosted scenario target |
| `--stage` | | With --cloud: save a scenario file to the workspace as an immutable revision (free) and price the run on it; starts nothing. --dry-run saves nothing |
| `--replay-of RUN_ID` | | Cloud 3d render: the drive a succeeded closed\_loop run scored (its episode timeline), rendered on the target's revision that run drove |
| `--camera CAMERA` | one of follow-ego, overview; default follow-ego | 2d engine: the camera |
| `--north-up` | | 2d engine, follow-ego: keep north up (looking ahead of the ego) instead of turning the view with it |
| `--debug-signals` | | 2d engine: also draw signal heads the timeline has no phases for (hollow grey rings) |
| `--no-hud` | | 2d engine: no HUD (header, legend, clock, speed); the map fills the whole frame |
| `--actor-labels LABELS.JSON` | | 2d engine: tags to draw next to actors, a JSON object `{actorId: text}` (e.g. a labelling page's candidate numbers). An id that is not an actor of the timeline fails the render |
| `--legibility LEGIBILITY` | one of standard, high; default standard | 2d engine: icon legibility; `high` is for labelling clips (larger props, light people, faint untagged parked vehicles, no edge chevrons or collision marks, non-overlapping tag badges) |
| `--px-per-m PX` | | 2d engine: a fixed map scale in pixels per metre. Default: 14 to 9 by the ego's speed (follow-ego); the scenario actors fitted, 5 to 12 (overview) |
| `--size WxH` | default 1280x720 | 2d engine: the frame size |
| `--ego ACTOR_ID` | | 2d engine: the ego actor. Default: the workspace's metric subject |
| `--timeline TIMELINE.JSON` | | Render a timeline instead of simulating the workspace, on the same map |
| `--clip START:END` | | 2d engine: the clip, `START:END` seconds of the timeline. Default: the whole timeline |
| `--buildings` | | 2d engine: draw building footprints when the map has them |
| `--title TEXT` | | 2d engine: the header's title. Default: the map's name (its id in words) and the scenario's title from the package (else the workspace directory); render.json keeps the ids |
| `--lidar-model LIDAR_MODEL` | one of legacy, physical; default legacy | Native LiDAR model. `legacy` is the byte-identical default |
| `--lidar-profile NAME\|FILE` | | Physical profile name (built-in) or a JSON profile file |
| `--lidar-seed LIDAR_SEED` | default 0 | Physical-model deterministic noise seed |
| `--lidar-motion-compensated` | | Express physical returns in the sensor pose at sweep start |
| `--passes PASSES` | one of rgb, hdr, id, depth, semantic; default rgb,id,depth,semantic; repeatable | Camera passes, comma-separated |
| `--camera-capture-stage CAMERA_CAPTURE_STAGE` | one of scene-pre-postprocess/v1 | Capture renderer-relative HDR before postprocess, with capture-owned provenance |
| `--set KEY=VALUE` | repeatable | Render-config overrides on the preset (`key=value`, e.g. `aa.mode=fxaa`); repeatable |
| `--textures TEXTURES` | one of uastc-full, bc7-512 | The staged texture tier (photoreal presets). Default: uastc-full |
| `--video VIDEO` | one of auto, required, off; default auto | Encode videos with ffmpeg |
| `--vram-budget BYTES` | | A texture budget in bytes; without it the device capacity is unmeasured and admission is skipped (reported) |
| `--allow-software-adapter` | | Render on a software (CPU) Vulkan adapter such as lavapipe, explicitly. Slow; pixels differ from a GPU's |
| `--progress` | | Write `render.progress` events to stderr (the step, and frames done of the total while drawing) |
| `--map-dir DIR` | | Use this native map directory (`.corpus/<map>`) instead of the installed map found by content |
| `--cache-root DIR` | | Map cache root to search. Default: SIMFORGE\_MAPS\_CACHE\_ROOT, then \$XDG\_DATA\_HOME/simforge/maps |
| `--assets-root DIR` | | Actor-asset root. Default: SIMFORGE\_ACTOR\_ASSETS\_ROOT, then \$XDG\_DATA\_HOME/simforge/actor-assets |
| `--actor-closure SHA256` | | The actor closure to bind, instead of the workspace's `catalog.actorClosureDigest` |
| `--actor-layer SHA256` | | The workspace's private model layer (an actor closure in the same store) for `workspace.*` models, instead of the workspace's `simforge.actorLayer` extension |
| `--allow-map-drift` | | Render on the installed map release even where its members differ from the workspace's map closure (recorded in the result; the default refuses) |


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.