Skip to content

[5C] Move Newton deformable ownership out of contrib - #8021

Open
ooctipus wants to merge 16 commits into
isaac-sim:developfrom
ooctipus:refactor/pr5c-newton-deformable
Open

ooctipus wants to merge 16 commits into
isaac-sim:developfrom
ooctipus:refactor/pr5c-newton-deformable

Conversation

@ooctipus

@ooctipus ooctipus commented Sep 25, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

Newton deformable assets now live in isaaclab_newton, alongside Newton articulations and rigid objects. Prototype import and replication belong to the cloner; asset initialization selects the resulting native particle ranges.

  • ClonePlan.cfgs retains the asset and sensor declarations. Backend imports use those declarations and the plan's prototype/shared roots.
  • add_deformable_from_usd(builder, stage, root_path=...) imports the declared prototype's geometry and material before normal builder replication. Deformable and MPM asset constructors no longer register cloning work with the physics manager.
  • PhysX and OVPhysX derive rigid-body bindings from planned prototypes instead of walking the completed stage.
  • Fabric rendering prepares its own native body bindings; Newton physics no longer owns that rendering work.
  • Deformable defaults cover only the asset's selected particles, following articulation's selection-scoped data. Asset initialization preserves imported cloth rest angles.

Migration

Breaking: isaaclab_contrib.deformable was removed. Import Newton-specific deformable classes from isaaclab_newton.assets instead. The backend-neutral isaaclab.assets.DeformableObject and DeformableObjectCfg APIs are unchanged.

ClonePlan.cfg_rows and ClonePlan.context_rows are now cfg_source_indices and context_source_indices. Both mappings contain indices into plan.sources; plan.cfgs retains the original declarations, not copies.

The local USD importer remains necessary until Newton provides the required material import and finalized deformable selection metadata. The removal conditions are documented beside the implementation; related tracking issue: #6208.

Validation

  • All 13 deformable-asset and VBD tests passed locally, including independent pin/release, reset, and folded-cloth rest geometry.
  • The asset-scope and rest-angle regressions failed before the fix and passed afterward, extending existing tests.
  • All 56 targeted clone-plan and Newton/USD/PhysX/OVPhysX routing tests passed locally after the API rename.
  • Formatting and changelog checks passed.

Checklist

  • Followed contribution guidelines and ran formatting checks
  • Updated documentation and package changelog fragments
  • Validated import, replication, runtime selection, and rendering
  • Backport this pull request to the active release branch

@ooctipus
ooctipus requested a review from a team September 25, 2026 07:16
@github-actions github-actions Bot added documentation Improvements or additions to documentation isaac-lab Related to Isaac Lab team labels Sep 25, 2026
@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 25, 2026
@greptile-apps

greptile-apps Bot commented Sep 25, 2026 •

Copy link
Copy Markdown
Contributor

RetriggerConfidence Score: 5/5

[High risk] Moves deformable object implementation from contrib to core Newton package.

The PR appears safe to merge; no actionable regression was identified.

Summary

The PR moves Newton deformable assets, data, and kernels from contrib into Newton while retaining deprecated contrib class imports.

  • VBD now registers the deformable builder callback directly and relies on Newton’s existing teardown.
  • Existing deformable tests and documentation move or change to reflect Newton ownership.

Diagram

%%{init: {'theme': 'neutral'}}%%
flowchart LR
  A[Newton VBD manager] -->|registers builder callback| B[Deformable builder]
  C[Newton DeformableObject] -->|registers mesh entry| B
  B --> D[Newton particle model]
  E[Deprecated contrib class imports] --> C
Loading

Reviews (1) · Last reviewed commit: "Move Newton deformable ownership out of ..."

@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 Newton deformable implementation is moved from contrib into isaaclab_newton.assets.deformable_object, with VBD now registering its builder callback directly. The relocated asset and data paths preserve the existing implementation, while documented class imports remain available through deprecated contrib re-exports.

  • Design and architecture: Ownership now aligns the deformable asset, buffers, kernels, and VBD lifecycle integration within the Newton package, removing Newton’s optional contrib dependency. The direct callback registration remains idempotent and teardown is delegated to the existing NewtonManager.clear() lifecycle.
  • API: The documented DeformableObject and DeformableObjectData compatibility imports are preserved and migration guidance points users to isaaclab_newton.assets; the backend-independent asset API remains unchanged. The removed registry and hook-management functions were lower-level implementation constructs rather than documented public exports, and all repository consumers shown in the patch migrate with the ownership change.
  • Implementation: The moved asset and data implementations retain the existing nodal-state, cache-invalidation, registration, and simulation-binding behavior, with imports adjusted to the Newton-local manager and kernels. The VBD manager now owns registry initialization and callback registration without the previous optional-import path.

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.

@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 25, 2026
@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 25, 2026
Comment thread source/isaaclab_newton/isaaclab_newton/physics/vbd_manager.py Outdated
@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 25, 2026
@ooctipus
ooctipus requested a review from huidongc as a code owner September 25, 2026 09:37
@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 25, 2026
@ooctipus

Copy link
Copy Markdown
Collaborator Author

CI fixes: corrected scene/timeline fixtures for declared-plan ownership; restricted clone label rebasing to entity labels (the broader match disconnected tendon actuator target references); selected CUDA capture mode from Kit runtime presence, not whether a consumer needs USD. The unchanged Anymal golden now passes, as do both CPU/GPU tendon cases, all 193 manager tests, and the focused scene/timeline/cloner checks. No golden-image or threshold changes.

@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 25, 2026
@ooctipus

Copy link
Copy Markdown
Collaborator Author

run-ci

@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 25, 2026
@ooctipus ooctipus changed the title [PR5C] Move Newton deformable ownership out of contrib Move Newton deformable ownership out of contrib Sep 25, 2026
@ooctipus ooctipus changed the title Move Newton deformable ownership out of contrib [5C] Move Newton deformable ownership out of contrib Sep 25, 2026
@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 25, 2026
@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 25, 2026
@kellyguo11

Copy link
Copy Markdown
Contributor

@mmichelis could you review this?

This branch has not been deployed

No deployments
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: Done

Development

Successfully merging this pull request may close these issues.

5 participants