Move standalone VBD support into Newton core - #6937
Conversation
Greptile SummaryThe PR moves standalone VBD configuration and manager support from
Confidence Score: 5/5The PR appears safe to merge; no concrete changed-code failure remains after checking the VBD lifecycle, replication, optional contrib integration, and configuration migration. The migrated contact settings remain attached to the outer Newton configuration, optional contrib integration is isolated behind guarded imports, and the new VBD replication path preserves per-world transforms, hooks, sites, and deformable exclusions. Important Files Changed
Flowchart%%{init: {'theme': 'neutral'}}%%
flowchart TD
Launcher["Launcher / task preset"] --> NewtonCfg["NewtonCfg"]
NewtonCfg --> VBDCfg["VBDSolverCfg"]
NewtonCfg --> ContactCfg["NewtonSoftContactCfg"]
VBDCfg --> VBDManager["NewtonVBDManager"]
VBDManager --> CoreBuilder["Core Newton builder and VBD solver"]
Contrib["Optional isaaclab_contrib deformable integration"] -. registers builder and Fabric hooks .-> VBDManager
VBDManager --> Model["Finalized Newton model"]
ContactCfg --> Model
Reviews (1): Last reviewed commit: "Correct coupled VBD migration note" | Re-trigger Greptile |
There was a problem hiding this comment.
Isaac Lab Review Bot
The VBD manager/config relocation into isaaclab_newton.physics, outer NewtonCfg.soft_contact_cfg, and migrated launcher, coupling, task, documentation, and test paths are internally consistent. Before merge, preserve the removed contrib APIs through a deprecation cycle and document the changed damping default in the contrib migration guidance.
- Design and architecture: Moving standalone VBD ownership into Newton core while retaining deformable-object integration and coupled solvers in contrib is coherent. Hoisting global soft-contact parameters onto
NewtonCfgalso removes the solver-specific model-config shim cleanly. - API: The new core exports and API documentation are wired correctly. However, the previously public contrib VBD symbols are deleted without the prior deprecation required by repository policy; forwarding aliases should remain for a release. The contrib changelog must also state that
soft_contact_kdchanges from0.01to10.0and explain how to preserve the old behavior. - Implementation: The model-finalization soft-contact application, VBD stage-import exclusions and replication hooks, BVH rebuild ordering, launcher path, and migrated coupling consumers align with the new API. The required implementation change is compatibility forwarding at the old contrib import paths; the associated migration note should cover the materially changed damping default.
Minor fixes needed. Posted 2 actionable findings inline.
Automated review; human maintainers own approval decisions.
| Changed | ||
| ^^^^^^^ | ||
|
|
||
| * **Breaking:** Moved the standalone VBD solver from |
There was a problem hiding this comment.
🟡 Warning · Api — Contrib VBD symbols removed without prior deprecation
VBDSolverCfg, NewtonModelCfg, NewtonModelSolverCfg, and vbd_manager.NewtonVBDManager were exported from isaaclab_contrib.deformable.__init__.pyi and documented via autoclass; this change deletes them so existing imports fail immediately. Repository rules require deprecating public symbols in a prior release before removal. Keep thin forwarding aliases at the old paths that emit DeprecationWarning and resolve to the core types for one release.
| ``isaaclab_contrib.deformable`` to :mod:`isaaclab_newton.physics`. Import | ||
| :class:`~isaaclab_newton.physics.NewtonVBDManager` and | ||
| :class:`~isaaclab_newton.physics.VBDSolverCfg` from their new location, and | ||
| move ``NewtonModelCfg`` and ``NewtonModelSolverCfg`` soft-contact settings to |
There was a problem hiding this comment.
🔵 Suggestion · Api — Migration note omits soft_contact_kd default change
NewtonModelCfg.soft_contact_kd defaulted to 1.0e-2 while NewtonSoftContactCfg.soft_contact_kd defaults to 10.0, so users who simply move settings to soft_contact_cfg silently get 1000x the contact damping. Changed entries must carry migration guidance; add the default-value change and the explicit soft_contact_kd=0.01 restoration note to this fragment.
Description
Moves the standalone Newton VBD solver configuration and manager from
isaaclab_contrib.deformableintoisaaclab_newton.physics. The core VBD API can now be imported withoutisaaclab_contrib. When the contrib deformable integration is installed,NewtonVBDManageruses its registered deformable builder hook and Fabric synchronization.NewtonVBDManager,VBDSolverCfg, andNewtonSoftContactCfg.solver_cfg.model_cfgtoNewtonCfg.soft_contact_cfg.NewtonModelCfg,NewtonModelSolverCfg,VBDSolverCfg, andNewtonVBDManagersymbols. Import the standalone VBD types fromisaaclab_newton.physicsinstead.No new external dependencies are required.
The removed symbols are experimental contrib APIs. This change intentionally does not retain compatibility aliases at the old import paths.
Migration
Import the standalone VBD types from
isaaclab_newton.physics:Global soft-contact parameters move from
solver_cfg.model_cfgto the outerNewtonCfg.soft_contact_cfg.NewtonSoftContactCfg.soft_contact_kddefaults to Newton's10.0; set it explicitly if you relied on the previous contrib default of0.01.Type of change
Validation
developchanges.Pytest warnings were limited to third-party PyTorch deprecation warnings and existing Newton warnings.
Checklist
./isaaclab.sh -f.CONTRIBUTORS.md.