Skip to content

Restore the sensor USD replication default - #6945

Merged
kellyguo11 merged 2 commits into
isaac-sim:developfrom
nvsekkin:esekkin/restore-kitless-sensor-usd-replication
Aug 7, 2026
Merged

Restore the sensor USD replication default#6945
kellyguo11 merged 2 commits into
isaac-sim:developfrom
nvsekkin:esekkin/restore-kitless-sensor-usd-replication

Conversation

@nvsekkin

@nvsekkin nvsekkin commented Aug 6, 2026

Copy link
Copy Markdown
Collaborator

Description

rendering-correctness-kitless (legacy) is red on develop:

RuntimeError: Number of camera prims in the view (1) does not match the number of environments (4).

Reverting #6904 to get the pipeline back to green. Then we will follow up with a fix.

Type of change

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

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

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.

@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

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-apps

greptile-apps Bot commented Aug 6, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

The PR restores USD replication as the default sensor cloning context so kitless multi-environment runs create sensor prims for every environment.

  • Changes SensorBaseCfg.cloning_contexts to request UsdReplicateContext.
  • Updates the focused default-value test.
  • Adds a changelog entry describing the kitless replication fix.

Confidence Score: 5/5

The 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

Filename Overview
source/isaaclab/isaaclab/sensors/sensor_base_cfg.py Restores explicit USD-only cloning as the default for sensor configurations.
source/isaaclab/test/cloner/test_replicate_session.py Updates the regression assertion to cover the restored sensor cloning default.
source/isaaclab/changelog.d/esekkin-restore-kitless-sensor-usd-replication.rst Documents the restoration of sensor prim replication on kitless backends.

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.
@nvsekkin nvsekkin changed the title Restore USD replication for kitless sensor cloning Restore the sensor USD replication default Aug 6, 2026
@nvsekkin
nvsekkin marked this pull request as draft August 6, 2026 17:34
The class should inherit from :class:`isaaclab.sensors.sensor_base.SensorBase`.
"""

cloning_contexts: tuple[str | type, ...] | None = ()

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.

I don't think this is correct, this will force usd replication in pure newton path where we want to skip

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.

@ooctipus this is just reverting #6904 to get the pipeline back to green. I believe @StafaH is looking into getting this back on develop right after.

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.

what about I expedite the @StafaH fix and merge that?

@github-actions github-actions Bot added the isaac-lab Related to Isaac Lab team label Aug 6, 2026
@nvsekkin
nvsekkin requested a review from ooctipus August 7, 2026 00:34
@nvsekkin
nvsekkin marked this pull request as ready for review August 7, 2026 00:35
@kellyguo11
kellyguo11 merged commit 1014257 into isaac-sim:develop Aug 7, 2026
47 of 49 checks passed
ooctipus added a commit to StafaH/IsaacLab that referenced this pull request Aug 7, 2026
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.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

isaac-lab Related to Isaac Lab team

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants