mjlab.viewer#
Viewer module for environment visualization.
Classes
Protocols
ViewerConfig#
- class mjlab.viewer.ViewerConfig[source]#
-
- class OriginType[source]#
The frame in which the camera position and target are defined.
- AUTO = 1#
Track the first non-fixed body, or fall back to a free camera.
- WORLD = 2#
Free camera at the configured lookat point.
- ASSET_ROOT = 3#
Track the root body of the asset defined by entity_name.
- ASSET_BODY = 4#
Track the body defined by body_name in the asset defined by entity_name.
- origin_type: OriginType = 1#
BaseViewer#
- class mjlab.viewer.BaseViewer[source]#
Bases:
ABCAbstract base class for environment viewers.
- __init__(env: EnvProtocol, policy: PolicyProtocol, frame_rate: float = 30.0, verbosity: int = VerbosityLevel.SILENT)[source]#
NativeMujocoViewer#
- class mjlab.viewer.NativeMujocoViewer[source]#
Bases:
BaseViewer- __init__(env: EnvProtocol, policy: PolicyProtocol, frame_rate: float = 60.0, key_callback: Callable[[int], None] | None = None, plot_cfg: PlotCfg | None = None, enable_perturbations: bool = True, verbosity: VerbosityLevel = VerbosityLevel.SILENT)[source]#
- sync_env_to_viewer() None[source]#
Copy env state to viewer; update reward figures; render other envs.
- sync_viewer_to_env() None[source]#
Sync mouse perturbation to sim via
qfrc_applied.Mouse perturbation forces are converted from Cartesian body space (
xfrc_applied) to generalized joint space (qfrc_applied) so that they coexist with programmatic forces onxfrc_applied. See the module docstring for details on the channel separation.
ViserPlayViewer#
- class mjlab.viewer.ViserPlayViewer[source]#
Bases:
BaseViewerInteractive Viser-based viewer with playback controls.
- __init__(env: EnvProtocol, policy: PolicyProtocol, frame_rate: float = 60.0, verbosity: VerbosityLevel = VerbosityLevel.SILENT, viser_server: viser.ViserServer | None = None, checkpoint_manager: CheckpointManager | None = None) None[source]#