Restore the sensor USD replication default - #6945
Conversation
Sensors stopped requesting UsdReplicateContext, and replicate() only adds that context automatically when a cfg has a spawner and Kit is running. Kitless runs therefore authored a spawned camera under env_0 alone. OVPhysX resolves its frame view by matching prim paths on the stage, so Camera._initialize_impl raised a per-environment count mismatch on every manager-based OVPhysX rendering scene, taking the rendering-correctness-kitless gate red on franka_cloth, franka_soft and lift_kuka_homo. Newton reads the same view from its own model and kept passing, and the post-merge subset only selects cartpole, so develop stayed green while every full-matrix PR run failed. Restore the default so sensors ask for USD replication outright, and cover it with a test that drives replicate() against an in-memory stage with Kit reported absent.
There was a problem hiding this comment.
Isaac Lab Review Bot
The change restores the explicit USD replication default for sensors, ensuring kitless backends receive per-environment sensor prims. Documentation, changelog, and regression coverage consistently reflect the restored behavior.
- Design and architecture: The fix uses the existing replication-context abstraction: sensors explicitly request USD-only replication while backend physics-context selection and Kit-gated automatic USD replication remain unchanged.
- API: The public field retains its existing name and type while restoring its pre-#6904 default. No public symbols are added, removed, or renamed, and the documentation references use public API paths.
- Implementation: The string-form UsdReplicateContext request is exercised through the replication dispatch path, and the regression test verifies that a kitless run authors the sensor prim in the second environment. The test uses the shared replication queue and therefore depends on replicate() continuing to drain that queue, consistent with the existing test pattern.
No blocking issues. No inline issue met the actionable-evidence threshold; the assessment above records the review feedback.
Automated review; human maintainers own approval decisions.
Greptile SummaryThe PR restores USD replication as the default sensor cloning context so kitless multi-environment runs create sensor prims for every environment.
Confidence Score: 5/5The code changes appear safe to merge, although the PR remains explicitly marked as a draft by its author. No blocking failure remains. Important Files Changed
Reviews (2): Last reviewed commit: "Reduce the change to the default revert" | Re-trigger Greptile |
Drop the docs clause, the stage-level test and the expanded docstring so the branch carries only the default and the assertion that pins it.
| The class should inherit from :class:`isaaclab.sensors.sensor_base.SensorBase`. | ||
| """ | ||
|
|
||
| cloning_contexts: tuple[str | type, ...] | None = () |
There was a problem hiding this comment.
I don't think this is correct, this will force usd replication in pure newton path where we want to skip
There was a problem hiding this comment.
what about I expedite the @StafaH fix and merge that?
Drop the temporary kitless USD replication default from isaac-sim#6945. OVPhysX FrameView now expands source-only camera prims from the clone plan, so sensors no longer need to author destination prims.
Description
rendering-correctness-kitless (legacy)is red ondevelop:Reverting #6904 to get the pipeline back to green. Then we will follow up with a fix.
Type of 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 there