Docs menu

// Command reference

simforge transfer

Generated from the CLI's own help (CLI 0.2.0-rc.5). Global flags and exit codes are on the reference index.

All commands

simforge transfer

Move a scenario or recording onto another map: recorded tracks warped through lane frames, behaviour re-bound by the matcher; simulated and gated, with a transfer report. Locally it needs the map's odr derivative, which simforge maps pull does not install yet: run it with --cloud

simforge transfer [OPTIONS] --map <DIR|NAME@VERSION> --out <DIR> <SOURCE>

Runs on: local runtime, or hosted with --cloud

Argument / flagNotesWhat
<source>requiredThe source: a recording (simforge.recording/v1 or log-scene/v1, optionally gzipped), a v2 scenario, or a package directory holding one
--map DIR|NAME@VERSIONrequiredThe target map: a map directory, or name[@version] under the maps cache (semantic profile)
--source-map DIR|NAME@VERSION|FILE.xodrThe source's map (default: the map the source names): a map directory, name[@version], or a bare OpenDRIVE file for a recording
--recording FILErepeatableA recording the scenario's replay routes pin (repeatable)
--from-rootTransfer from the source's root: follow its recording's derivedFrom (a transfer's warped recording, a scenario's rollout of the one recording it replays) through the --recording files to the recording it started from, and transfer that onto the map. The source's own scenario content (its edits) is not carried; the report records the chain in source.root
--sites SITESone of network, corridor, same; default networkWhere recorded motion looks for sites
--profile PROFILEone of pure, generalized, key-only; default pureWhich recorded actors transfer
--crossing CROSSINGone of any, faithful; default anyHow a crosswalk crossing must land
--max-try NSites tried (transferred, gated and simulated) before giving up [default: 6 per --max-sites]
--max-sites Ndefault 1Distinct accepted sites to transfer onto (recorded motion), ranked; more than one writes each to site-<rank>/ under --out
--site-cell-m MWith --max-sites: one site per cell of this size (metres) and heading quadrant [default: 200]. Smaller admits near-copies of the same drive
--min-path-separation-m MWith --max-sites: no two placements whose egos' target paths come within this distance (metres) [default: 10]
--out DIRrequiredThe output directory (created; must be empty if it exists)
--cache-root DIRMap cache root to search for NAME@VERSION. Default: SIMFORGE_MAPS_CACHE_ROOT, then $XDG_DATA_HOME/simforge/maps
--allow-no-collidersSimulate without map colliders when the map publishes none (recorded; the default refuses)
--budget-s SECONDSdefault 32400Last-resort wall-clock limit, seconds: a transfer still running then fails whole (transfer_budget_exceeded, nothing written). Set far above any healthy transfer (about 10x the slowest seen); what a transfer tries is bounded by --max-try and the import's rounds, never by time, so its result does not depend on the machine
--mode MODEone of motion, semantic; default motionHow the scenario moves to the target map
--experimentalAllow an experimental --mode
--target-control CLASS,...|as-sourcedefault as-sourceSemantic mode: the target approach classes accepted, comma separated (two_way_stop_minor, two_way_stop_major, all_way_stop, signal, yield_minor, yield_major, stop_line_only, uncontrolled, mixed), or as-source. A class other than the source's is recorded as a requested substitution
--t-junctionSemantic mode: also fit a four-arm source onto a T-junction whose stem is the ego's approach; the roles on the source's opposite arm are left out (recorded), and each such placement is tagged t_junction
--policy FILE
--policy-version VERSION
--revision REVISION_IDThe immutable revision of a hosted scenario SOURCE
--name NAMEThe new scenario's name. Default: <source title> · <target map>
--max-cost CENTSExplicit maximum cloud cost in cents
--waitone of true, falseWait for the transfer to finish