Fix OvPhysX Kit visualizer guard#5805
Conversation
Reject unsupported OvPhysX plus Kit visualizer runs before AppLauncher starts, and document the kit-less visualizer requirement.
Greptile SummaryThis PR adds an early-exit guard in
Confidence Score: 5/5Safe 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
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]
Reviews (1): Last reviewed commit: "Fix OvPhysX Kit visualizer guard" | Re-trigger Greptile |
|
@matthewtrepte could you take a quick look to validate? |
Signed-off-by: Kelly Guo <kellyg@nvidia.com>
Description
Adds an early launcher error for
--viz kitwithpresets=ovphysx, beforeAppLauncherstarts, 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
Screenshots
N/A. This is a launcher validation and documentation change.
Checklist
pre-commitchecks with./isaaclab.sh --formatsource/<pkg>/changelog.d/for every touched package (do not editCHANGELOG.rstor bumpextension.toml— CI handles that)CONTRIBUTORS.mdor my name already exists thereTest 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 -fFocused tests emit existing deprecation warnings from shared config classes.