Skip to main content

isaac-sim-migration

Audit and validate Isaac Sim release migrations; currently covers 5.1 to 6.0. Do NOT use for new-project setup or unrelated runtime bugs.

Source facts

Repository
isaac-sim/IsaacSim
Last source activity
September 18, 2026 at 16:05
Detected SKILL.md language
English
Stars
4,243
Forks
571

Install options

The review-first prompt is selected by default. You can switch to a direct command or download a local copy.

Review the source files

Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.

File Explorer
2 files

Showing SKILL.md

SKILL.md
Source instructions · Read-only preview
name
isaac-sim-migration
description
Audit and validate Isaac Sim release migrations; currently covers 5.1 to 6.0. Do NOT use for new-project setup or unrelated runtime bugs.
license
Apache-2.0
metadata
{"author":"Hammad Mazhar <info@nvidia.com>"}
# Isaac Sim Migration ## Purpose Move a project from one Isaac Sim release to another: inventory the affected surfaces with the release audit tool, triage findings into owned work, and prove each workflow still behaves correctly in the target release. This skill currently covers Isaac Sim 5.1 -> 6.0; for projects that skip releases, see "Migrating Across Releases" below. ## Prerequisites - An Isaac Sim source checkout that provides `source/tools/isaac_sim_migration/audit_isaac_sim_6_0.py`, or a copy of that script placed in the project. - Python 3 on `PATH`. The audit tool uses only the standard library. - `$WORKSPACE_DIR` pointing at the project being migrated. - A built or installed target-release Isaac Sim for the runtime validation step. ## Limitations - Covers Isaac Sim 5.1 -> 6.0 only; other hops need that release's own audit tool. - The audit is a static inventory helper, not a complete analyzer. It can miss project wrappers, generated files, binary USD layers, dynamic imports, custom OmniGraph nodes, extension settings, and behavior that appears only at runtime. - A clean report is not proof that the project is migrated. - The installed Isaac Sim 6.0 package does not bundle `tools/isaac_sim_migration/`. ## Troubleshooting | Error / symptom | Cause | Solution | |---|---|---| | `audit_isaac_sim_6_0.py` not found | Running against an installed package instead of a source checkout | Copy the script from the Isaac Sim repository into the project and run it with any Python 3 | | Audit reports nothing but the app still breaks | Static scan cannot see dynamic imports, generated files, or binary USD layers | Fall back to runtime validation per workflow; do not treat a clean report as done | | CI fails on `review` findings | `--fail-on` set too broadly for the project | Gate on `--fail-on required` and triage `review` findings manually | | Imports resolve but behavior changed | Migration changed timing, authored USD schemas, graph data flow, or output metadata | Run the empirical smoke test for that workflow instead of relying on import success | | Deprecated extension imports cleanly | Deprecation is logged as a warning, not an error | Treat the warning as a migration finding and move to the replacement extension | ## Instructions ### 1. Scope first Before editing code, identify: - Source and target Isaac Sim versions. - Install type: source checkout, binary package, container, or pip packages. - Customer-owned surfaces: app `.kit` files, extension dependencies, Python, USD/USDA stages, Action Graphs, ROS 2 workspaces, robot assets, sensor configs, benchmark scripts, CI jobs, and generated data pipelines. - Runtime smoke tests that prove the workflow still behaves correctly. For Isaac Sim 5.1 -> 6.0, start with the 6.0 migration guide and the project audit tool in `source/tools/isaac_sim_migration/audit_isaac_sim_6_0.py`. ### 2. Run the static audit Run the audit tool from an Isaac Sim source checkout: ```bash python source/tools/isaac_sim_migration/audit_isaac_sim_6_0.py "$WORKSPACE_DIR" --max-results 0 ``` For automation, use JSON output. The default exit code is success so teams can collect migration inventory without breaking CI: ```bash python source/tools/isaac_sim_migration/audit_isaac_sim_6_0.py "$WORKSPACE_DIR" --json --max-results 0 ``` Gate only when the project explicitly wants unresolved findings to fail CI: ```bash python source/tools/isaac_sim_migration/audit_isaac_sim_6_0.py "$WORKSPACE_DIR" --fail-on required ``` Do not gate on `review` findings without project-specific triage rules. ### 3. Triage findings Treat each finding as an owner assignment: - `required`: likely breaking or removed behavior; assign a workflow owner and validate before closing. - `review`: migration inventory; inspect manually and validate if the code path is active in the project. Do not clear a finding because imports resolve. Isaac Sim migrations often change timing, authored USD schemas, graph data flow, package layout, and output metadata without producing immediate import errors. A deprecated extension may also import successfully while logging a deprecation warning; treat those warnings as migration findings and move the workflow to the replacement extension. ### 4. Validate at runtime For each affected workflow, run an empirical smoke test in the target Isaac Sim release: - Extension/app: start with the migrated dependency set and open one stage. - Simulation: reset, step, and verify expected prim/articulation state. - Sensors: create or load the sensor, step frames, and inspect cadence and output fields. - Action Graphs: open the USD, let deprecation-manager graph migration run, save a migrated layer, then reopen it. - ROS 2: launch, publish/subscribe one message path, and verify frame IDs, message fields, QoS-sensitive behavior, and package names. - Robot assets: verify catalog path, validation status, articulation load, mimic joints, and importer/exporter round trip where relevant. - Benchmarks: run one warmup and one measured phase; compare KPI names and recorder output shape against the old baseline. Record evidence: target Isaac Sim version, command, app experience, input asset or workspace, expected 5.x behavior, observed 6.0 behavior, pass/fail result, and owner for remaining gaps. ## Examples Audit a customer workspace and read the full inventory: ```bash export WORKSPACE_DIR=/path/to/customer_project python source/tools/isaac_sim_migration/audit_isaac_sim_6_0.py "$WORKSPACE_DIR" --max-results 0 ``` Collect the same inventory as JSON for a migration tracking ticket, without failing the job: ```bash python source/tools/isaac_sim_migration/audit_isaac_sim_6_0.py "$WORKSPACE_DIR" \ --json --max-results 0 > migration-audit.json ``` Gate a CI job on unresolved breaking findings only: ```bash python source/tools/isaac_sim_migration/audit_isaac_sim_6_0.py "$WORKSPACE_DIR" --fail-on required ``` Validate one triaged ROS 2 finding in the target release before closing it: ```bash "$ISAAC_SIM_DIR/python.sh" -c "import isaacsim; print(isaacsim.__file__)" # then launch the project's ROS 2 graph and verify one publish/subscribe path, # frame IDs, and package names against the 5.x baseline ``` ## Deprecation Warnings Use deprecation warnings as a signal, not as the only migration mechanism. `isaacsim.core.deprecation_manager` currently migrates deprecated settings and saved OmniGraph node namespaces, and logs what it changes. It is not a general system that guarantees every deprecated Python symbol warns on import or use. ## Migrating Across Releases Each release migration has its own audit tool and guides; this skill currently covers Isaac Sim 5.1 -> 6.0 via `audit_isaac_sim_6_0.py`. When a project skips releases, run each release-to-release migration in order (for example 5.1 -> 6.0, then 6.0 -> 6.1), using that release's audit tool and guides, and validate the project at each hop before starting the next one.
View on GitHub