Isaac Sim 6.0 Migration Strategy#
Use this page to plan a migration from Isaac Sim 5.x to Isaac Sim 6.0 before editing code. Isaac Sim 6.0 removes older compatibility shims, moves several runtime APIs to experimental packages, and deprecates some monolithic tools in favor of focused extensions or app-owned workflows.
Python Runtime#
Isaac Sim 5.1 bundles Python 3.11.13. Isaac Sim 6.0 bundles Python 3.12.13. Rebuild the following against the 6.0 Python runtime:
Project virtual environments
Compiled wheels
Native Python extensions
ROS 2 Python packages
Custom message workspaces
Machine learning (ML) dependencies
Do not copy a 5.x
site-packages directory into a 6.0 installation, even when imports appear
to resolve.
Migration Order#
Complete these steps in order:
Inventory your project.
Run Project Migration Audit or an equivalent project-owned inventory. Search the following for deprecated packages and workflow patterns:
Extension manifests
App
.kitfilesPython imports
Saved Universal Scene Description (USD) Action Graphs
ROS workspaces
Generated assets
Benchmark scripts
Continuous integration (CI) smoke tests
Remove the old
omni.isaac.*compatibility layer first.If the project still uses
omni.isaac.*extension names, migrate those names with Renaming Extensions in Isaac Sim 4.5 before applying the 6.0 guides.Migrate runtime APIs by workflow.
Do not replace all imports mechanically. Validate the lifecycle of each workflow: stage creation, simulation step, rendering, graph execution, writer output, and asset save/load.
Open saved USD stages in Isaac Sim 6.0 and save migrated copies.
The deprecation manager handles some Action Graph and node namespace migrations when the stage opens. Save the stage after migration so future runs do not depend on compatibility bridges.
Keep deprecated extensions enabled only as a short transition aid.
A migrated project should not enable deprecated packages unless the remaining dependency is intentional, documented, and scheduled for removal.
Coverage Matrix#
6.0 change area |
Migration action |
Validation target |
|---|---|---|
Removed |
Migrate extension dependencies and imports to |
App starts without |
Project-wide migration inventory |
Run Project Migration Audit and assign every required finding to a workflow owner before editing code. |
Audit findings have owners and map to runtime validation tasks. |
Core API, prim wrappers, and utilities |
Use Core API to Core Experimental API and replace |
One reset, step, render, and callback cycle succeeds. |
Camera, RTX, and physics sensors |
Use the sensor migration guides in this section and move authoring to
|
Sensor prims load, render or simulate, and publish expected data. |
Sensor timing, external simulation time, and RTX Lidar assets |
Use Sensor Timing and RTX Lidar Asset Migration to replace
helper-node frame skipping with sensor |
Observed sensor cadence, timestamps, and converted OmniLidar assets match the project baseline. |
ROS 2 OmniGraph publisher node inputs |
Use ROS 2 OmniGraph Nodes and feed publisher nodes from dedicated source nodes. |
Saved graphs load without deprecated prim-path inputs. |
ROS 2 sensor helper and point-cloud graphs |
Use ROS 2 Sensor Graph Migration for CameraInfo calibration, RTX helper scheduling, and PointCloud2 metadata flags. |
ROS image, CameraInfo, Lidar, Radar, and PointCloud2 messages match the expected fields and cadence. |
Isaac Sim ROS workspace package layout |
Use ROS 2 Workspace Package Migration for the |
|
ROS 2 |
Replace the deprecated Kit command with |
Imported robot USDs load with the expected articulation and assets. |
URDF, MJCF, exporter, and robot asset pipeline |
Use URDF, MJCF, and Robot Asset Pipeline Changes for importer APIs, tri-state base type, ROS 2 robot descriptions, exporter checks, and Asset Transformer workflows. |
Imported and exported robot assets preserve joints, drives, materials, references, and base behavior. |
Robot asset paths and multiphysics variants |
Use Robot Asset Path Migration to review |
Migrated robot paths load, reset or step, initialize controllers, and preserve the workflow’s expected prim, joint, sensor, and material assumptions. |
Replicator domain randomization |
Use Replicator Domain Randomization Extension and enable
|
Randomization triggers and writer outputs still occur. |
MobilityGen package and recordings |
Use MobilityGen Package and Recordings and convert old
|
Replayed recordings produce nonzero steps. |
Manipulator and wheeled robot packages |
Use Manipulator and Wheeled Robot Extension Split and split Python APIs, examples, and OmniGraph nodes into the new packages. |
Robot commands and graph nodes execute during playback. |
Robot motion generation |
Use Robot Motion Generation APIs and move to the experimental motion-generation API plus cuMotion or PINK. |
Known start and goal states still satisfy error and collision checks. |
Extension Template Generator |
Use Extension Template Generator to CLI Templates and generate
new extensions with |
Generated extension builds and its startup test passes. |
Robot Wizard and mesh merge |
Use Robot Wizard and Mesh Merge Tool Migration; split the old wizard workflow across importers, robot setup tools, XRDF editor, Robot Schema, Asset Transformer, and Scene Optimizer. |
Saved robot assets reload with valid schema, joints, drives, and mesh optimization. |
|
Existing actor SDG configs load through the 1.x schema. |
|
Surface gripper compiled-binding imports |
Use Surface Gripper Bindings; update deep imports of
|
Migrated imports resolve and the gripper interface acquires. |
Benchmark services |
Use Benchmark Services Migration and replace constructor flags
such as |
Benchmark output still contains every KPI consumed by dashboards and CI. |
|
Use |
Content Browser opens the expected SimReady folders. |
|
Install PyTorch and related ML dependencies directly, or explicitly enable the deprecated extension only for a legacy workflow. |
ML imports resolve from the project environment. |
Removed app selector, benchmark examples, Scene Blox, asset browser, and ML archive |
Use Removed Tools and Replacements. Remove no-replacement
dependencies, migrate asset browser usage to |
App manifests no longer enable removed extensions, and startup logs have no missing-extension errors. |
Validation Plan#
Use a layered validation pass after each migrated workflow:
Static inventory: search manifests, imports, launch files, and saved graph assets for deprecated extension names.
Startup smoke test: start the app or extension with the migrated dependency set and fail on missing-extension, missing-node, or import errors.
Runtime smoke test: run at least one reset, one simulation step, and any workflow-specific output path such as render products, ROS messages, writers, robot commands, or saved USD assets.
Data compatibility test: replay or convert representative saved artifacts, including MobilityGen recordings, USD Action Graphs, robot USDs, and ROS launch files.
Regression comparison: compare a small known scene against the 5.x baseline using the project metric that matters: joint error, transform count, sensor frames, annotations, writer rows, or launch success.
Do not consider a migration complete because imports resolve. Many 6.0 changes affect lifecycle ownership, graph data flow, USD authoring, and package layout, so the migrated path must run through the same state transitions used by the customer workflow.