Skip to content

mjlab Tasks

mjlab is a MuJoCo-based RL framework that adopts an Isaac-Lab-like API while using MuJoCo-Warp as its simulation backend. In LAV2, it serves as a manager-based RL environment backend parallel to Isaac Lab and Genesis Forge.

Like the other two frameworks, mjlab is not part of LAV2's default dependency set, so it must be installed separately before using lav2.tasks.mjlab.

How LAV2 Connects To mjlab

LAV2's mjlab integration lives under lav2.tasks.mjlab. The main task entrypoint is the base task package lav2.tasks.mjlab.LAV2_base.

Its environment-facing configuration is lav2.tasks.mjlab.LAV2_base.LAV2_env_cfg, its RL-facing configuration is lav2.tasks.mjlab.LAV2_base.LAV2_rl_cfg, and its task terms live under lav2.tasks.mjlab.LAV2_base.mdp.

In terms of discovery, mjlab is closer to Isaac Lab than to Genesis Forge: the task must be made visible to the framework's task registry. In the current repository workflow, that means exposing the task package through a symbolic link, for example mapping lav2/tasks/mjlab into src/mjlab/tasks.

LAV2 Base Task

The important part to understand is that LAV2_base is also expressed as a manager-based RL environment configuration. Scene, actions, observations, events, commands, rewards, and terminations are assembled into a single task configuration rather than being hard-coded inside one monolithic environment class.

That keeps the task layout conceptually aligned with the Isaac Lab and Genesis Forge pages even though the concrete framework API differs.

What To Edit

When tuning the mjlab task:

API Cross-References