isaaclab.renderers#

Sub-package for renderer configurations and implementations.

This sub-package contains configuration classes and implementations for different renderer backends that can be used with Isaac Lab.

Classes

BaseRenderer

Abstract base class for renderer implementations.

Renderer

Factory for creating renderer instances.

RendererCfg

Configuration for a renderer.

Base Renderer#

class isaaclab.renderers.BaseRenderer[source]#

Bases: ABC

Abstract base class for renderer implementations.

Methods:

supported_output_types()

Per-output layout (channels + dtype) this renderer can produce.

prepare_stage(stage, num_envs)

Prepare the stage for rendering before create_render_data() is called.

create_render_data(spec)

Create render data for the given camera CameraRenderSpec.

set_outputs(render_data, output_data)

Store reference to output buffers for writing during render.

update_transforms()

Update scene transforms before rendering.

update_camera(render_data, positions, ...)

Update camera poses and intrinsics for the next render.

render(render_data)

Perform rendering and write to output buffers.

read_output(render_data, camera_data)

Read rendered outputs from the renderer into the camera data container.

cleanup(render_data)

Release renderer resources associated with the given render data.

abstractmethod supported_output_types() dict[RenderBufferKind, RenderBufferSpec][source]#

Per-output layout (channels + dtype) this renderer can produce.

Outputs absent from the mapping are not produced by this backend.

Returns:

Mapping from supported RenderBufferKind to its RenderBufferSpec.

abstractmethod prepare_stage(stage: Any, num_envs: int) None[source]#

Prepare the stage for rendering before create_render_data() is called.

Some renderers need to export or preprocess the USD stage before creating render data. This method is called after the renderer is instantiated and before create_render_data().

Parameters:
  • stage – USD stage to prepare, or None if not applicable.

  • num_envs – Number of environments.

abstractmethod create_render_data(spec: CameraRenderSpec) Any[source]#

Create render data for the given camera CameraRenderSpec.

Parameters:

spec – Immutable description of the tiled camera (paths, config, device).

Returns:

Renderer-specific data for subsequent render() / read_output() calls.

abstractmethod set_outputs(render_data: Any, output_data: dict[str, torch.Tensor]) None[source]#

Store reference to output buffers for writing during render.

Parameters:
  • render_data – The render data object from create_render_data().

  • output_data – Dictionary mapping output names (e.g. "rgb", "depth") to pre-allocated tensors where rendered data will be written.

abstractmethod update_transforms() None[source]#

Update scene transforms before rendering.

Called to sync physics/asset state into the renderer’s scene representation.

abstractmethod update_camera(render_data: Any, positions: torch.Tensor, orientations: torch.Tensor, intrinsics: torch.Tensor) None[source]#

Update camera poses and intrinsics for the next render.

Parameters:
  • render_data – The render data object from create_render_data().

  • positions – Camera positions in world frame, shape (N, 3).

  • orientations – Camera orientations as quaternions (x, y, z, w), shape (N, 4).

  • intrinsics – Camera intrinsic matrices, shape (N, 3, 3).

abstractmethod render(render_data: Any) None[source]#

Perform rendering and write to output buffers.

Parameters:

render_data – The render data object from create_render_data().

abstractmethod read_output(render_data: Any, camera_data: CameraData) None[source]#

Read rendered outputs from the renderer into the camera data container.

Parameters:
abstractmethod cleanup(render_data: Any) None[source]#

Release renderer resources associated with the given render data.

Parameters:

render_data – The render data object to clean up, or None.

Renderer Factory#

class isaaclab.renderers.Renderer[source]#

Bases: FactoryBase, BaseRenderer

Factory for creating renderer instances.

Methods:

__new__(cls, cfg, *args, **kwargs)

Create a new instance of a renderer based on the backend.

static __new__(cls, cfg: RendererCfg, *args, **kwargs) BaseRenderer[source]#

Create a new instance of a renderer based on the backend.

Renderer Configuration#

class isaaclab.renderers.RendererCfg[source]#

Bases: object

Configuration for a renderer.