Skip to content

v3.0.0-beta

Choose a tag to compare

@kellyguo11 kellyguo11 released this 17 Mar 06:38
· 113 commits to develop since this release
a4a7602

Isaac Lab 3.0 Beta 🚀

Isaac Lab 3.0 Beta is the next major release of Isaac Lab, built on Isaac Sim 6.0 and introducing a ground-up architectural overhaul. This release brings multi-backend physics, a pluggable renderer system, Warp-native data pipelines, and a kit-less installation mode — enabling faster, more flexible robot learning research.

⚠️ This is a beta release. The develop branch is under active development and may experience breaking changes, error messages, or performance regressions in some use cases.


✨ Highlights

Multi-Backend Physics Architecture

Isaac Lab 3.0 introduces a factory-based multi-backend architecture that separates simulation backend–specific code from the core API. Asset and sensor classes (e.g., Articulation, RigidObject, ContactSensor) are now backed by abstract base classes, with backend-specific implementations in dedicated extension packages:

  • isaaclab_physx — Full PhysX backend (default), including deformable objects, surface grippers, contact sensors, IMU, and frame transformers.
  • isaaclab_newton — New Newton physics backend powered by MuJoCo-Warp, supporting MJWarp, XPBD, and Featherstone solvers with CUDA-graph acceleration.

Your existing imports from isaaclab.assets and isaaclab.sensors continue to work — the factory automatically dispatches to the active backend at runtime.

Newton Physics Backend

The new isaaclab_newton extension enables running Isaac Lab environments without Isaac Sim (kit-less mode). Newton support includes:

  • Articulations, rigid objects, and rigid object collections
  • Contact sensors
  • MuJoCo-Warp solver with configurable integrators (implicitfast, euler) and contact models (pyramidal, elliptic)
  • CUDA graph support for high-throughput stepping
  • Newton-compatible presets for 20+ environments (locomotion, manipulation, classic control)

Pluggable Renderer System

A new BaseRenderer abstraction supports multiple rendering backends via a factory pattern:

Backend Requires Isaac Sim? Best For
Isaac RTX Yes Full sensor fidelity, photorealistic rendering
OVRTX No (+ isaaclab_ov[ovrtx]) Kit-less RTX pipeline
Newton Warp No (kit-less) Fast training without RTX

Pluggable Visualizer System

Isaac Lab 3.0 introduces a new pluggable visualizer framework (isaaclab_visualizers) with four interchangeable backends, all decoupled from the physics engine and renderer:

Visualizer Best For Key Features
Omniverse (Kit) High-fidelity, Isaac Sim integration USD stage, visual markers, live training plots
Newton Fast iteration, low overhead OpenGL rendering, physics debug markers (joints, contacts, COM), interactive camera controls
Rerun Remote viewing & replay Web viewer, timeline scrubbing, .rrd recording/export
Viser Web-based sharing & recording Browser-based via Newton Warp renderer, public share URLs, .viser recording

Launch from the CLI with the new --viz flag (replaces the deprecated --headless flag):

Multiple visualizers at once:
python train.py --task Isaac-Cartpole-v0 --viz kit,newton,rerun

Single visualizer:
python train.py --task Isaac-Cartpole-v0 --viz newton

Web-based Viser visualizer:
python train.py --task Isaac-Cartpole-v0 --viz viser

Headless (no visualizers):
python train.py --task Isaac-Cartpole-v0

Warp-Native Data Pipeline

All .data.* properties on asset and sensor classes now return wp.array (NVIDIA Warp) instead of torch.Tensor. Internal state buffers use structured warp types (wp.vec3f, wp.quatf, wp.transformf, wp.spatial_vectorf), and fused GPU kernels replace Python-level loops for state extraction, velocity transforms, and data write-back. Convert back to torch with wp.to_torch() when needed.

Preset System for Multi-Backend Environments

A new PresetCfg pattern allows a single environment config to declare named variants for different backends. Select a preset at launch:

Run with Newton backend:
python train.py task=Isaac-Ant-v0 presets=newton

Run with default PhysX backend:
python train.py task=Isaac-Ant-v0

Lazy Exporting & Resolvable Strings

All packages now use lazy exporting with .pyi stubs, so importing a top-level module (e.g., import isaaclab.sensors) no longer eagerly pulls in heavyweight dependencies. Config fields like class_type store references as resolvable strings that are resolved only after SimulationApp is initialized, enabling automatic physics-backend selection.

Isaac Teleop Integration

XR teleoperation is now powered by Isaac Teleop via the new isaaclab_teleop extension, replacing the previous isaaclab.devices.openxr stack. The new system provides a unified teleoperation interface with pipeline-based retargeting configuration.

💥 Breaking Changes

Quaternion Format: WXYZ → XYZW

All quaternions throughout Isaac Lab now use XYZW ordering to align with Warp, PhysX, and Newton conventions. Hard-coded quaternion values must be updated. A quaternion finder tool is provided to help locate and fix quaternions.

Data Properties Return wp.array

All .data.* properties now return wp.array. Wrap with wp.to_torch() for PyTorch compatibility. An automated migration tool is available at scripts/tools/wrap_warp_to_torch.py.

Write Method Index/Mask Split

All asset write methods have been split into _index and _mask variants. The previous write_*_to_sim(data, env_ids) pattern is replaced by:

  • write_*_to_sim_index(data, env_ids) — sparse indexed data
  • write_*_to_sim_mask(data, env_mask) — full data with boolean mask

Deprecated APIs

  • root_physx_view → use root_view
  • object_* naming on RigidObjectCollection → use body_*
  • --headless CLI argument → use --visualizer / --viz
  • OpenXRDevice / OpenXRDeviceCfg → use IsaacTeleopDevice / IsaacTeleopCfg
  • Sensor pose_w, pos_w, quat_w properties → use FrameTransformer

URDF & MJCF Importers Updated

Both importers have been rewritten for Isaac Sim 6.0. Several configuration settings have been removed, renamed, or replaced. See the Migration Guide for details.

Updated Dependencies

  • Python 3.12
  • PyTorch 2.10.0+cu128
  • NumPy 2.3.1
  • Isaac Sim 6.0

⚠️ Known Limitations

  • Ubuntu only — The develop branch is currently available on Ubuntu. Windows support and Isaac Lab pip wheels will be available soon.
  • Newton backend is in active development — Not all environments have Newton presets yet. Some features (e.g., deformable objects, surface grippers, material randomization) are PhysX-only.
  • Performance regressions may be observed in some use cases as the multi-backend architecture stabilizes.
  • Breaking changes may still occur on the develop branch before the final 3.0 release.

📖 Migration Guide

For a comprehensive guide on migrating from Isaac Lab 2.x to 3.0, including code examples, API rename tables, and automated tooling, see the Migration Guide.