Skip to content
1 change: 0 additions & 1 deletion docs/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -142,7 +142,6 @@ Table of Contents
:caption: Experimental Features

source/experimental-features/bleeding-edge
source/experimental-features/newton-physics-integration/index
source/experimental-features/visuo_tactile_sensor

.. toctree::
Expand Down

This file was deleted.

This file was deleted.

2 changes: 1 addition & 1 deletion docs/source/features/visualization.rst
Original file line number Diff line number Diff line change
Expand Up @@ -549,5 +549,5 @@ See Also

- :doc:`/source/overview/core-concepts/renderers` — renderer backends (RTX, Newton Warp, OVRTX)
- :doc:`/source/overview/core-concepts/scene_data_providers` — how scene data flows from physics to visualizers
- :doc:`/source/experimental-features/newton-physics-integration/index` — Newton physics integration guide
- :doc:`/source/overview/core-concepts/physical-backends/newton/index` — Newton backend guide
- :doc:`/source/migration/migrating_to_isaaclab_3-0` — migration guide with ``--headless`` deprecation details
1 change: 1 addition & 0 deletions docs/source/overview/core-concepts/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ This section we introduce core concepts in Isaac Lab.


multi_backend_architecture
physical-backends/index
schema_cfgs
task_workflows
actuators
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -382,6 +382,6 @@ See Also
- :doc:`/source/migration/migrating_to_isaaclab_3-0` — migration guide from Isaac Lab 2.x to the
multi-backend architecture
- :doc:`/source/features/hydra` — preset system for multi-backend environment configurations
- :doc:`/source/experimental-features/newton-physics-integration/index` — Newton physics integration
guide
- :doc:`physical-backends/index` — feature matrix and per-backend guides (PhysX, Newton, OvPhysX)
- :doc:`physical-backends/newton/index` — Newton backend guide
- :doc:`renderers` — renderer backend architecture
138 changes: 138 additions & 0 deletions docs/source/overview/core-concepts/physical-backends/index.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,138 @@
Physics Backends
================

Isaac Lab 3.0 supports multiple physics backends through a unified API. Each backend
exposes the same :class:`~isaaclab.assets.Articulation`,
:class:`~isaaclab.assets.RigidObject`, sensor and renderer surfaces, while differing
in solver characteristics, maturity, and feature coverage. See
:doc:`../multi_backend_architecture` for how the dispatch and factory machinery work
under the hood.

This page summarizes what each backend supports today; the sub-pages document
backend-specific configuration, installation, and limitations.

.. toctree::
:maxdepth: 2

physx/index
newton/index
ovphysx/index
solver-comparison


Choosing a Backend
------------------

* **PhysX** — the historical default. Production-ready, broad coverage of Isaac Lab
features, and the reference for behavior parity. Selected via
:class:`~isaaclab_physx.physics.PhysxCfg`.
* **Newton** — GPU-accelerated, Warp-native, and differentiable. The Newton
integration ships with the MuJoCo-Warp solver and beta support for the Kamino
solver. Selected via :class:`~isaaclab_newton.physics.NewtonCfg`.
* **OvPhysX** — a **highly experimental** kit-less PhysX backend that reads
scene-level parameters from the USD ``PhysicsScene`` prim. Selected via
:class:`~isaaclab_ovphysx.physics.OvPhysxCfg`. Not recommended for general use yet.

The active backend is selected at simulation construction time and applies to every
asset, sensor, and renderer instantiated thereafter:

.. code-block:: python

from isaaclab.sim import SimulationCfg
from isaaclab_physx.physics import PhysxCfg
from isaaclab_newton.physics import NewtonCfg, MJWarpSolverCfg

# PhysX (default)
sim_cfg = SimulationCfg(physics=PhysxCfg())

# Newton with MuJoCo-Warp
sim_cfg = SimulationCfg(physics=NewtonCfg(solver_cfg=MJWarpSolverCfg()))


Feature Support Matrix
----------------------

The matrix below is intentionally coarse-grained. For exhaustive per-asset and
per-task support, see each backend's own ``limitations`` page.

.. list-table::
:header-rows: 1
:widths: 30 20 30 20

