Skip to content

[Backport release/3.0.0] Complete September 17-19 develop backports - #7904

Merged
ooctipus merged 2 commits into
isaac-sim:release/3.0.0from
ooctipus:backport/develop-sep17-19-release-3.0
Sep 20, 2026
Merged

ooctipus merged 2 commits into
isaac-sim:release/3.0.0from
ooctipus:backport/develop-sep17-19-release-3.0

Conversation

@ooctipus

@ooctipus ooctipus commented Sep 19, 2026

Copy link
Copy Markdown
Collaborator

Description

Backports ten develop PRs to release/3.0.0, including the PyTorch 2.12/CUDA 13.0 upgrade, the near-singular OSC fix, and the complete cfg-first cloning and schema-fragment migrations.

The audit covers September 17, 2026 00:00 UTC through develop commit 4269c29a39e463dd07c74a9704d890d7a5c01e08 (September 19, 23:55 UTC), against release base 970d21ef48057a2efc3d749c0f2abab8e7e0c30e.

Source PR Included change
#7777 Refresh Newton solver transforms after fixed-root pose writes
#7608 Make direct cloning cfg-first, including assets, callers, templates, tests, and migration documentation
#7895 Apply the existing CI exclusion for Franka cable/cloth/soft kitless rendering tests
#7872 Load the CUDA runtime matching PyTorch for Newton graph capture
#7831 Check authored Newton mesh-collision schema tokens correctly
#7834 Build documentation with the extra that provides Sphinx
#7838 Migrate maintained consumers to physics schema fragments, including readers and overrides
#7840 Consistently name Isaac Lab 3.1 as the deprecation removal release
#7903 Handle near-singular operational-space control
#7674 Upgrade PyTorch to 2.12, TorchVision to 0.27, and the CUDA stack to 13.0, including installer, wheel, and cuRobo compatibility changes

All 305 changed non-lock files match the audited develop snapshot exactly. The remaining file, uv.lock, matches that snapshot after substituting the package versions from the release branch's existing manifests; all 418 package entries were checked. Existing release package versions, compiled changelogs, documentation routing, and OVRTX compatibility code remain intact, including the #7880 revert. Source commit hashes are recorded in the commit messages.

Already present

#7866, #7870, #7867, #7869, and #7868 were included in #7851; #7819 was backported by #7884; #7883, #7885, and #7887 were backported by #7889. #7874, #7888, #7773, #7886, and #7042 were also already present.

The three automatic changelog/version compilation commits are excluded; the release branch compiles its own fragments and maintains its own versions.

Type of change

  • Release integration/backport
  • Bug fixes and documentation updates
  • Breaking changes already accepted for the 3.0 cloning and schema migrations; their migration guidance and changelog fragments are included

Validation

  • uv run --no-sync isaaclab -f: all checks passed using the existing shared environment and the release base for changelog validation.
  • Focused cloning, OSC feature, schema parity/shim, CLI, and task configuration suite: 283 passed.
  • Newton fixed-root updates and CUDA runtime/capture regressions: 14 passed.
  • Complete OSC simulation suite: 21 passed.
  • Mesh-collision fragments: 17 passed; cfg-first cloning integration: 16 passed; scene construction/ownership: 7 passed.
  • The above 358 tests passed with PyTorch 2.11.
  • With PyTorch 2.12/CUDA 13.0: installer/metadata/Docker tests 91 passed; CPU/GPU OSC feature tests 17 passed; complete OSC simulation suite 21 passed.
  • uv lock --check: passed; release package manifests match their lockfile entries.
  • Repository skill validation: 23 skills passed.
  • File-by-file source audit, release-metadata preservation checks, and git diff --check: passed.

Local simulation used RTX 5090 and Isaac Sim 6.0.1 with PyTorch 2.11 and 2.12. The full Docker image build and fresh installation matrix were not rerun locally for this backport. Release CI uses its pinned Isaac Sim 6.1 image and remains the authoritative full integration check. Kit-dependent suites run in separate processes to avoid loading standalone USD before Kit.

