Skip to content

bump ovrtx 0.6.0, ovstage 0.3.0, ovphysx 0.7.0 - #8858

Open
r-schmitt wants to merge 7 commits into
isaac-sim:mainfrom
r-schmitt:dev/rschmitt/ovrtx060ovstage030ovphysx070
Open

r-schmitt wants to merge 7 commits into
isaac-sim:mainfrom
r-schmitt:dev/rschmitt/ovrtx060ovstage030ovphysx070

Conversation

@r-schmitt

@r-schmitt r-schmitt commented Oct 27, 2026 •

Copy link
Copy Markdown
Collaborator

Description

Upgrade the public OV runtime set:

  • OVRTX: 0.5.1.385782 → 0.6.0.1791947691
  • OvPhysX: 0.6.4.72118723 → 0.7.0.74035321
  • OVStage: 0.2.1.385922 → 0.3.0.1791986420

Add physx-usd-schemas==25.11.2.72696984 and its approved package-specific license exception. Update compatibility documentation and ensure the kit-less container's cache directory is writable for OVRTX 0.6.

Upgrade isaacsim-asset-isolated to 6.2.0.1, resolving the missing PhysxJointAPI errors in standalone URDF/MJCF conversion. Add dependency overrides for its required urdf-usd-converter==0.3.4 and mujoco-usd-converter==0.7.0, reconciling Isaac Sim 6.2's older pins.

Update the converter cache-retry test to request an explicitly nonexistent physics variant. The new importer provides a PhysX variant for the fixed-joint fixture, invalidating the previous test assumption.

updates following review and CI/CD validation

  • Applied the existing calibrated Shadow Hand joint-friction replacements to the OvPhysX rendering scenes.
  • Fixed runtime material replacement by assigning fresh paths to replacement references. Controlled testing isolated the path-reuse regression to legacy OVRTX; the workaround passes with OVStage enabled and disabled.
  • Fixed the first-frame background-color test by initializing native transforms with a zero-duration step before capture.
  • Updated the Franka cloth, soft-body, and cable RGB goldens for OVRTX 0.6.0 after image inspection and repeated captures, without relaxing tolerances.
  • Updated the synchronous and asynchronous cartpole RGB goldens after cross-architecture validation:
    • Both x86 rendering tests pass with fresh captures.
    • All four ARM captures from two CI attempts pass against the updated goldens: 0.8902% differing pixels against the unchanged 1.5% limit, with SSIM 0.99914.
  • Corrected the Microduck demo-browser entry to newton_xpbd, matching the demo’s existing XPBDSolverCfg configuration.
  • Incorporated the URDF test changes and Isaac Sim image pin from [CI] Bump Isaac Sim image to d56c9a6ad9a2 #8768:
    • Verify that fixed-joint-only URDFs expose and select the physx variant.
    • Verify that repeated conversion failures for a nonexistent variant do not create .asset_hash.
  • Removed the obsolete OVRTX site-packages permission workaround from the kit-less Dockerfile.
  • Corrected the physx-usd-schemas license exception to account for the standalone importer executing its Python initializer in-process. The schema plugin remains codeless.
  • Removed redundant hardcoded runtime versions and release-specific implementation details from the OVPhysX documentation.
  • Regenerated uv.lock, restoring revision 5 and Open3D’s ipywidgets dependency without changing resolved package versions or sources. Verified compatibility with Docker’s pinned uv version.

Type of change

  • ov libraries dependency bump

Checklist

Docker and GPU tests run on demand. Push the commits you want tested, then
comment run-ci on the pull request.

  • I have read and understood the contribution guidelines
  • I have run the pre-commit checks with uv run isaaclab --format
  • I have made corresponding changes to the documentation
  • My changes generate no new warnings
  • I have validated the changed behavior with focused coverage and applied the test-audit criteria to any test changes
  • I have added a changelog fragment under source/<pkg>/changelog.d/ for every touched package (do not edit CHANGELOG.rst or bump package versions — CI handles that)
  • I have added my name to the CONTRIBUTORS.md or my name already exists there

@r-schmitt
r-schmitt requested a review from a team October 27, 2026 21:57
@github-actions github-actions Bot added documentation Improvements or additions to documentation isaac-lab Related to Isaac Lab team infrastructure labels Oct 27, 2026
@r-schmitt

Copy link
Copy Markdown
Collaborator 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 Oct 27, 2026

@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

