Skip to content

Fix OvPhysX Kit visualizer guard#5805

Open
AntoineRichard wants to merge 2 commits into
isaac-sim:developfrom
AntoineRichard:antoiner/ovphysx-kit-visualizer-guard
Open

Fix OvPhysX Kit visualizer guard#5805
AntoineRichard wants to merge 2 commits into
isaac-sim:developfrom
AntoineRichard:antoiner/ovphysx-kit-visualizer-guard

Conversation

@AntoineRichard
Copy link
Copy Markdown
Collaborator

Description

Adds an early launcher error for --viz kit with presets=ovphysx, before AppLauncher starts, because OvPhysX cannot share a process with the Kit USD/plugin stack. Updates the OvPhysX backend, visualization, and Hydra preset docs with the supported alternatives.

Fixes: N/A

Type of change

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

Screenshots

N/A. This is a launcher validation and documentation change.

Checklist

  • I have read and understood the contribution guidelines
  • I have run the pre-commit checks with ./isaaclab.sh --format
  • I have made corresponding changes to the documentation
  • My changes generate no new warnings
  • I have added tests that prove my fix is effective or that my feature works
  • I have added a changelog fragment under source/<pkg>/changelog.d/ for every touched package (do not edit CHANGELOG.rst or bump extension.toml — CI handles that)
  • I have added my name to the CONTRIBUTORS.md or my name already exists there

Test Plan

  • ./isaaclab.sh -p -m pytest source/isaaclab_tasks/test/test_sim_launcher_visualizer_intent.py source/isaaclab_tasks/test/test_preset_kit_decision.py -q
  • ./isaaclab.sh -f

Focused tests emit existing deprecation warnings from shared config classes.

Reject unsupported OvPhysX plus Kit visualizer runs before AppLauncher starts, and document the kit-less visualizer requirement.
@github-actions github-actions Bot added documentation Improvements or additions to documentation isaac-lab Related to Isaac Lab team labels May 27, 2026
@greptile-apps
Copy link
Copy Markdown
Contributor

greptile-apps Bot commented May 27, 2026

Greptile Summary

This PR adds an early-exit guard in launch_simulation that raises a ValueError when --viz kit is requested alongside the ovphysx preset, preventing a dynamic-linker crash that would otherwise occur when the two incompatible plugin stacks are loaded in the same process. Documentation in three .rst files and a changelog fragment are updated to surface the restriction to users.

  • sim_launcher.py extends the existing single-predicate _scan_config call into a two-predicate check (ovrtx renderer + OvPhysX physics) and raises a descriptive ValueError for the new case before AppLauncher is started.
  • test_sim_launcher_visualizer_intent.py adds a test that verifies the guard fires before AppLauncher.__init__ is reached, using a _FailingAppLauncher sentinel.

Confidence Score: 5/5

Safe to merge — the change is a narrow, additive validation that fires before any mutable state is touched and is covered by a dedicated test.

The guard follows the exact same structure as the pre-existing ovrtx check, the name-based type detection is consistent with the existing _is_kitless_physics pattern in the same file, and the test demonstrates the ValueError is raised before AppLauncher initializes. Documentation changes are accurate and do not affect runtime behaviour.

No files require special attention.

Important Files Changed

Filename Overview
source/isaaclab_tasks/isaaclab_tasks/utils/sim_launcher.py Adds _is_ovphysx_physics predicate and extends the --viz kit guard to cover OvPhysX physics configs; logic is correct and consistent with the pre-existing ovrtx guard.
source/isaaclab_tasks/test/test_sim_launcher_visualizer_intent.py New test verifies the ValueError is raised before AppLauncher starts; the _FailingAppLauncher sentinel correctly proves the early-exit behaviour.
docs/source/overview/core-concepts/visualization.rst Updates the opening paragraph to note the OvPhysX / Kit visualizer incompatibility; wording is accurate and actionable.
docs/source/features/hydra.rst Adds incompatible with --viz kit note to the ovphysx row of the backend presets table; accurate and concise.
docs/source/overview/core-concepts/physical-backends/ovphysx/index.rst Adds a warning admonition explaining why Kit + OvPhysX cannot coexist and lists the supported visualizer alternatives.
source/isaaclab_tasks/changelog.d/antoiner-ovphysx-kit-visualizer.rst Changelog fragment accurately describes the new validation error; follows the project's fragment format.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
    A[launch_simulation called] --> B{kit in visualizer types?}
    B -- No --> G[compute_kit_requirements]
    B -- Yes --> C[_scan_config: ovrtx renderer + OvPhysX physics]
    C --> D{has_ovrtx?}
    D -- Yes --> E[raise ValueError: kit incompatible with ovrtx_renderer]
    D -- No --> F{has_ovphysx?}
    F -- Yes --> H[raise ValueError: kit incompatible with ovphysx]
    F -- No --> G
    G --> I{needs_kit?}
    I -- Yes --> J[launch AppLauncher / Kit]
    I -- No --> K[kitless path: sync visualizer settings]
    J --> L[yield - simulation runs]
    K --> L
    L --> M[finally: close AppLauncher if opened]
Loading

Reviews (1): Last reviewed commit: "Fix OvPhysX Kit visualizer guard" | Re-trigger Greptile

@AntoineRichard
Copy link
Copy Markdown
Collaborator Author

@matthewtrepte could you take a quick look to validate?

Signed-off-by: Kelly Guo <kellyg@nvidia.com>
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 isaac-lab Related to Isaac Lab team

Projects

Status: No status

Development

Successfully merging this pull request may close these issues.

3 participants