Environment#
Isaac Lab Arena aims to simplify the creation of task/environment libraries. The key to achieving that goal is the use of composition. Arena environments are composed of three independent sub-pieces:
Scene: The scene is a collection of objects, backgrounds, lights, etc.
Embodiment: The robot embodiment, its physical description, observations, actions, sensors etc.
Task: A definition of what is to be accomplished in the environment.
The architecture of Isaac Lab Arena. Evaluation environments are composed of three independent sub-pieces: Scene, Embodiment, and Task. These sub-pieces are passed to the Environment Compiler to produce an Isaac Lab manager-based environment.#
In code, this looks like:
scene = Scene(assets=[background, pick_up_object])
environment = IsaacLabArenaEnvironment(
name="manipulation_task",
embodiment=embodiment,
scene=scene,
task=task,
teleop_device=teleop_device, # optional
default_physics_backend=PhysicsBackend.PHYSX, # default; use NEWTON when required
)
env = ArenaEnvBuilder(environment, ArenaEnvBuilderCfg()).make_registered()
ArenaEnvBuilder compiles the scene, embodiment, and task configurations into
a single Isaac Lab ManagerBasedRLEnv. The make_registered() call registers
the environment with the gym registry and returns it ready to run.
Because these pieces are independent, they can be reused and combined freely. The same pick-and-place task works with any robot on any scene: swap the Franka for a G1, or the kitchen for a warehouse, with no changes to the task. This moves us from a library of monolithic environment descriptions to a library of environment parts.
The pages below cover how you define an environment, how it is built, and how physics is configured:
Environment Definition — the two ways to define an environment, Python or YAML.
Environment Builder — how
ArenaEnvBuildercompiles a specification into an Isaac LabManagerBasedRLEnv.Physics configuration — where physics settings belong and when they are applied.
Physics backend selection — PhysX vs Newton,
--presets, anddefault_physics_backend.Graph YAML env_cfg_override — graph YAML
env_cfg_overrideand Hydra_target_rules.
The individual components are covered in Scene, Embodiment, and Task.