Skip to content

Fix beta2 compatibility with Isaac Sim 6.1 - #7546

Open
kellyguo11 wants to merge 15 commits into
isaac-sim:release/3.0.0-beta2from
kellyguo11:codex/beta2-isaacsim61-compat
Open

Fix beta2 compatibility with Isaac Sim 6.1#7546
kellyguo11 wants to merge 15 commits into
isaac-sim:release/3.0.0-beta2from
kellyguo11:codex/beta2-isaacsim61-compat

Conversation

@kellyguo11

@kellyguo11 kellyguo11 commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

Description

Fixes compatibility between the release/3.0.0-beta2 branch and Isaac Sim 6.1.

This change:

  • Accepts the Newton and aiohttp releases bundled with Isaac Sim 6.1 instead of replacing their prebundled files during installation.
  • Loads the PhysX Fabric extension required by the 6.1 PhysX manager.
  • Selects the importer-generated Physics variant so converted URDF and MJCF assets compose with physics.
  • Uses usd-exchange 2.3.0 as the single standalone OpenUSD provider, avoiding duplicate pxr runtimes.
  • Retries the rare all-infinity RTX depth warm-up frame and excludes three exact crawler-blocked URLs from link CI.
  • Keeps Fabric notice suppression a no-op when usdrt is unavailable outside a live Kit application.
  • Adds renderer stabilization, updates solver-sensitive PVA tolerances, and keeps version-specific Isaac RTX rendering baselines for outputs that changed in 6.1.

The compatibility check used Isaac Sim 6.1.0-alpha.56 with Kit 110.3.0. The supplied development build had a stale generated isaacsim.asset.importer.utils carrier; its source already contained the required stage time-code APIs, so the carrier was rebuilt/repaired separately and is not part of this Isaac Lab change.

Type of change

  • Bug fix (non-breaking change which fixes an issue)

Screenshots

Not applicable. The changed images are rendering-test golden baselines.

Validation

The complete 281-file test harness was run to establish the baseline: 243 files passed, 35 failed, and 3 fresh-install files reached the outer runner timeout.

Post-fix focused validation:

  • GUI launch: 1 passed
  • URDF, MJCF, and file spawning: 39 passed
  • PPISP camera: 2 passed
  • PhysX IMU and PVA: 18 passed
  • Rendering regressions: 72 passed test executions
  • Fresh SB3 install: 1 passed
  • Wheel builder: 10 passed
  • Clean conda install: 2 passed
  • Live-Kit cloner: 16 passed
  • OVPhysX CPU selection: 265 passed, 5 skipped, 18 expected xfails
  • OVPhysX contact and frame-view GPU selection: 33 passed, 4 skipped
  • Changelog validation: 90 passed
  • Dependency compatibility regression: 3 passed
  • CLI metadata validation: 7 passed
  • uv pip check: all 239 packages compatible
  • uv run isaaclab -f: passed

Known unrelated limitations:

  • Thirteen GPU-only articulation-limit cases remain unstable in standalone ovphysx 0.4.13. The full CPU selection passes and these cases do not load Isaac Sim.
  • Three fresh-install files exceed the outer harness fixed 1000-second timeout although their pytest markers allow 1800 or 3600 seconds.

Checklist

  • I have read and understood the contribution guidelines
  • I have run the pre-commit checks with uv run isaaclab -f
  • Documentation is unchanged because this does not change a public API
  • My changes generate no new warnings
  • I have added or updated tests and golden baselines that prove the fixes are effective
  • I have added a changelog fragment for every touched package
  • My name already exists in CONTRIBUTORS.md

@kellyguo11
kellyguo11 requested a review from a team September 3, 2026 20:37
@github-actions github-actions Bot added isaac-sim Related to Isaac Sim team isaac-lab Related to Isaac Lab team labels Sep 3, 2026
@greptile-apps

greptile-apps Bot commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

This PR adapts Isaac Lab’s beta2 branch for Isaac Sim 6.1 by loading PhysX Fabric, consolidating the standalone OpenUSD provider, selecting importer-generated physics variants, and stabilizing affected rendering and solver-sensitive tests.

  • Adds the PhysX Fabric Kit dependency and makes Fabric notice suppression tolerate unavailable usdrt.
  • Authors the importer-generated Physics=physx variant after URDF/MJCF conversion.
  • Replaces overlapping OpenUSD providers with usd-exchange==2.3.0.
  • Refreshes RTX baselines and adjusts rendering and PVA test tolerances.

Confidence Score: 4/5

The cached-asset repair gap should be fixed before merging because existing URDF and MJCF conversions can remain without active physics.

The new Physics variant selection is bypassed by the established lazy-cache path, and no cache invalidation or default spawn-time fallback repairs previously generated assets.

Files Needing Attention: source/isaaclab/isaaclab/sim/converters/asset_converter_base.py

Important Files Changed

Filename Overview
source/isaaclab/isaaclab/sim/converters/asset_converter_base.py Adds automatic Physics variant selection, but performs the repair only after reconversion and therefore misses existing valid cache entries.
source/isaaclab/isaaclab/cloner/cloner_utils.py Makes Fabric notice suppression safely degrade to a no-op when usdrt is unavailable.
source/isaaclab/setup.py Consolidates standalone OpenUSD provisioning on an exact usd-exchange version; no concrete incompatibility was established.
apps/isaaclab.python.kit Loads the PhysX Fabric extension required by the updated PhysX manager.
source/isaaclab_tasks/test/rendering_test_utils.py Adjusts environment-specific rendering tolerances for Isaac Sim 6.1 output differences.
source/isaaclab_physx/test/sensors/test_pva.py Relaxes analytical angular-acceleration tolerances to account for solver-dependent finite-difference noise.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart LR
  A[URDF or MJCF input] --> B{Cached USD and hash match?}
  B -- No --> C[Run importer conversion]
  C --> D[Select Physics equals physx]
  D --> E[Spawn asset with active physics]
  B -- Yes --> F[Reuse cached USD]
  F --> G[Old unselected Physics variant remains]
  G --> H[Spawn asset without active physics]
Loading

Reviews (1): Last reviewed commit: "Fix beta2 compatibility with Isaac Sim 6..." | Re-trigger Greptile

self._convert_asset(cfg)
# the importers emit the physics payloads behind a "Physics" variant set but leave it
# unselected, which composes the asset with geometry only
self._select_physics_variant()

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Cached assets skip physics repair

When a persistent conversion directory contains an existing USD with a matching .asset_hash, the lazy-conversion branch skips _select_physics_variant(), causing previously generated URDF and MJCF assets to continue spawning without active physics until the cache is deleted or conversion is forced.

Knowledge Base Used: Simulation, rendering, and sensors

@isaaclab-review-bot isaaclab-review-bot Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Isaac Lab Review Bot

The Isaac Sim 6.1 compatibility changes cover Fabric loading, optional usdrt handling, OpenUSD provider consolidation, and importer-generated physics variant selection. One cache-integration issue remains: existing converted assets are not repaired when their source and configuration hashes still match.

  • Design and architecture: The physics variant repair is idempotent, but its integration with the converter cache is incomplete. Because it runs only during conversion, cached outputs created before this fix remain outside the repair path.
  • API: No public symbols, signatures, or return types change. The new variant-selection helper is private, and the touched packages include appropriate changelog fragments.
  • Implementation: Finding 0 is supported: _select_physics_variant() executes only in the cache-miss or forced-conversion branch, while _config_to_hash() includes configuration and source bytes but no converter implementation version. A previously cached asset with an unselected Physics variant therefore remains geometry-only after upgrading. Run the idempotent repair for cached outputs as well, or invalidate those outputs through the conversion hash.

Minor fixes needed. Posted 1 actionable finding inline.

Automated review; human maintainers own approval decisions.

self._convert_asset(cfg)
# the importers emit the physics payloads behind a "Physics" variant set but leave it
# unselected, which composes the asset with geometry only
self._select_physics_variant()

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Warning · Implementation — Cached conversions skip physics variant repair