Needs attention: Scope and over-engineering (1), Implementation (1), Style consistency (1). Other reviewed categories look good.

  • PR description: The body covers intended changes but omits the lock revision regression and unrelated open3d dependency removal; document these effects and name the focused importer validation command or CI job.
  • Design and architecture: Architecture looks good.
  • Scope and over-engineering: Minimal implementation: keep dependency ownership in pyproject.toml, uv.lock, source/isaaclab_ov/pyproject.toml, and tools/wheel_builder/uv-overrides.txt; keep licensing, documentation, changelog, cache ownership, and converter validation in their existing files. Delete the obsolete OVRTX site-packages chmod and its cache-specific comment; no source modules were added. Scope is cohesive; no split recommended.
  • API: API changes look good.
  • Compatibility and deprecation: No breaking changes identified.
  • Implementation: uv.lock regresses format revision 5 to 3 and drops open3d’s ipywidgets dependency, indicating regeneration with an older uv; regenerate it with the repository uv version.
  • Style consistency: The OVPhysX documentation uses a configured version substitution but hardcodes adjacent OVRTX and OVStage pins; use their corresponding substitutions to prevent drift.
  • Test quality: Test quality looks good.

Minor fixes needed. Posted 3 inline findings.

Automated review; human maintainers own approval decisions.

Comment thread docker/Dockerfile.kitless Outdated
Comment thread docs/source/concepts/physics-backends/ovphysx.rst Outdated
Comment thread uv.lock Outdated
@greptile-apps

greptile-apps Bot commented Oct 27, 2026 •

Copy link
Copy Markdown
Contributor

RetriggerView in GreptileConfidence Score: 5/5

[Medium impact] The PR appears safe to merge; no actionable issues were found.

Summary

Updates the public OV runtimes together and adds the external PhysX schemas required by OvPhysX 0.7.

  • The OV extras install a matched set of renderer, physics, and stage runtimes.
  • Standalone URDF and MJCF conversion uses the updated importer and converter packages.
  • The kit-less container gives OVRTX 0.6 a writable runtime cache.

No actionable issues were found. Runtime tests were not run.

Reviews (1) · Last reviewed commit: "use isaacsim-asset-isolated 6.2.0.1" · Reviewed by Greptile

@marcodiiga

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 Oct 28, 2026

@marcodiiga marcodiiga left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Reviewed 7b3919d. No P0 issue found; approving at that threshold, with two P2 integration follow-ups and one P3 metadata correction below.

The external PhysX schema setup is correct: both physics extras install the pinned provider, the physics backend discovers and validates both schema families without importing the provider, and registration reaches OVStage before population and the host USD registry before stage creation. The 19 compatibility tests pass locally. A focused check using the published runtime wheels and the existing registration method preserved an authored disableGravity value in CPU simulation; omitting OVStage registration was rejected at attachment.

The existing exact-head CI passed isaaclab_ov and the URDF/MJCF converter files (including the changed retry test). CI is not fully green: the Shadow Hand and live-rendering failures need follow-up, and the Kit demo timeout remains unclassified. A fresh run-ci request is running against the same head: https://github.com/isaac-sim/IsaacLab/actions/runs/40748890229.

