unisim.backend.isaacsim.backend

Host-side IsaacSim/IsaacLab subprocess backend.

IsaacSim is deliberately kept out of the UniLab interpreter: the supported IsaacSim 5.1 wheels require Python 3.11, while the main project supports a different Python range. The NumPy-facing contract and lifecycle come from the backend-neutral subprocess_ipc owner; this module supplies IsaacSim runtime discovery, the worker entrypoint, clone-origin validation, and the eval-owned Kit/viewer/camera capability boundary.

Classes

IsaacSimBackend

Thin host client for the IsaacLab/PhysX worker.

IsaacSimModelInfo

Opaque metadata returned by the IsaacSim worker handshake.

Exceptions

IsaacSimRenderError

Raised when the requested IsaacSim render mode cannot be initialized.

IsaacSimWorkerError

Raised when the external IsaacSim/IsaacLab worker fails.

class unisim.backend.isaacsim.backend.IsaacSimBackend[source]

Bases: MjcfSubprocessBackend

Thin host client for the IsaacLab/PhysX worker.

The shared client owns pipe framing, shared-memory slot allocation, timeout/crash diagnostics, XML cold-path metadata, and all NumPy state views. Physics remains the default (render_mode=None). Eval/play profiles pass a concrete render intent through the cold INIT payload so Kit selects the correct experience before simulation materialization. The worker owns all camera/viewport operations; this class validates the NumPy-facing frame contract.

Parameters:
__init__(scene, num_envs, sim_dt, *, render_mode=None, render_width=1280, render_height=720, **kwargs)[source]
Parameters:
get_play_capabilities()[source]

Return the native Kit viewer and RGB camera capabilities.

Return type:

BackendPlayCapabilities

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

Resolve high-level playback mode into backend-owned render parameters.

Parameters:
Return type:

BackendPlayRenderPlan

init_renderer(spacing=1.0, *, offset_mode='grid', headless=False, capture=False, width=1280, height=720, camera_kwargs=None)[source]

Initialize the worker-side viewer and/or capture camera.

spacing/offset_mode are accepted for contract parity and ignored: envs are already laid out on the worker sim’s grid.

Parameters:
Return type:

None

capture_video_frame()[source]

Capture one RGB frame from the worker’s camera sensor.

Return type:

ndarray

class unisim.backend.isaacsim.backend.IsaacSimModelInfo[source]

Bases: SubprocessModelInfo

Opaque metadata returned by the IsaacSim worker handshake.

Parameters:
__init__(num_dof, num_bodies, dof_names, body_names, gravity, use_gpu_pipeline)
Parameters:
exception unisim.backend.isaacsim.backend.IsaacSimRenderError[source]

Bases: RuntimeError

Raised when the requested IsaacSim render mode cannot be initialized.

exception unisim.backend.isaacsim.backend.IsaacSimWorkerError[source]

Bases: IsaacGymWorkerError

Raised when the external IsaacSim/IsaacLab worker fails.

IsaacGymWorkerError is retained as a compatibility ancestor because early subprocess adapters exposed that exception as the public worker failure type. The concrete class remains distinct, so callers can still distinguish IsaacSim failures with an exact type check while existing except IsaacGymWorkerError handlers continue to work.

Parameters: