Fix beta2 compatibility with Isaac Sim 6.1 - #7546
Conversation
Greptile SummaryThis 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.
Confidence Score: 4/5The 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
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]
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() |
There was a problem hiding this comment.
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
There was a problem hiding this comment.
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 unselectedPhysicsvariant 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() |
There was a problem hiding this comment.
🟡 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.
|
run-ci |
|
run-ci |
|
run-ci |
|
run-ci |
|
run-ci |
|
run-ci |
|
@dependabot run-ci |
|
run-ci |
|
run-ci |
|
run-ci |
|
run-ci |
|
run-ci |
Description
Fixes compatibility between the release/3.0.0-beta2 branch and Isaac Sim 6.1.
This change:
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
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:
Known unrelated limitations:
Checklist