Comment thread pyproject.toml
ovphysx = ["ovphysx==0.6.4.72118723", "ovstage==0.2.1.385922"]
ovrtx = ["ovrtx==0.5.1.385782", "ovstage==0.2.1.385922"]
ov = [
"ovphysx==0.7.0.74035321",

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

[P2] Apply the existing friction migration to the remaining Shadow Hand scenes

Making OVPhysX 0.7 the default leaves the Shadow Hand rendering scenes without the migration profile already used by the task presets. make_rendering_scene_spec("shadow_hand", "ovphysx") returns no physics_cfg, so build_rendering_scene creates a default OvPhysxCfg with no legacy_joint_friction_replacements. Both legacy-shadow_hand-ovphysx-ovrtx and legacy-shadow_hand-ovphysx-newton_warp then fail before rendering with the legacy joint-friction ValueError.

Please pass the existing calibrated SHADOW_HAND_FRICTION_REPLACEMENTS into these scene configurations so they remain runnable with the new default. Exact-head failure: https://github.com/isaac-sim/IsaacLab/actions/runs/40590997539/job/122503127709.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

Applied the existing calibrated SHADOW_HAND_FRICTION_REPLACEMENTS to the OvPhysX Shadow Hand rendering scene configuration. Both affected renderer combinations passed local verification, and these failures are absent from the latest reviewed CI run. No new friction calibration was introduced.

Comment thread pyproject.toml
ovrtx = ["ovrtx==0.5.1.385782", "ovstage==0.2.1.385922"]
ov = [
"ovphysx==0.7.0.74035321",
"ovrtx==0.6.0.1791947691",

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

[P2] Resolve the live rendering failures with the upgraded runtime set

Exact-head CI now fails test_newton_rtx_motion_pause_and_markers because a later material change does not reach the recorded pixels, on both x86 and ARM. The x86 scene-sky/background-override case also fails. These cases pass in comparison run 40669257023 with the old runtime pins.

Please investigate the material-update and background/lighting behavior with OVRTX 0.6. The three Newton/OVRTX deformable image comparisons also exceed their tolerances; those need image inspection to distinguish expected renderer changes from defects. I have not isolated the cause within the renderer, so I would not treat the image differences alone as proof of a rendering bug or simply increase the tolerances.

https://github.com/isaac-sim/IsaacLab/actions/runs/40590997539/job/122503127380
https://github.com/isaac-sim/IsaacLab/actions/runs/40590997539/job/122503127709

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

  • Material updates: The controlled reproduction isolated the removed-reference/path-reuse regression to the legacy OVRTX path. Replacement references now receive fresh paths; local verification passes with OVStage both enabled and disabled.
  • Background override: The first legacy GPU capture used the camera’s stale authored world transform, placing the foreground object outside the image. Initializing native transforms with a zero-duration step before capture resolves this; all seven visualizer tests passed locally.
  • Cloth, soft body, and cable: We inspected the images and repeated captures, including additional soft-body runs to examine variability. We updated the three RGB goldens for OVRTX 0.6.0 without relaxing any comparison tolerances. These deformable comparisons pass in the latest reviewed x86 CI run.

"package_type": "Python",
"license": "LicenseRef-NVIDIA-Omniverse",
"usage": "runtime_dependency",
"interaction": "not_loaded",

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

[P3] Account for the standalone importer's in-process schema import

The OVPhysX path reads the schema resources without importing the provider, but the standalone importer has another path: isaacsim-asset-isolated 6.2.0.1's physx_types.py calls importlib.import_module("physx_usd_schemas") when the host has no PhysX plugin yet. The kit-less image installs both packages. I verified that this executes the schema package's Python initializer and registers its plugin.

Please describe that in-process import in this entry rather than declaring the package not_loaded. The schema plugin is still codeless; the inaccurate part is the claim that the package is never loaded.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

Corrected the entry from not_loaded to same_process_dynamic. The description now explicitly accounts for the standalone importer executing the provider’s Python initializer in-process to register the schema plugin. It retains the distinction that the schema plugin is codeless and no compiled plugin is loaded.

@r-schmitt

Copy link
Copy Markdown
Collaborator 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 Oct 28, 2026
Use ``--extra ov`` to install both public OvPhysX and OVRTX runtimes. The combined
extra pairs OVRTX 0.5.1.385782 with OVStage 0.2.1; OVRTX 0.4.1 is not compatible
with this runtime combination.
extra pairs OVRTX 0.6.0.1791947691 with OVStage 0.3.0.1791986420. Upgrade these

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.

we can also replace this the hardcoded version with |ovphysx_version|

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

Removed the redundant runtime-version literals from this paragraph. The installation requirement already uses |ovphysx_version| the combined-extra paragraph now refers to the compatible runtime set resolved by the repository’s dependency pins.


Opt-in OVPhysX 0.7 support
~~~~~~~~~~~~~~~~~~~~~~~~~~
OVPhysX 0.7 support

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.

is this section necessary for the docs? seems like we'll need to maintain this for every new version.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

Removed the release-specific “OVPhysX 0.7 support” framing and the implementation-status paragraph. The remaining section is titled “Schema registration” and documents the behavior that users need to understand, without repeating the current package versions

fixed_physics_backend="newton_mjwarp",
visualizers=(None, "newton_gl", "rerun", "viser"),
),
"examples/demos/microduck_warehouse.py": ScriptOverride(fixed_physics_backend="newton_xpbd"),

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.

is this correct? I'm not sure if xpbd is used for any of the examples

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.

@AntoineRichard for viz

fix_base=True,
usd_dir=output_dir,
physics_variant="physx",
physics_variant="missing_test_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.

this should be addressed now in #8768

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

Incorporated the upstream test changes and the corresponding Isaac Sim image pin from #8768.

@r-schmitt

Copy link
Copy Markdown
Collaborator 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 Oct 29, 2026
@r-schmitt

Copy link
Copy Markdown
Collaborator 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 Oct 29, 2026

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation infrastructure isaac-lab Related to Isaac Lab team

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants