VBD#
SolverVBD is a unified implicit solver based on
Vertex Block Descent (VBD): cloth, soft bodies, rigid bodies (joints,
contacts, rods), and their interactions are all solved in one VBD loop, with
joint and contact constraints enforced through an augmented-Lagrangian (ALM)
extension of the method. The compliant ALM constraint path is enabled
by default (rigid_compliant_alm=True). Pass rigid_compliant_alm=False
explicitly to retain the deprecated legacy path during its migration period.
Experimental
SolverVBD is experimental. Its public API,
behavior, feature support, performance, and implementation may change
without prior notice.
This page is the VBD backend guide: when to choose the solver, how to set it up correctly, and where to find runnable examples. For symptom-driven diagnosis and parameter tuning, see VBD Tuning and the Simulation Tuning landing page.
Note
This guide is under active development. Each section below states its intended scope and links to existing references until the full content lands.
When to Choose VBD#
In development. This section will position VBD against the other Newton solvers for cloth, soft-body, rigid, and mixed scenes, and state its current limitations.
Until then, start from the Supported Features matrix and the
Joint Feature Support tables in the solver overview. The underlying methods are described in the references
cited by SolverVBD:
Anka He Chen, Ziheng Liu, Yin Yang, and Cem Yuksel. 2024. Vertex Block Descent. ACM Trans. Graph. 43, 4. https://doi.org/10.1145/3658179
Chris Giles, Elie Diaz, and Cem Yuksel. 2025. Augmented Vertex Block Descent. ACM Trans. Graph. 44, 4. https://doi.org/10.1145/3731195 (the deprecated legacy rigid constraint path)
API Explanations#
Construction and Stepping#
In development. This section will cover the canonical setup and step loop:
coloring via color() (required for particles and
for rigid bodies integrated by VBD), the recommended
CollisionPipeline → Contacts → SolverVBD construction order, and
the CUDA graph capture constraints around contact state pre-allocation.
Until then, see the SolverVBD API reference, which
documents the constructor and includes a minimal working simulation loop.
Model Inputs#
In development. This section will explain what the solver consumes from
ModelBuilder for each system: triangle meshes for cloth,
tetrahedral meshes for soft bodies, rigid bodies with the supported joint
types (including rods), the default compliant ALM constraint mode
(rigid_compliant_alm=True) versus the deprecated legacy path, and the deprecated
legacy-path controls — model.vbd.joint_is_hard and
set_joint_constraint_mode() (deprecated since
1.6; no solver-mode effect under compliant ALM).
Coupling Modes#
In development. This section will cover how deformables and rigid bodies
interact inside the solver (no special coupling setup is needed) and one-way
coupling with an external rigid-body solver
(integrate_with_external_rigid_solver=True).
Until then, see Coupled Solvers.
Contact Handling#
In development. This section will explain the contact stack: particle self-contact detection (vertex–triangle and edge–edge), body–particle contacts, friction, and the penetration-free Divide and Truncate (DAT) scheme that truncates particle motion against contact bounds. Coverage of Offset Geometric Contact (OGC) will be added once it is available in Newton.
The contact methods are described in:
Anka H. Chen, Jerry Hsu, Youssef Ayman, and Miles Macklin. 2026. Divide and Truncate: A Penetration and Inversion Free Framework for Coupled Multi-physics System. In ACM SIGGRAPH 2026 Conference Papers. https://doi.org/10.1145/3799902.3811143
Anka He Chen, Jerry Hsu, Ziheng Liu, Miles Macklin, Yin Yang, and Cem Yuksel. 2025. Offset Geometric Contact. ACM Trans. Graph. 44, 4. https://doi.org/10.1145/3731205
Key Constructor Parameters#
In development. A lean orientation over the three constructor parameter
groups — common, particle_*, and rigid_* — cross-linked to
SolverVBD for defaults and to VBD Tuning for
effects and recommended values.
Examples#
In development. This section will walk through a small, representative set of examples per system rather than the full list.
Runnable examples using SolverVBD on GitHub:
VBD-specific examples (rigid and soft contacts, grippers, stiff materials)
Multiphysics examples (coupling with MuJoCo, XPBD, and MPM)