_select_physics_variant() is called only inside the force_usd_conversion or not _usd_file_exists or not _is_same_asset branch. _config_to_hash derives the hash solely from the config dict and source asset bytes, so an asset already converted under Isaac Sim 6.1 before this fix keeps its unselected Physics variant and still composes without joints or articulation roots. Since the helper no-ops when a selection exists, invoke it after the cache check as well, or salt the conversion hash.

@kellyguo11

Copy link
Copy Markdown
Contributor Author

run-ci

@isaaclab-bot isaaclab-bot Bot added ci:run-docker Trigger the on-demand Docker and GPU CI workflow and removed ci:run-docker Trigger the on-demand Docker and GPU CI workflow labels Sep 4, 2026
@kellyguo11

Copy link
Copy Markdown
Contributor Author

run-ci

@isaaclab-bot isaaclab-bot Bot added ci:run-docker Trigger the on-demand Docker and GPU CI workflow and removed ci:run-docker Trigger the on-demand Docker and GPU CI workflow labels Sep 4, 2026
@AntoineRichard

Copy link
Copy Markdown
Collaborator

run-ci

@isaaclab-bot isaaclab-bot Bot added ci:run-docker Trigger the on-demand Docker and GPU CI workflow and removed ci:run-docker Trigger the on-demand Docker and GPU CI workflow labels Sep 4, 2026
@kellyguo11

Copy link
Copy Markdown
Contributor Author

run-ci

@isaaclab-bot isaaclab-bot Bot added ci:run-docker Trigger the on-demand Docker and GPU CI workflow and removed ci:run-docker Trigger the on-demand Docker and GPU CI workflow labels Sep 4, 2026
@kellyguo11

Copy link
Copy Markdown
Contributor Author

run-ci

@isaaclab-bot isaaclab-bot Bot added the ci:run-docker Trigger the on-demand Docker and GPU CI workflow label Sep 4, 2026
@isaaclab-bot isaaclab-bot Bot removed the ci:run-docker Trigger the on-demand Docker and GPU CI workflow label Sep 4, 2026
@kellyguo11

Copy link
Copy Markdown
Contributor Author

run-ci

@isaaclab-bot isaaclab-bot Bot added ci:run-docker Trigger the on-demand Docker and GPU CI workflow and removed ci:run-docker Trigger the on-demand Docker and GPU CI workflow labels Sep 4, 2026
@kellyguo11
kellyguo11 requested a review from ooctipus as a code owner September 4, 2026 22:06
@kellyguo11

Copy link
Copy Markdown
Contributor Author

@dependabot run-ci

@kellyguo11

Copy link
Copy Markdown
Contributor Author

run-ci

@isaaclab-bot isaaclab-bot Bot added ci:run-docker Trigger the on-demand Docker and GPU CI workflow and removed ci:run-docker Trigger the on-demand Docker and GPU CI workflow labels Sep 4, 2026
@kellyguo11

Copy link
Copy Markdown
Contributor Author

run-ci

@isaaclab-bot isaaclab-bot Bot added ci:run-docker Trigger the on-demand Docker and GPU CI workflow and removed ci:run-docker Trigger the on-demand Docker and GPU CI workflow labels Sep 4, 2026
@kellyguo11

Copy link
Copy Markdown
Contributor Author

run-ci

@isaaclab-bot isaaclab-bot Bot added ci:run-docker Trigger the on-demand Docker and GPU CI workflow and removed ci:run-docker Trigger the on-demand Docker and GPU CI workflow labels Sep 5, 2026
@kellyguo11

Copy link
Copy Markdown
Contributor Author

run-ci

@isaaclab-bot isaaclab-bot Bot added ci:run-docker Trigger the on-demand Docker and GPU CI workflow and removed ci:run-docker Trigger the on-demand Docker and GPU CI workflow labels Sep 5, 2026
@kellyguo11

Copy link
Copy Markdown
Contributor Author

run-ci

@isaaclab-bot isaaclab-bot Bot added ci:run-docker Trigger the on-demand Docker and GPU CI workflow and removed ci:run-docker Trigger the on-demand Docker and GPU CI workflow labels Sep 5, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

infrastructure isaac-lab Related to Isaac Lab team isaac-sim Related to Isaac Sim team

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants