simulo.RecordConfig
User-facing recording configuration for MCAP policy-rollout capture.
All include_* fields are Optional[bool] with None default so
profile precedence can distinguish “user passed False” from “default
None”. Do not edit defaults to plain bool — the silent-default
mitigation depends on the tri-state.
Real usage, from the shipped cartpole_eval app’s rollout job:
record = simulo.RecordConfig( output_path=mcap_path, policy_checkpoint=policy_path, robot_model="cartpole", include_video=True, video_fps=30, video_bitrate="4M",)player.play(num_steps=num_steps, record=record)@dataclass(frozen=True)class RecordConfig| Field | Type | Default | Description |
|---|---|---|---|
output_path |
Union[str, 'os.PathLike[str]', Path] |
required | |
run_id |
Optional[str] |
None |
|
policy_id |
Optional[str] |
None |
|
policy_checkpoint |
Optional[str] |
None |
|
environment_id |
Optional[str] |
None |
|
scenario_id |
Optional[str] |
None |
|
robot_model |
Optional[str] |
None |
|
schema_version |
str |
'simulo.policy_rollout.v1' |
|
env_indices |
Sequence[int] |
(lambda: (0,))() |
|
record_all_envs |
bool |
False |
|
profile |
ProfileName |
'standard' |
|
record_every_n_steps |
int |
1 |
|
include_episode_metadata |
Optional[bool] |
None |
|
include_task_spec |
Optional[bool] |
None |
|
include_policy_observations |
Optional[bool] |
None |
|
include_policy_actions |
Optional[bool] |
None |
|
include_applied_actions |
Optional[bool] |
None |
|
include_rewards |
Optional[bool] |
None |
|
include_reward_breakdown |
Optional[bool] |
None |
|
include_terminations |
Optional[bool] |
None |
|
include_events |
Optional[bool] |
None |
|
include_robot_state |
Optional[bool] |
None |
|
include_contacts |
Optional[bool] |
None |
|
include_collisions |
Optional[bool] |
None |
|
include_tf |
Optional[bool] |
None |
|
include_sensors |
Optional[bool] |
None |
|
include_video |
Optional[bool] |
None |
|
include_depth |
Optional[bool] |
None |
|
include_lidar |
Optional[bool] |
None |
|
include_episode_summary |
Optional[bool] |
None |
|
include_aggregate_metrics |
Optional[bool] |
None |
|
include_per_link_tf |
Optional[bool] |
None |
|
include_policy_command |
Optional[bool] |
None |
|
include_policy_diagnostics |
Optional[bool] |
None |
|
include_policy_latency |
Optional[bool] |
None |
|
include_domain_randomization |
Optional[bool] |
None |
|
include_annotations |
Optional[bool] |
None |
|
include_code_version |
Optional[bool] |
None |
|
video_encoder |
Literal['auto', 'nvenc', 'software', 'none'] |
'auto' |
|
video_fallback |
Literal['software', 'error'] |
'software' |
|
video_codec |
Literal['h264', 'hevc', 'av1'] |
'h264' |
|
video_bitrate |
Optional[str] |
'8M' |
|
video_fps |
Optional[int] |
30 |
|
video_gop |
Optional[int] |
30 |
|
video_storage |
Literal['embedded', 'sidecar'] |
'embedded' |
|
include_video_foxglove_channel |
bool |
True |
|
mcap_compression |
Literal['zstd', 'lz4', 'none'] |
'zstd' |
|
max_array_elements |
Optional[int] |
None |
|
strict |
bool |
False |
|
seed |
Optional[int] |
None |
|
per_channel_rates |
Optional[Mapping[str, int]] |
None |
|
code_version |
Optional[Mapping[str, Any]] |
None |