Skip to content

Commit 080898f

Browse files
kellyguo11Kelly Guo
andauthored
Updates deprecated extensions in Isaac Sim (#5293)
# Description Migrates Isaac Lab off deprecated Isaac Sim API surfaces in preparation for their removal in a future Isaac Sim release. This PR is intentionally scoped to the API migration only — installation, prebundle, and extension-exclusion fixes are tracked separately on `kellyg/fix-installation`. ## What changes **Kit experience (`apps/*.kit`):** - Stopped registering deprecated Isaac Sim extension search paths (`extsDeprecated`) in Isaac Lab Kit experiences (headless, rendering, XR variants). - Switched explicit Isaac Sim extension dependencies to their non-deprecated equivalents: - `isaacsim.core.*` → `isaacsim.core.experimental.*` - `isaacsim.robot.wheeled_robots` → `isaacsim.robot.experimental.wheeled_robots` (+ `isaacsim.robot.wheeled_robots.nodes` for OmniGraph nodes) - `isaacsim.sensors.*` → `isaacsim.sensors.experimental.*` - Removed unused Isaac Sim extensions that pulled in `isaacsim.core.api`. - Migrated `isaacsim.core.cloner` usage to the in-tree Lab cloner. **Python source migrations (across `isaaclab`, `isaaclab_physx`, `isaaclab_tasks`, `isaaclab_teleop`, `isaaclab_visualizers`, `isaaclab_mimic`):** - Migrated remaining imports off deprecated `isaacsim.core.utils.*` / prim Python paths to `isaacsim.core.experimental.*` replacements (controllers, env mdp events, sim utils/converters, terrain importer, RMP flow, etc.). - Updated Kit perspective capture helpers to use `isaacsim.core.rendering_manager`. - Updated optional-extension enablement (e.g. `enable_extension`) to use `isaacsim.core.experimental.utils.app`. - Updated XR anchor utilities to use `isaacsim.core.experimental.prims` / `isaacsim.core.experimental.utils`. - Updated mobility-gen path utilities (`isaaclab_mimic`) to import from `isaacsim.replicator.experimental.mobility_gen`. - Migrated `kit_visualizer.py` from `isaacsim.core.utils.viewports.set_camera_view` to `omni.kit.viewport.utility.camera_state.ViewportCameraState`. **`SimulationManager` decoupling:** - Migrated the PhysX scene data provider, PhysX asset micro-benchmarks, and cross-backend asset interface tests off `isaacsim.core.simulation_manager.SimulationManager`. They now import `isaaclab_physx.physics.PhysxManager` aliased as `SimulationManager`, mirroring the Newton backend's `NewtonManager as SimulationManager` convention. No new public alias is exported from `isaaclab_physx.physics`. **Test deps cleanup:** - Retired several `source/isaaclab/test/deps/isaacsim` standalone reproducers that depended on deprecated Isaac Sim core extensions (`check_camera.py`, `check_floating_base_made_fixed.py`, `check_legged_robot_clone.py`, `check_rep_texture_randomizer.py`, `check_ref_count.py`). Use `isaaclab.sim` and `isaacsim.core.experimental.*` for similar debugging workflows. **Docs:** - Updated tutorials, sensor docs, migration guide, release notes, and verification snippets to reference the non-deprecated APIs. ## Motivation Isaac Sim has marked `isaacsim.core.*`, `isaacsim.sensors.*`, and `isaacsim.robot.wheeled_robots` modules as deprecated, with `isaacsim.core.experimental.*` as the supported replacement. Without this migration, Isaac Lab will break when those modules are removed and currently emits deprecation warnings on every launch. Splitting the migration off from the installation/prebundle work keeps each PR small and reviewable. Fixes # (issue) ## Type of change - Bug fix (non-breaking change which fixes an issue) - New feature (non-breaking change which adds functionality) - **Breaking change (existing functionality will not work without user modification)** — only for users that imported deprecated Isaac Sim symbols re-exported through Isaac Lab Kit experiences; user-facing Isaac Lab Python APIs are unchanged. - Documentation update ## Screenshots N/A — no UI changes. ## Checklist - [x] I have read and understood the [contribution guidelines](https://isaac-sim.github.io/IsaacLab/main/source/refs/contributing.html) - [x] I have run the [`pre-commit` checks](https://pre-commit.com/) with `./isaaclab.sh --format` - [x] I have made corresponding changes to the documentation - [x] My changes generate no new warnings - [x] I have added tests that prove my fix is effective or that my feature works - [x] I have updated the changelog and the corresponding version in the extension's `config/extension.toml` file - `isaaclab` 4.6.10 → 4.6.11 - `isaaclab_physx` 0.5.20 → 0.5.21 - `isaaclab_tasks` 1.5.23 → 1.5.24 - `isaaclab_teleop` 0.3.6 → 0.3.7 - `isaaclab_mimic` 1.2.4 → 1.2.5 - [x] I have added my name to the `CONTRIBUTORS.md` or my name already exists there --------- Signed-off-by: Kelly Guo <kellyg@nvidia.com> Signed-off-by: Kelly Guo <kellyguo123@hotmail.com> Co-authored-by: Kelly Guo <kelly@nvidia.com>
1 parent b674671 commit 080898f

68 files changed

Lines changed: 442 additions & 1012 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

apps/isaaclab.python.headless.kit

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -173,11 +173,9 @@ folders = [
173173
"${exe-path}/exts", # kit extensions
174174
"${exe-path}/extscore", # kit core extensions
175175
"${exe-path}/../exts", # isaac extensions
176-
"${exe-path}/../extsDeprecated", # deprecated isaac extensions
177176
"${exe-path}/../extscache", # isaac cache extensions
178177
"${exe-path}/../extsPhysics", # isaac physics extensions
179178
"${exe-path}/../isaacsim/exts", # isaac extensions for pip
180-
"${exe-path}/../isaacsim/extsDeprecated", # deprecated isaac extensions
181179
"${exe-path}/../isaacsim/extscache", # isaac cache extensions for pip
182180
"${exe-path}/../isaacsim/extsPhysics", # isaac physics extensions for pip
183181
"${app}", # needed to find other app files
@@ -192,9 +190,7 @@ enabled=true # Enable this for DLSS
192190
########################
193191
[dependencies]
194192
"isaacsim.simulation_app" = {}
195-
"isaacsim.core.api" = {}
196-
"isaacsim.core.cloner" = {}
197-
"isaacsim.core.utils" = {}
193+
"isaacsim.core.simulation_manager" = {}
198194
"isaacsim.core.version" = {}
199195

200196
########################

apps/isaaclab.python.headless.rendering.kit

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -142,11 +142,9 @@ folders = [
142142
"${exe-path}/exts", # kit extensions
143143
"${exe-path}/extscore", # kit core extensions
144144
"${exe-path}/../exts", # isaac extensions
145-
"${exe-path}/../extsDeprecated", # deprecated isaac extensions
146145
"${exe-path}/../extscache", # isaac cache extensions
147146
"${exe-path}/../extsPhysics", # isaac physics extensions
148147
"${exe-path}/../isaacsim/exts", # isaac extensions for pip
149-
"${exe-path}/../isaacsim/extsDeprecated", # deprecated isaac extensions
150148
"${exe-path}/../isaacsim/extscache", # isaac cache extensions for pip
151149
"${exe-path}/../isaacsim/extsPhysics", # isaac physics extensions for pip
152150
"${app}", # needed to find other app files

apps/isaaclab.python.kit

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -14,23 +14,26 @@ keywords = ["experience", "app", "usd"]
1414
# Isaac Sim extensions
1515
"isaacsim.app.about" = {}
1616
"isaacsim.examples.browser" = {}
17-
"isaacsim.core.api" = {}
1817
"isaacsim.core.cloner" = {}
18+
"isaacsim.core.deprecation_manager" = { order = -100 }
19+
"isaacsim.core.experimental.materials" = {}
20+
"isaacsim.core.experimental.objects" = {}
21+
"isaacsim.core.experimental.primdata" = {}
22+
"isaacsim.core.experimental.prims" = {}
23+
"isaacsim.core.experimental.utils" = {}
1924
"isaacsim.core.nodes" = {}
25+
"isaacsim.core.rendering_manager" = {}
26+
"isaacsim.core.simulation_manager" = {}
2027
"isaacsim.core.throttling" = {}
21-
"isaacsim.core.utils" = {}
2228
"isaacsim.core.version" = {}
23-
"isaacsim.gui.menu" = {}
2429
"isaacsim.gui.property" = {}
2530
"isaacsim.replicator.behavior" = {}
26-
"isaacsim.robot.manipulators" = {}
2731
"isaacsim.robot.policy.examples" = {}
2832
"isaacsim.robot.schema" = {}
29-
"isaacsim.robot.wheeled_robots" = {}
30-
"isaacsim.sensors.camera" = {}
31-
"isaacsim.sensors.physics" = {}
32-
"isaacsim.sensors.physx" = {}
33-
"isaacsim.sensors.rtx" = {}
33+
"isaacsim.robot.experimental.wheeled_robots" = {}
34+
"isaacsim.robot.wheeled_robots.nodes" = {}
35+
"isaacsim.sensors.experimental.physics" = {}
36+
"isaacsim.sensors.experimental.rtx" = {}
3437
"isaacsim.simulation_app" = {}
3538
"isaacsim.storage.native" = {}
3639
"isaacsim.util.debug_draw" = {}
@@ -273,11 +276,9 @@ folders = [
273276
"${exe-path}/exts", # kit extensions
274277
"${exe-path}/extscore", # kit core extensions
275278
"${exe-path}/../exts", # isaac extensions
276-
"${exe-path}/../extsDeprecated", # deprecated isaac extensions
277279
"${exe-path}/../extscache", # isaac cache extensions
278280
"${exe-path}/../extsPhysics", # isaac physics extensions
279281
"${exe-path}/../isaacsim/exts", # isaac extensions for pip
280-
"${exe-path}/../isaacsim/extsDeprecated", # deprecated isaac extensions
281282
"${exe-path}/../isaacsim/extscache", # isaac cache extensions for pip
282283
"${exe-path}/../isaacsim/extsPhysics", # isaac physics extensions for pip
283284
"${app}", # needed to find other app files

apps/isaaclab.python.rendering.kit

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -126,11 +126,9 @@ folders = [
126126
"${exe-path}/exts", # kit extensions
127127
"${exe-path}/extscore", # kit core extensions
128128
"${exe-path}/../exts", # isaac extensions
129-
"${exe-path}/../extsDeprecated", # deprecated isaac extensions
130129
"${exe-path}/../extscache", # isaac cache extensions
131130
"${exe-path}/../extsPhysics", # isaac physics extensions
132131
"${exe-path}/../isaacsim/exts", # isaac extensions for pip
133-
"${exe-path}/../isaacsim/extsDeprecated", # deprecated isaac extensions
134132
"${exe-path}/../isaacsim/extscache", # isaac cache extensions for pip
135133
"${exe-path}/../isaacsim/extsPhysics", # isaac physics extensions for pip
136134
"${app}", # needed to find other app files

apps/isaaclab.python.xr.openxr.headless.kit

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,11 +56,9 @@ folders = [
5656
"${exe-path}/extscore", # kit core extensions
5757
"${exe-path}/../exts", # isaac extensions
5858
"${exe-path}/../extsInternal", # isaac internal extensions
59-
"${exe-path}/../extsDeprecated", # deprecated isaac extensions
6059
"${exe-path}/../extscache", # isaac cache extensions
6160
"${exe-path}/../extsPhysics", # isaac physics extensions
6261
"${exe-path}/../isaacsim/exts", # isaac extensions for pip
63-
"${exe-path}/../isaacsim/extsDeprecated", # deprecated isaac extensions
6462
"${exe-path}/../isaacsim/extscache", # isaac cache extensions for pip
6563
"${exe-path}/../isaacsim/extsPhysics", # isaac physics extensions for pip
6664
"${app}", # needed to find other app files

apps/isaaclab.python.xr.openxr.kit

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -80,11 +80,9 @@ folders = [
8080
"${exe-path}/extscore", # kit core extensions
8181
"${exe-path}/../exts", # isaac extensions
8282
"${exe-path}/../extsInternal", # isaac internal extensions
83-
"${exe-path}/../extsDeprecated", # deprecated isaac extensions
8483
"${exe-path}/../extscache", # isaac cache extensions
8584
"${exe-path}/../extsPhysics", # isaac physics extensions
8685
"${exe-path}/../isaacsim/exts", # isaac extensions for pip
87-
"${exe-path}/../isaacsim/extsDeprecated", # deprecated isaac extensions
8886
"${exe-path}/../isaacsim/extscache", # isaac cache extensions for pip
8987
"${exe-path}/../isaacsim/extsPhysics", # isaac physics extensions for pip
9088
"${app}", # needed to find other app files

docs/conf.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -173,11 +173,11 @@
173173
"pxr.PhysxSchema",
174174
"pxr.PhysicsSchemaTools",
175175
"omni.replicator",
176-
"isaacsim",
177-
"isaacsim.core.api",
178176
"isaacsim.core.cloner",
179177
"isaacsim.core.version",
180-
"isaacsim.core.utils",
178+
"isaacsim.core.experimental.prims",
179+
"isaacsim.core.experimental.utils",
180+
"isaacsim.core.rendering_manager",
181181
"isaacsim.robot_motion.motion_generation",
182182
"isaacsim.gui.components",
183183
"isaacsim.asset.importer.urdf",

docs/source/migration/migrating_to_isaaclab_3-0.rst

Lines changed: 117 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1672,6 +1672,123 @@ Deprecated retargeters have been moved to ``isaaclab_teleop.deprecated.openxr.re
16721672
compatibility. These will be removed in a future release.
16731673

16741674

1675+
Migration off Deprecated Isaac Sim APIs
1676+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1677+
1678+
In Isaac Sim 6.0, the legacy ``isaacsim.core.*``, ``isaacsim.sensors.*``, and
1679+
``isaacsim.robot.wheeled_robots`` Python module paths are **deprecated** in favor of their
1680+
``isaacsim.core.experimental.*`` (and ``*.experimental.*``) equivalents. Isaac Lab 3.0 has
1681+
been migrated off the deprecated paths so that Isaac Lab continues to load and run when
1682+
those modules are removed in a future Isaac Sim release.
1683+
1684+
This is mostly a transparent change for users — Isaac Lab's own public Python API
1685+
(:mod:`isaaclab`, :mod:`isaaclab_physx`, :mod:`isaaclab_tasks`, :mod:`isaaclab_teleop`,
1686+
:mod:`isaaclab_mimic`) is unchanged. The migration is only user-visible if you:
1687+
1688+
1. Import Isaac Sim symbols **directly** in your project, or
1689+
2. Maintain a custom Kit experience (``.kit`` file) that lists Isaac Sim extension
1690+
dependencies, or
1691+
3. Imported ``SimulationManager`` from ``isaacsim.core.simulation_manager`` in your own
1692+
PhysX-backed code.
1693+
1694+
1695+
Python module renames
1696+
---------------------
1697+
1698+
Update direct imports in your own code as follows. **Where Isaac Lab provides an in-tree
1699+
replacement, prefer the Isaac Lab API** over the ``isaacsim.core.experimental.*`` fallback:
1700+
1701+
.. list-table::
1702+
:header-rows: 1
1703+
:widths: 45 55
1704+
1705+
* - Deprecated Isaac Sim path
1706+
- Recommended replacement
1707+
* - ``isaacsim.core.utils.stage``
1708+
- :mod:`isaaclab.sim.utils.stage` (e.g. ``get_current_stage``,
1709+
``create_new_stage``, ``open_stage``, ``save_stage``, ``close_stage``,
1710+
``clear_stage``, ``update_stage``, ``use_stage``)
1711+
* - ``isaacsim.core.utils.prims``
1712+
- :mod:`isaaclab.sim.utils.prims` (e.g. ``create_prim``, ``delete_prim``,
1713+
``change_prim_property``, ``bind_visual_material``,
1714+
``bind_physics_material``, ``add_usd_reference``)
1715+
* - ``isaacsim.core.utils.queries``
1716+
- :mod:`isaaclab.sim.utils.queries` (e.g. ``find_matching_prims``,
1717+
``find_matching_prim_paths``, ``get_first_matching_child_prim``)
1718+
* - ``isaacsim.core.utils.transforms``
1719+
- :mod:`isaaclab.sim.utils.transforms`
1720+
* - ``isaacsim.core.utils.semantics``
1721+
- :mod:`isaaclab.sim.utils.semantics`
1722+
* - ``isaacsim.core.utils.extensions.enable_extension``
1723+
- ``isaacsim.core.experimental.utils.app.enable_extension`` (no Isaac Lab equivalent)
1724+
* - ``isaacsim.core.utils.viewports.set_camera_view``
1725+
- ``isaacsim.core.rendering_manager.ViewportManager.set_camera_view`` (or
1726+
``omni.kit.viewport.utility.camera_state.ViewportCameraState`` for lower-level control)
1727+
* - ``isaacsim.core.prims.XFormPrim`` / ``XFormPrimView``
1728+
- :class:`~isaaclab.sim.views.FrameView` (Isaac Lab in-tree view; see
1729+
:ref:`migrating-to-isaaclab-3-0` ``Renaming of XformPrimView to FrameView`` above).
1730+
For ``Articulation`` / ``RigidPrim`` use ``isaacsim.core.experimental.prims``.
1731+
* - ``isaacsim.core.simulation_manager.SimulationManager``
1732+
- :class:`isaaclab_physx.physics.PhysxManager` (PhysX backend) or
1733+
``isaaclab_newton.physics.NewtonManager`` (Newton backend); see local-alias
1734+
pattern below.
1735+
* - ``isaacsim.core.cloner``
1736+
- :mod:`isaaclab.cloner` (Isaac Lab in-tree cloner)
1737+
* - ``isaacsim.replicator.mobility_gen``
1738+
- ``isaacsim.replicator.experimental.mobility_gen``
1739+
* - ``isaacsim.sensors.<name>``
1740+
- ``isaacsim.sensors.experimental.<name>``
1741+
* - ``isaacsim.robot.wheeled_robots``
1742+
- ``isaacsim.robot.experimental.wheeled_robots`` (and
1743+
``isaacsim.robot.wheeled_robots.nodes`` for OmniGraph nodes)
1744+
1745+
To keep call-site code symmetric across backends when migrating off
1746+
``isaacsim.core.simulation_manager.SimulationManager``, use the local-alias pattern:
1747+
1748+
.. code-block:: python
1749+
1750+
from isaaclab_physx.physics import PhysxManager as SimulationManager
1751+
# or, for the Newton backend
1752+
from isaaclab_newton.physics import NewtonManager as SimulationManager
1753+
1754+
1755+
Kit experience (``.kit``) updates
1756+
---------------------------------
1757+
1758+
If you maintain a custom Kit experience derived from one of the Isaac Lab apps under
1759+
``apps/``:
1760+
1761+
* **Stop registering deprecated extension search paths.** The ``extsDeprecated`` search
1762+
path entry has been removed from all stock Isaac Lab Kit experiences (headless,
1763+
rendering, XR variants). Mirror that change in your own experience.
1764+
* **Switch explicit Isaac Sim extension dependencies** to the non-deprecated equivalents
1765+
listed above (``isaacsim.core.experimental.*``, ``isaacsim.sensors.experimental.*``,
1766+
``isaacsim.robot.experimental.wheeled_robots``).
1767+
* **Remove unused Isaac Sim extensions that pull in** ``isaacsim.core.api`` — Isaac Lab
1768+
no longer depends on those, and keeping them resurrects the deprecated stack.
1769+
1770+
1771+
``SimulationManager`` is no longer re-exported
1772+
----------------------------------------------
1773+
1774+
Earlier internal previews of this migration briefly exposed
1775+
``isaaclab_physx.physics.SimulationManager`` as a public alias of
1776+
:class:`~isaaclab_physx.physics.PhysxManager`. **That alias has been removed**; use
1777+
:class:`~isaaclab_physx.physics.PhysxManager` directly (with ``as SimulationManager`` at
1778+
the import site if you want backend-agnostic call-site code, as shown above).
1779+
1780+
1781+
Retired standalone reproducers
1782+
------------------------------
1783+
1784+
A handful of legacy reproducers under ``source/isaaclab/test/deps/isaacsim`` that
1785+
depended on the deprecated Isaac Sim core extensions have been retired:
1786+
``check_camera.py``, ``check_floating_base_made_fixed.py``,
1787+
``check_legged_robot_clone.py``, ``check_rep_texture_randomizer.py``, and
1788+
``check_ref_count.py``. Use :mod:`isaaclab.sim` together with the new
1789+
``isaacsim.core.experimental.*`` APIs for the same debugging workflows.
1790+
1791+
16751792
PhysX Tensors API Module Path
16761793
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
16771794

docs/source/overview/core-concepts/sensors/ray_caster.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ Querying the sensor for data can be done at simulation run time like any other s
5050
5151
-------------------------------
5252
Ray-caster @ '/World/envs/env_.*/Robot/base/lidar_cage':
53-
view type : <class 'isaacsim.core.prims.xform_prim.XFormPrim'>
53+
view type : <class 'isaacsim.core.experimental.prims.xform_prim.XformPrim'>
5454
update period (s) : 0.016666666666666666
5555
number of meshes : 1
5656
number of sensors : 1

docs/source/overview/imitation-learning/humanoids_imitation.rst

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -563,7 +563,7 @@ To generate the locomanipulation dataset, use the following command:
563563
./isaaclab.sh -p \
564564
scripts/imitation_learning/locomanipulation_sdg/generate_data.py \
565565
--device cpu \
566-
--kit_args="--enable isaacsim.replicator.mobility_gen" \
566+
--kit_args="--enable isaacsim.replicator.experimental.mobility_gen" \
567567
--task="Isaac-G1-SteeringWheel-Locomanipulation" \
568568
--dataset ./datasets/generated_dataset_g1_locomanip.hdf5 \
569569
--num_runs 1 \
@@ -736,7 +736,7 @@ Download the files and place them under ``<PATH_TO_USD_ASSET>``, then run the fo
736736
737737
./isaaclab.sh -p scripts/imitation_learning/locomanipulation_sdg/generate_data.py \
738738
--device cpu \
739-
--kit_args="--enable isaacsim.replicator.mobility_gen" \
739+
--kit_args="--enable isaacsim.replicator.experimental.mobility_gen" \
740740
--task="Isaac-G1-SteeringWheel-Locomanipulation" \
741741
--dataset <DATASET_FOLDER>/dataset_annotated_g1_locomanip.hdf5 \
742742
--num_runs 1 \

0 commit comments

Comments
 (0)