Release backport

Not applicable: this PR targets release/3.0.0 directly.

Checklist

  • Ran the complete pre-commit command.
  • Included the original migration documentation, regression tests, and changelog fragments for every changed package.
  • Preserved source attribution and recorded every source commit.
  • Preserved the release branch's versions and existing release-specific changes.

Apply the nine missing merged PRs from the September 17-19 audit as a
coherent release integration. Preserve release versions, compiled
changelogs, documentation routing, and existing OVRTX compatibility code.

Source commits:
f8e37e0 (isaac-sim#7777)
0b10de8 (isaac-sim#7608)
9a8fa01 (isaac-sim#7895)
3707542 (isaac-sim#7872)
fa3687d (isaac-sim#7831)
9bae4fd (isaac-sim#7834)
5d3ad0d (isaac-sim#7838)
8c3aa87 (isaac-sim#7840)
f757670 (isaac-sim#7903)

Co-authored-by: vidurv-nvidia <vidurv@nvidia.com>
@ooctipus
ooctipus requested a review from a team September 19, 2026 22:57
@github-actions github-actions Bot added documentation Improvements or additions to documentation asset New asset feature or request isaac-mimic Related to Isaac Mimic team infrastructure labels Sep 19, 2026
@ooctipus ooctipus added the ci:run-docker Trigger the on-demand Docker and GPU CI workflow label Sep 19, 2026
@greptile-apps

greptile-apps Bot commented Sep 19, 2026

Copy link
Copy Markdown
Contributor

RetriggerConfidence Score: 4/5

The PR should not merge until single-fragment task configurations preserve the documented bare-fragment access contract.

Findings

  1. P1 Single fragments become lists
  2. P2 Removal versions still conflict

Summary

This backport consolidates nine develop-branch changes into release/3.0.0, chiefly moving Direct environments to configuration-owned scene construction, migrating physics settings to composable schema fragments, conditioning operational-space inertia solves near singularities, and fixing Newton runtime/state synchronization.

  • Moves assets, sensors, markers, terrain, and cloning into InteractiveSceneCfg lifecycles across Direct tasks and templates.
  • Migrates maintained asset and task configurations from legacy physics-property classes to schema fragments.
  • Adds near-singular OSC damping and dynamically consistent posture handling.
  • Updates Newton fixed-root notifications and CUDA-runtime selection.
  • Adjusts documentation, deprecation notices, rendering tests, and CI exclusions.
  • A few single-fragment task configurations remain list-valued, and some changed deprecation docstrings still announce the wrong removal release.

Diagram

%%{init: {'theme': 'neutral'}}%%
flowchart LR
    Cfg[Direct environment configuration] --> SceneCfg[InteractiveSceneCfg]
    SceneCfg --> Plan[Publish clone plan]
    Plan --> Construct[Construct assets, sensors, and markers]
    Construct --> Replicate[Replicate USD and physics state]
    Replicate --> Scene[Registered InteractiveScene]
    Scene --> Env[Direct environment task logic]
    Env --> Control[Actions and OSC]
    Control --> Backend[PhysX, Newton, or OV backend]
    Backend --> State[Asset and sensor state]
    State --> Env
Loading

Reviews (1) · Last reviewed commit: "Backport September 17-19 develop changes..."

Comment on lines +308 to +317
toy_truck_properties = [
PhysxRigidBodyCfg(
solver_position_iteration_count=16,
solver_velocity_iteration_count=1,
max_angular_velocity=1000.0,
max_linear_velocity=1000.0,
max_depenetration_velocity=5.0,
disable_gravity=False,
)
]

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.

P1 Single fragments become lists

This stores one PhysxRigidBodyCfg as a list and later assigns it to rigid_props, even though the migration contract keeps single-fragment slots bare. Code following that contract, such as cfg.scene.toy_truck.spawn.rigid_props.disable_gravity, now gets an AttributeError because rigid_props is a list. The same pattern appears in _CUBE_PROPERTIES and ASSEMBLY_PLUG_RIGID_BODY_PROPS_CFG. The new AST test does not catch these cases because the lists are assigned through variables rather than directly in keyword arguments.

Knowledge Base Used: Scene and asset composition

Comment on lines 163 to +166
.. deprecated:: 4.6.x
``DeformableBodyPropertiesCfg`` has moved to
:class:`PhysxDeformableBodyPropertiesCfg` for PhysX-specific deformable properties
and is scheduled for removal in 5.0.
and is scheduled for removal in 4.0.

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.

P2 Removal versions still conflict

This changed docstring says the alias will be removed in 4.0, while the warning emitted by the same alias says 3.1. The same contradiction remains in physics_materials_cfg.py. This undermines the deprecation sweep's goal and makes generated API documentation disagree with runtime guidance; update the remaining changed alias docstrings to 3.1.

Suggested change
.. deprecated:: 4.6.x
``DeformableBodyPropertiesCfg`` has moved to
:class:`PhysxDeformableBodyPropertiesCfg` for PhysX-specific deformable properties
and is scheduled for removal in 5.0.
and is scheduled for removal in 4.0.
.. deprecated:: 4.6.x
``DeformableBodyPropertiesCfg`` has moved to
:class:`PhysxDeformableBodyPropertiesCfg` for PhysX-specific deformable properties
and is scheduled for removal in 3.1.

Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!

@ooctipus

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 Sep 19, 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

The backport consistently propagates the cfg-first cloning and scene-ownership changes across core APIs, tasks, templates, documentation, and tests, but two internal inconsistencies remain: Warp Direct environments still invoke a scene hook that this patch removes, and several deprecation docstrings disagree with their runtime warnings about the removal release.

  • Design and architecture: The cfg-first lifecycle is broadly coherent: InteractiveScene constructs declared entities within one published ClonePlan, Direct environments delegate scene construction through cfg.scene.class_type, and maintained task implementations no longer own cloning. However, DirectRLEnvWarp still calls self._setup_scene() after this patch deletes its fallback implementation and the relevant derived overrides, leaving Warp Direct environment construction without the invoked hook.
  • API: The breaking cloning and Asset API changes include migration guidance, changelog fragments, exports, and API documentation. The deprecation-release sweep remains inconsistent in isaaclab_physx: affected alias docstrings state removal in 4.0 while their warnings state 3.1, contradicting the stated goal of presenting one removal release.
  • Implementation: The OSC conditioning, Newton fixed-root notifications, CUDA runtime selection, and schema-fragment producer/consumer migrations are backed by focused implementation paths and regression tests. Before merge, either remove the remaining DirectRLEnvWarp _setup_scene() invocation or restore a compatible hook, and align the affected deprecation docstrings with the 3.1 runtime warnings.

Minor fixes needed. Posted 2 actionable findings inline.

The full PR diff was reviewed; some supplemental surrounding file context was omitted.

Automated review; human maintainers own approval decisions.

# set the stage context for scene creation steps which use the stage
with use_stage(self.sim.stage):
self.scene = InteractiveSceneWarp(self.cfg.scene)
self.scene = self.cfg.scene.class_type(self.cfg.scene)

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.

🟡 Warning · Implementation — Warp direct env still calls removed scene hook

The constructor still calls self._setup_scene() on the next line, but this diff deletes this class's no-op _setup_scene and also removes the overrides from CartpoleWarpEnv, LocomotionWarpEnv and ReorientDirectWarpEnv. Unless this class inherits the hook from DirectRLEnv, every Warp direct environment now raises AttributeError during construction. Either drop the remaining call or keep a no-op hook.

``DeformableBodyPropertiesCfg`` has moved to
:class:`PhysxDeformableBodyPropertiesCfg` for PhysX-specific deformable properties
and is scheduled for removal in 5.0.
and is scheduled for removal in 4.0.

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.

🟡 Warning · Api — Deprecation docstrings contradict runtime warnings

This sweep changes the alias docstrings from 5.0 to 4.0 while changing the matching warnings.warn text to 3.1 (also at 304/309, 620/625, 1032/1037, and in physx/sim/spawners/materials/physics_materials_cfg.py 119/124, 294/299). Each deprecated symbol now advertises two removal releases, which is exactly the inconsistency the changelog says this change eliminates. Set the docstrings to 3.1.

@ooctipus

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 Sep 19, 2026
Upgrade PyTorch to 2.12.0 and torchvision to 0.27.0. PyTorch 2.12
includes the upstream fix for CUDA lazy initialization when NVML reports
more devices than the CUDA runtime exposes, avoiding the deferred
`device >= 0 && device < num_gpus` assertion after Kit initializes
graphics on a subset of GPUs.

PyTorch 2.12 is published for CUDA 13.0, so the supported x86_64 and
Windows installs move from the cu128 index to cu130 as well. TorchAudio
remains at 2.11.0 because it uses PyTorch stable ABI and officially
supports PyTorch 2.11 and later.

- `uv lock --check`
- `uv run isaaclab -f`
- `LD_PRELOAD=/lib/aarch64-linux-gnu/libgomp.so.1
OMNI_KIT_ACCEPT_EULA=YES uv run pytest source/isaaclab/test/cli -q` (283
passed)
- Imported torch 2.12.0+cu130, torchvision 0.27.0+cu130, and torchaudio
2.11.0+cu130; exercised torchvision NMS and torchaudio resampling
- Ran `scripts/demos/arms.py --device=cuda:0 --visualizer kit` through
setup and repeated simulation resets on a 2-GPU ARM64 system where Kit
exposes one GPU to the CUDA runtime
- Ran the SKRL ANYmal-C training flow through environment setup and
active PPO rollout

Supersedes the application-level initialization workaround in isaac-sim#7669.

- [x] <!-- backport-active-release --> Backport this pull request to the
active release branch after it merges into `develop`

---------

Co-authored-by: ooctipus <ooctipus@users.noreply.github.com>
(cherry picked from commit 4269c29)
@StafaH

StafaH commented Sep 20, 2026

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 Sep 20, 2026
@ooctipus
ooctipus merged commit ff22c52 into isaac-sim:release/3.0.0 Sep 20, 2026
59 of 60 checks passed
ooctipus added a commit that referenced this pull request Sep 20, 2026
…ters (#7839) (#7908)

## Description

Backports #7839 to `release/3.0.0`. Legacy physics schema configs and
writers emit deprecation warnings naming their schema-fragment
replacements, while the existing APIs continue to work. Includes the
migration guide, the standard `typing_extensions.deprecated`
implementation, and the original changelog fragments. The
fragment-consumer migration from #7838 is already in the release through
#7904.

Exact cherry-pick of `5889bae6e8de7a2b5a6e3ff099f82236d251cd19` onto
release commit `ff22c52891`, with no conflicts or source changes.
Preserves the source removal target of 3.2, release package versions,
and dependency pins.

## Validation

**292 tests passed** locally with PyTorch 2.12:

- Schema deprecation and compatibility tests: **230 passed**.
- Schema integration tests: **44 passed**.
- Tendon fragment tests: **18 passed**.
- `uv run --no-sync isaaclab -f`: all checks passed with changelog
validation against the release base.
- All 13 changed files match the merged source commit; `git diff
--check` passed.

Kit integration tests ran in separate processes on RTX 5090 with Isaac
Sim 6.0.1. Release CI uses its pinned Isaac Sim 6.1 image.

## Release backport

Targets `release/3.0.0` directly; no further backport requested.

Co-authored-by: vidurv-nvidia <vidurv@nvidia.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

asset New asset feature or request documentation Improvements or additions to documentation infrastructure isaac-mimic Related to Isaac Mimic team

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants