unilab.base.base

Classes

ABEnv

EnvCfg

Config for the environment

EnvPlayCapabilities

Env-facing play/render capabilities consumed by training entrypoints.

class unilab.base.base.EnvPlayCapabilities[source]

Bases: object

Env-facing play/render capabilities consumed by training entrypoints.

Parameters:
  • supports_native_interactive_renderer (bool)

  • supports_physics_state_playback (bool)

  • supports_native_video_capture (bool)

  • supports_debug_overlay (bool)

  • supports_interactive_debug_overlay (bool)

supports_native_interactive_renderer: bool = False
supports_physics_state_playback: bool = False
supports_native_video_capture: bool = False
supports_debug_overlay: bool = False
supports_interactive_debug_overlay: bool = False
__init__(supports_native_interactive_renderer=False, supports_physics_state_playback=False, supports_native_video_capture=False, supports_debug_overlay=False, supports_interactive_debug_overlay=False)
Parameters:
  • supports_native_interactive_renderer (bool)

  • supports_physics_state_playback (bool)

  • supports_native_video_capture (bool)

  • supports_debug_overlay (bool)

  • supports_interactive_debug_overlay (bool)

class unilab.base.base.EnvCfg[source]

Bases: object

Config for the environment

Parameters:
scene: SceneCfg | None = None
sim_dt: float = 0.01
max_episode_seconds: Optional[float] = None
ctrl_dt: float = 0.01
render_spacing: float = 1.0
render_offset_mode: str = 'grid'
drake_backend_mode: str = 'batch'
drake_nthread: int = 0
superdex_num_workers: int = 0
superdex_execution_mode: str = 'batch'
superdex_assets_root: Optional[str] = None
superdex_effort_limits: Optional[list[float]] = None
superdex_allow_contact_approximation: bool = False
motrix_max_iterations: Optional[int] = None
post_step_forward_sensor: bool = False
adaptive_chunk_size: bool = True
chunk_size: Optional[int] = None
cpu_ids: Optional[list[int]] = None
mjwarp_nconmax: Optional[int] = None
mjwarp_njmax: Optional[int] = None
newton_device: Optional[str] = None
newton_nconmax: Optional[int] = None
newton_njmax: Optional[int] = None
newton_capacity_check_steps: int = 1
isaacgym_device_id: Optional[int] = None
isaacgym_worker_timeout_s: Optional[float] = None
genesis_device_id: Optional[int] = None
genesis_integrator: Optional[str] = None
genesis_constraint_solver: Optional[str] = None
genesis_friction_cone: Optional[str] = None
genesis_solver_iterations: Optional[int] = None
isaacsim_device_id: Optional[int] = None
isaacsim_worker_timeout_s: Optional[float] = None
isaacsim_render_mode: Optional[str] = None
isaacsim_render_width: int = 1280
isaacsim_render_height: int = 720
property max_episode_steps: int | None

return the max episode steps

property sim_substeps: int

return the number of simulation steps per control step

validate()[source]

validate the config

__init__(scene=None, sim_dt=0.01, max_episode_seconds=None, ctrl_dt=0.01, render_spacing=1.0, render_offset_mode='grid', drake_backend_mode='batch', drake_nthread=0, superdex_num_workers=0, superdex_execution_mode='batch', superdex_assets_root=None, superdex_effort_limits=None, superdex_allow_contact_approximation=False, motrix_max_iterations=None, post_step_forward_sensor=False, adaptive_chunk_size=True, chunk_size=None, cpu_ids=None, mjwarp_nconmax=None, mjwarp_njmax=None, newton_device=None, newton_nconmax=None, newton_njmax=None, newton_capacity_check_steps=1, isaacgym_device_id=None, isaacgym_worker_timeout_s=None, genesis_device_id=None, genesis_integrator=None, genesis_constraint_solver=None, genesis_friction_cone=None, genesis_solver_iterations=None, isaacsim_device_id=None, isaacsim_worker_timeout_s=None, isaacsim_render_mode=None, isaacsim_render_width=1280, isaacsim_render_height=720)
Parameters:
class unilab.base.base.ABEnv[source]

Bases: ABC

property play_capabilities: EnvPlayCapabilities

Return env-facing play/render capabilities.

resolve_play_render_plan(*, play_render_mode, play_steps, output_video)[source]

Resolve high-level playback mode through the backend contract.

Parameters:
Return type:

BackendPlayRenderPlan

run_playback(*, initialize, step, num_steps, output_video=None, render_spacing=None, render_offset_mode=None, headless=None, record_video=None, frame_state_getter=None, camera_kwargs=None, debug_overlay_getter=None, on_frame=None)[source]

Execute playback through the backend contract.

debug_overlay_getter returns per-env sequences of unisim.backend.base.DebugPrimitive with env-local poses (None disables overlays for the frame). on_frame is an optional (frame_index, frame) -> frame | None callback applied to each recorded frame before it is written to the video.

Parameters:
Return type:

str | None

run_playback_mode(*, play_render_mode, play_steps, output_video, initialize, step, render_spacing=None, render_offset_mode=None, frame_state_getter=None, camera_kwargs=None, debug_overlay_getter=None, on_frame=None, on_plan=None)[source]

Resolve configured playback mode and execute it through the backend contract.

Overlay gating follows the resolved plan mode: record playback requires play_capabilities.supports_debug_overlay (backends fail closed otherwise); interactive playback requires supports_interactive_debug_overlay — when the backend lacks it the getter is dropped with a warning so interactive playback still runs without overlays.

Parameters:
Return type:

str | None

abstract property num_envs: int

return the size of the env if it is vectorized

abstract property cfg: EnvCfg

The configuration of the environment

abstract property observation_space: Space

Observation space

abstract property action_space: Space

Action space

abstract property obs_groups_spec: dict[str, int]

Map from observation group name to its dimension.

abstract property state: Any

Current environment state (None before first reset)

abstract init_state()[source]

Initialize environment and return initial state

Return type:

Any

abstract step(actions)[source]

Step the environment with given actions, return new state

Parameters:

actions (ndarray)

Return type:

Any

abstract close()[source]

Clean up environment resources

Return type:

None

init_play_renderer(render_spacing=None, render_offset_mode=None, *, headless=False, capture=False, width=1280, height=720, camera_kwargs=None)[source]

Initialize env-facing playback rendering when supported.

Parameters:
Return type:

None

render(mode='rgb_array')[source]

Render the current state; mode="rgb_array" returns an RGB frame.

Convenience wrapper over init_play_renderer() and capture_play_video_frame(), gated on play_capabilities.supports_native_video_capture.

Parameters:

mode (str)

Return type:

ndarray

render_play_frame()[source]

Render one frame through the env-facing interactive playback contract.

Return type:

None

capture_play_video_frame()[source]

Capture one RGB frame through the env-facing video contract.

Return type:

ndarray

get_physics_state_snapshot()[source]

Return a physics snapshot for offline playback/video export.

Return type:

ndarray

get_playback_model(env_index=None)[source]

Return a model object suitable for backend-specific playback tooling.

Parameters:

env_index (int | None) – Optional vectorized environment index whose playback model should be returned when backend model variants differ across envs.

Return type:

Any

Returns:

A backend-specific playback model object.