Isaac Sim Migration

SkillDev tools

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.

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the Isaac Sim Migration skill

What this skill tells your AI

The instructions your AI receives, as published by isaac-sim/isaacsim in skills/isaac-sim-migration/SKILL.md and read by ahel’s review.

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 / symptomCauseSolution
audit_isaac_sim_6_0.py not foundRunning against an installed package instead of a source checkoutCopy the script from the Isaac Sim repository into the project and run it with any Python 3
Audit reports nothing but the app still breaksStatic scan cannot see dynamic imports, generated files, or binary USD layersFall 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 projectGate on --fail-on required and triage review findings manually
Imports resolve but behavior changedMigration changed timing, authored USD schemas, graph data flow, or output metadataRun the empirical smoke test for that workflow instead of relying on import success
Deprecated extension imports cleanlyDeprecation is logged as a warning, not an errorTreat 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:

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:

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:

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:

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:

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:

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:

"$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.

Signals

GitHub stars
4k
Forks
539
Last commit
Sep 2026
Advanced
Catalog kind
skill
Gateway key
isaac-sim-migration
Source
github.com/isaac-sim/isaacsim