Command-Line Options
The scenic command supports a variety of options. Run scenic -h for a full list with short descriptions; we elaborate on some of the most important options below.
Options may be given before and after the path to the Scenic file to run, so the syntax of the command is:
$ scenic [options] FILE [options]
General Scenario Control
- -m <model>, --model <model>
Specify the world model to use for the scenario, overriding any
model
statement in the scenario. The argument must be the fully qualified name of a Scenic module found on yourPYTHONPATH
(it does not necessarily need to be built into Scenic). This allows scenarios written using a generic model, like that provided by the Driving Domain, to be executed in a particular simulator (see the dynamic scenarios tutorial for examples).The equivalent of this option for the Python API is the
model
argument toscenic.scenarioFromFile
.
- -p <param> <value>, --param <param> <value>
Specify the value of a global parameter. This assignment overrides any
param
statements in the scenario. If the given value can be interpreted as anint
orfloat
, it is; otherwise it is kept as a string.The equivalent of this option for the Python API is the
params
argument toscenic.scenarioFromFile
(which, however, does not attempt to convert strings to numbers).
- --count <number>
Number of successful scenes to generate or simulations to run (i.e., not counting rejected scenes/simulations). The default is to run forever.
- -s <seed>, --seed <seed>
Specify the random seed used by Scenic, to make sampling deterministic.
This option sets the seed for the Python random number generator
random
and thenumpy
random number generatornumpy.random
, so external Python code called from within Scenic can also be made deterministic (althoughrandom
andnumpy.random
should not be used in place of Scenic’s own sampling constructs in Scenic code).
- --scenario <scenario>
If the given Scenic file defines multiple scenarios, select which one to run. The named modular scenario must not require any arguments.
The equivalent of this option for the Python API is the
scenario
argument toscenic.scenarioFromFile
.
- --2d
Compile the scenario in 2D Compatibility Mode.
The equivalent of this option for the Python API is the
mode2D
argument toscenic.scenarioFromFile
.
Dynamic Simulations
- -S, --simulate
Run dynamic simulations from scenes instead of plotting scene diagrams. This option will only work for scenarios which specify a simulator, which is done automatically by the world models for the simulator interfaces that support dynamic scenarios, e.g.
scenic.simulators.carla.model
andscenic.simulators.lgsvl.model
. If your scenario is written for an abstract domain, likescenic.domains.driving
, you will need to use the--model
option to specify the specific model for the simulator you want to use.
- --time <steps>
Maximum number of time steps to run each simulation (the default is infinity). Simulations may end earlier if termination criteria defined in the scenario are met (see
terminate when
andterminate
).
Debugging
- --version
Show which version of Scenic is being used.
- -v <verbosity>, --verbosity <verbosity>
Set the verbosity level, from 0 to 3 (default 1):
- 0
Nothing is printed except error messages and warnings (to
stderr
). Warnings can be suppressed using thePYTHONWARNINGS
environment variable.- 1
The main steps of compilation and scene generation are indicated, with timing statistics.
- 2
Additionally, details on which modules are being compiled and the reasons for any scene/simulation rejections are printed.
- 3
Additionally, the actions taken by each agent at each time step of a dynamic simulation are printed.
This option can be configured from the Python API using
scenic.setDebuggingOptions
.
- --show-params
Show values of global parameters for each generated scene.
- -b, --full-backtrace
Include Scenic’s internals in backtraces printed for uncaught exceptions. This information will probably only be useful if you are developing Scenic.
This option can be enabled from the Python API using
scenic.setDebuggingOptions
.
- --pdb
If an error occurs, enter the Python interactive debugger
pdb
. Implies the-b
option.This option can be enabled from the Python API using
scenic.setDebuggingOptions
.
- --pdb-on-reject
If a scene/simulation is rejected (so that another must be sampled), enter
pdb
. Implies the-b
option.This option can be enabled from the Python API using
scenic.setDebuggingOptions
.