* - Feature
- PhysX
- Newton
- OvPhysX
* - Maturity
- Stable
- Beta
- Highly experimental
* - Default solver
- TGS (rigid body)
- MuJoCo-Warp
- PhysX (TGS / PGS via USD)
* - Alternative solvers
- PGS
- Kamino (beta), additional Newton solvers planned
- —
* - Differentiable
- No
- Yes (via Warp)
- No
* - Articulation API
- Yes
- Yes
- In-flight (PR #5459)
* - Rigid Object API
- Yes
- Yes
- Yes
* - Contact Sensor
- Yes
- Yes
- In-flight (PR #5422)
* - IMU
- Yes
- Yes
- In-flight (PR #5421)
* - Frame Transformer / Ray Caster / PVA / Joint-Wrench Sensor
- Yes
- Yes
- Not yet
* - Camera / Tiled Rendering
- Yes (RTX)
- Yes (Newton-Warp renderer)
- Not yet
* - Requires Isaac Sim
- Yes
- Optional (only for the Omniverse visualizer)
- Yes
* - Solver configuration source
- :class:`~isaaclab_physx.physics.PhysxCfg`
- :class:`~isaaclab_newton.physics.NewtonCfg` + solver config
- USD ``PhysicsScene`` + :class:`~isaaclab_ovphysx.physics.OvPhysxCfg`


Selecting Backends per Task
---------------------------

Tasks that support more than one backend define a Hydra preset on
``SimulationCfg.physics``. The example below shows the cartpole task config which
declares all three backends side by side:

.. code-block:: python

from isaaclab_physx.physics import PhysxCfg
from isaaclab_newton.physics import MJWarpSolverCfg, NewtonCfg
from isaaclab_ovphysx.physics import OvPhysxCfg

@configclass
class CartpolePhysicsCfg(PresetCfg):
default: PhysxCfg = PhysxCfg()
physx: PhysxCfg = PhysxCfg()
newton_mjwarp: NewtonCfg = NewtonCfg(solver_cfg=MJWarpSolverCfg())
ovphysx: OvPhysxCfg = OvPhysxCfg()

Users then select the backend at the command line via ``presets=<name>`` or by
overriding the physics field directly. See :ref:`hydra-backend-solver-presets` for
the full Hydra interaction.
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
Newton Backend
==============

`Newton <https://newton-physics.github.io/newton/latest/guide/overview.html>`_ is a
GPU-accelerated, extensible, and differentiable physics simulation engine designed
for robotics, research, and advanced simulation workflows. Built on top of
`NVIDIA Warp <https://nvidia.github.io/warp/>`_ and integrating MuJoCo Warp, Newton
provides high-performance simulation, modern Python APIs, and a flexible
architecture for both users and developers.

Newton is an Open Source community-driven project with contributions from NVIDIA,
Google Deep Mind, and Disney Research, managed through the Linux Foundation.

Newton support in Isaac Lab is in beta and under active development. Many features
are still maturing, and the Isaac Lab integration ships a focused, validated set of
classic RL and flat-terrain locomotion environments. We have validated Newton
simulation against PhysX by transferring learned policies in both directions and
have successfully deployed a Newton-trained locomotion policy to a G1 robot.

Newton can support `multiple solvers
<https://newton-physics.github.io/newton/latest/api/newton_solvers.html>`_ for
handling different types of physics simulation. The Isaac Lab integration ships
two solver pages:

* :doc:`mjwarp-solver` — the primary, validated solver path.
* :doc:`kamino-solver` — beta support on selected classic tasks.

During the beta phase, breaking changes and incomplete documentation are still
expected. Official support and debugging assistance will follow once the framework
reaches an official release.

For an overview of how the multi-backend architecture works, including how to add a
new backend, see :doc:`../../multi_backend_architecture`.


.. toctree::
:maxdepth: 2
:titlesonly:

installation
supported-features
mjwarp-solver
kamino-solver
warp-environments
warp-env-migration
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
Installation
============

Installing the Newton physics integration requires three things:
Installing the Newton backend requires three things:

1) The ``develop`` branch of Isaac Lab
2) Ubuntu 22.04 or 24.04
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
.. _newton-using-kamino:
.. _newton-kamino-solver:

Using the Kamino Solver
=======================
Kamino Solver
=============

Kamino is a Newton solver, not a separate Isaac Lab physics backend. In Isaac Lab,
Kamino is enabled by selecting a :class:`~isaaclab_newton.physics.NewtonCfg` whose
Expand Down Expand Up @@ -49,7 +49,7 @@ solver config types used by the presets:
Then add a ``newton_kamino`` entry beside the existing ``default``, ``physx``, and
``newton_mjwarp`` entries:

.. literalinclude:: ../../../../source/isaaclab_tasks/isaaclab_tasks/direct/cartpole/cartpole_env_cfg.py
.. literalinclude:: ../../../../../../source/isaaclab_tasks/isaaclab_tasks/direct/cartpole/cartpole_env_cfg.py
:language: python
:start-at: class CartpolePhysicsCfg
:end-at: ovphysx: OvPhysxCfg = OvPhysxCfg()
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
Solver Transitioning
====================

Transitioning to the Newton physics engine introduces new physics solvers that handle simulation using different numerical approaches.
While Newton supports several different solvers, our initial focus for Isaac Lab is on using the
MuJoCo-Warp solver from Google DeepMind. Isaac Lab also includes beta support for the Kamino
solver on selected classic tasks. Kamino is selected through a physics preset rather than as a
separate backend; see :ref:`hydra-backend-solver-presets` and :ref:`newton-using-kamino`.
MJWarp Solver
=============

The MuJoCo-Warp solver from Google DeepMind is the primary, validated solver
for the Newton backend in Isaac Lab. It is enabled by setting
:attr:`~isaaclab_newton.physics.NewtonCfg.solver_cfg` to a
:class:`~isaaclab_newton.physics.MJWarpSolverCfg`, usually exposed as the
``newton_mjwarp`` physics preset on a task configuration. Newton ships with
beta support for an alternative Kamino solver — see :doc:`kamino-solver` and
:ref:`hydra-backend-solver-presets` for how presets are selected.

.. note::

Expand Down
Loading
Loading