Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
\useunder

\ul

PBI: Position-Based Dynamics Handles Updated Lagrangian Inelasticity

Chang Yu 0009-0000-2613-9885 g1n0st@live.com UCLALos AngelesUSA Xuan Li 0000-0003-0677-8369 xuan.shayne.li@gmail.com UCLALos AngelesUSA Lei Lan 0009-0002-7626-7580 lanlei.virhum@gmail.com University of UtahSalt Lake CityUtahUSA Yin Yang 0000-0001-7645-5931 yangzzzy@gmail.com University of UtahSalt Lake CityUtahUSA  and  Chenfanfu Jiang 0000-0003-3506-0583 chenfanfu.jiang@gmail.com UCLALos AngelesUSACalifornia
Abstract.

Position-based Dynamics (PBD) and its extension, eXtended Position-based Dynamics (XPBD), have been predominantly applied to compliant constrained elastodynamics, with their potential in finite strain (visco-) elastoplasticity remaining underexplored. XPBD is often perceived to stand in contrast to other meshless methods, such as the Material Point Method (MPM). MPM is based on discretizing the weak form of governing partial differential equations within a continuum domain, coupled with a hybrid Lagrangian-Eulerian method for tracking deformation gradients. In contrast, XPBD formulates specific constraints, whether hard or compliant, to positional degrees of freedom. We revisit this perception by investigating the potential of XPBD in handling inelastic materials that are described with classical continuum mechanics-based yield surfaces and elastoplastic flow rules. Our inspiration is that a robust estimation of the velocity gradient is a sufficiently useful key to effectively tracking deformation gradients in XPBD simulations. By further incorporating implicit inelastic constitutive relationships, we introduce a plasticity in-the-loop updated Lagrangian augmentation to XPBD. This enhancement enables the simulation of elastoplastic, viscoplastic, and granular substances following their standard constitutive laws. We demonstrate the effectiveness of our method through high-resolution and real-time simulations of diverse materials such as snow, sand, and plasticine, and its integration with standard XPBD simulations of cloth and water.

position-based dynamics, material point method, updated Lagrangian, elastoplasticity, viscoplasticity
copyright: noneccs: Computing methodologies Physical simulation
Refer to caption
Figure 1. PBI supports simulating a wide range of classical continuum elastoplastic material models such as Von-Mises plasticine, Drucker-Prager sand, and Cam Clay snow, as well as their interactions with traditional PBD materials such as Position-based Fluid.

1. Introduction

Position-based Dynamics (PBD) [Müller et al., 2007] and its extension eXtended Position-based Dynamics (XPBD) [Macklin et al., 2016] are widely adopted in compliant constrained dynamics, particularly favored for their performance and simplicity for graphics applications such as rigid bodies [Müller et al., 2020], soft bodies [Bender et al., 2014], cloth [Müller et al., 2007], rods [Umetani et al., 2015] and hair [Müller et al., 2012]. When simulating mesh-based elasticity, it is straightforward to model XPBD constraints with FEM hyperelastic energies defined over explicit mesh topology. This allows for effective simulations of elasticity while maintaining the stability and speed of XPBD. For example, quardratic energy potentials [Chen et al., 2023] can be formulated using XPBD-style constraints. Macklin and Muller [2021] and Ton-That et al. [2023] reformulated stable Neo-Hookean [Smith et al., 2018] to demonstrate XPBD’s capability in handling nonlinear elasticity.

For inelasticity, on the other hand, two significant challenges emerge. Firstly, topology changes during material splitting and merging introduce great complexity in maintaining a high quality mesh, often necessitating remeshing. Secondly, while there have been explorations that enhances Position-based Fluids (PBF) [Macklin and Müller, 2013] with the conformation tensor [Barreiro et al., 2017] for viscoelastic fluids, it remains underexplored for XPBD to model physically-grounded finite strain (visco-) elastoplastic constitutive laws from classical continuum mechanics, such as von-Mises [Mises, 1913], Drucker-Prager [Drucker and Prager, 1952] and Herschel-Bulkley [Herschel and Bulkley, 1926] flow rules. Being able to simulate them would greatly improve XPBD’s versatility and intuitive controllability of material parameters.

Refer to caption
Figure 2. Noodles. We simulate noodles modeled using Von Mises plasticity as it is pressed through a cylindrical mold.

In comparison with XPBD’s success in mesh-based materials, Material Point Method (MPM)’s development in graphics over the past decade has majorly focused on inelastic phenomena with topology change. MPM is based on the weak form of governing PDEs and employs a hybrid Lagrangian-Eulerian approach for spatial discretization. It handles topology changes, self collision, and finite strain deformation without overhead, and thus has been used for many continuum inelastic phenomena such as snow [Stomakhin et al., 2013], lava [Stomakhin et al., 2014], sand [Klár et al., 2016], mud [Tampubolon et al., 2017], metal [Wang et al., 2020], foam [Ram et al., 2015], and fracture [Wolper et al., 2019]. While substantial progress has been made in these areas, MPM exhibits several notable drawbacks, including excessive numerical dissipation due to particle-grid transfers [Jiang et al., 2015], artificial stickiness that hampers material separation [Fei et al., 2021], and resolution-dependent gaps between colliding materials [Jiang et al., 2017]. None of these issues are present in XPBD. This raises a natural question: Can we simulate MPM-style phenomena using XPBD instead?

Table 1. PBI keeps PBD’s pure particle nature of the Degrees of Freedom while allowing MPM-style plasticity and granular material modeling through an updated Lagrangian treatment of the deformation and classical continuum mechanics-based elastoplastic flow rules.
Lagrangian DOF Plasticity Granular
MPM Updated Grid Flow Rule Continuum
PBD Total Particle N/A Sphere Approx.
Ours Total & Updated Particle Flow Rule Continuum

Towards addressing this question, we make an important observation: the primary factor that facilitates the modeling of inelasticity lies not in the hybrid Lagrangian-Eulerian nature of MPM, but rather in its use of an updated Lagrangian formulation for the deformation gradient tensor. In particular, one considers the time n+1𝑛1n+1italic_n + 1 velocity 𝐯n+1superscript𝐯𝑛1\mathbf{v}^{n+1}bold_v start_POSTSUPERSCRIPT italic_n + 1 end_POSTSUPERSCRIPT to be defined over the previous time n𝑛nitalic_n domain ΩnsuperscriptΩ𝑛\Omega^{n}roman_Ω start_POSTSUPERSCRIPT italic_n end_POSTSUPERSCRIPT through the Lagrangian velocity 𝐕𝐕\mathbf{V}bold_V of a particle traced back using the inverse deformation map ϕ1(𝐱,t)superscriptbold-italic-ϕ1𝐱𝑡\bm{\phi}^{-1}(\mathbf{x},t)bold_italic_ϕ start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT ( bold_x , italic_t ): 𝐯n+1(𝐱)=𝐕(ϕ1(𝐱,tn),tn+1)superscript𝐯𝑛1𝐱𝐕superscriptbold-italic-ϕ1𝐱superscript𝑡𝑛superscript𝑡𝑛1\mathbf{v}^{n+1}(\mathbf{x})=\mathbf{V}(\bm{\phi}^{-1}(\mathbf{x},t^{n}),t^{n+% 1})bold_v start_POSTSUPERSCRIPT italic_n + 1 end_POSTSUPERSCRIPT ( bold_x ) = bold_V ( bold_italic_ϕ start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT ( bold_x , italic_t start_POSTSUPERSCRIPT italic_n end_POSTSUPERSCRIPT ) , italic_t start_POSTSUPERSCRIPT italic_n + 1 end_POSTSUPERSCRIPT ) [Jiang et al., 2016]. This enables the derivation of the rate form of the deformation gradient 𝐅𝐅\mathbf{F}bold_F given by 𝐅˙=(𝐯)𝐅˙𝐅𝐯𝐅\dot{\mathbf{F}}=(\nabla\mathbf{v})\mathbf{F}over˙ start_ARG bold_F end_ARG = ( ∇ bold_v ) bold_F, which can be further discretized into 𝐅n+1=(𝐈+Δt𝐯n+1)𝐅nsuperscript𝐅𝑛1𝐈Δ𝑡superscript𝐯𝑛1superscript𝐅𝑛\mathbf{F}^{n+1}=(\mathbf{I}+\Delta t\nabla\mathbf{v}^{n+1})\mathbf{F}^{n}bold_F start_POSTSUPERSCRIPT italic_n + 1 end_POSTSUPERSCRIPT = ( bold_I + roman_Δ italic_t ∇ bold_v start_POSTSUPERSCRIPT italic_n + 1 end_POSTSUPERSCRIPT ) bold_F start_POSTSUPERSCRIPT italic_n end_POSTSUPERSCRIPT, allowing one to track the deformation gradient without referring to a material space configuration.

Inspired by this observation, if we can track the deformation gradient tensor 𝐅𝐅\mathbf{F}bold_F using an updated Lagrangian view in XPBD, then by treating 𝐅𝐅\mathbf{F}bold_F as a function of XPBD degrees of freedom, we can modify XPBD to resemble a “material point” approach. As detailed in later sections, this task reduces to robustly computing and differentiating the velocity gradient tensor. We present developments surrounding these ideas. By further incorporating an implicit plasticity treatment and additional stability-enhancing components, our method leverages the efficiency and simplicity of PBD while capturing the complex inelastic material responses typically associated with MPM; see Table. 1. In summary, our contributions include:

  • An updated Lagrangian augmentation for XPBD that tracks meshless deformation gradients and per-particle constraints;

  • PBI, a fully implicit plasticity-aware, velocity-based augmented XPBD algorithm capable of handling continuum mechanics-based elastoplastic/viscoplastic laws;

  • An investigation for practical stability enhancements, such as XSPH and position correction, and validations of our method with various practical examples.

Refer to caption
Figure 3. PBI fits into traditional XPBD pipeline and naturally couples updated Lagrangian materials (viscoplastic paint) and mesh-based geometry (cloth).
Refer to caption
Figure 4. PBI simulates Hershel-Bulkley shear thinning (h=0.30.3h=0.3italic_h = 0.3), viscoplastic (h=1.01.0h=1.0italic_h = 1.0), and shear thickening materials (h=3.03.0h=3.0italic_h = 3.0), where hhitalic_h controls a power law flow rate detailed in [Yue et al., 2015].

2. Related Work

Inelasticity with PBD

Müller et al. [2007] introduced PBD, which replaces internal forces with positional constraints and produces appealing, stable and real-time simulations. Its first-order convergence was studied by Plunder and Merino-Aceituno [2023]. XPBD [Macklin et al., 2016], an extension of PBD, utilizes the compliant-constraint framework [Tournier et al., 2015] to uniformly handle soft and hard constraints to simulate elasticity. Our work follows the latest XPBD paradigm [Macklin et al., 2019] with substeps. Other PBD materials include rigid body [Müller et al., 2020], soft body [Bender et al., 2014], cloth [Müller et al., 2007], hair [Müller et al., 2012], elastic rod [Umetani et al., 2015], sand [Macklin et al., 2014], fluid [Macklin and Müller, 2013] with surface tension [Xing et al., 2022] and their unified couplings [Macklin et al., 2014; Frâncu and Moldoveanu, 2017; Abu Rumman et al., 2020; Robinson-Mosher et al., 2008]. We refer to Bender et al. [2017] for a comprehensive survey.

For continuum materials, Bender et al. [2014] defined a constraint for the elastic strain energy. Müller et al. [2015] constrained the strain tensor directly instead. Macklin and Muller [2021] reformulated stable Neo-Hookean using XPBD. Plastic deformation and fracture can be modeled by shape matching [Chentanez et al., 2016; Jones et al., 2016; Falkenstein et al., 2017], prioritizing efficiency over accuracy. Macklin et al. [2014] simulated sand as colliding spheres with friction. SideFX Houdini’s Vellum PBD solver further added spring-like cohesion for snow. Without further utilizing continuum mechanics-based inelastic models, these approaches have limited mechanical intuition and physical parameter controllability. A step forward was proposed by Barreiro et al. [2017], which enhances PBF with the conformation tensor for viscoelastic fluids. Nevertheless, it does not incorporate finite strain continuum mechanics, limiting its suitability in modeling general elastoplastic and viscoplastic laws.

Inelasticity with MPM

MPM was introduced by Sulsky et al. [1994] as a hybrid Lagrangian/Eulerian approach for solids. Since its adoption in graphics [Hegemann et al., 2013; Stomakhin et al., 2013], MPM has gained significant attentions for its automatic topology change and material versatility. Snow plasticity was first done by projecting principal stretches [Stomakhin et al., 2013]. Phase change was modeled by [Stomakhin et al., 2014] through a dilational/deviatoric splitting of the constitutive model. Yue et al. [2015] adopted Herschel-Bulkley viscoplasticity for foam. Ram et al. [2015] used the Oldroyd-B model for viscoelastic fluids. Fei et al. [2019] developed an analytical plastic flow approach for shear-dependent liquids. Following Drucker-Prager yield criterion, Klár et al. [2016]; Daviet and Bertails-Descoubes [2016] modeled sand as continuum granular materials and Tampubolon et al. [2017] further added wetting. Wolper et al. [2019, 2020] captured dynamic fracture using Non-Associated Cam-Clay (NACC) plasticity and damage mechanics. Advocating implicit integrators, stiff plastic materials like metal was simulated with Newton-Krylov MPM [Wang et al., 2020], while Fang et al. [2019] used Alternating Direction Methods of Multipliers (ADMM) for viscoelasticity and elastoplasticity and Li et al. [2022] proposed a variational implicit inelasticity formulation.

Inelasticity with Other Discretizations

Smoothed Particle Hydrodynamics (SPH) was originally for incompressible flow. Clavet et al. [2005] added dynamic-length springs for viscoelasticity. Jones et al. [2014] and Müller et al. [2004] solved Moving Least Squares (MLS) for elastoplasticity. Gerszewski et al. [2009] first used deformation gradient tensor with multiplicative elastoplastic decomposition in SPH. Alduán and Otaduy [2011] and Yang et al. [2017] modeled granular materials based on Drucker Prager yielding. Gissler et al. [2020] developed an implicit SPH snow solver similarly to Stomakhin et al. [2013]’s MPM treatment. Using power diagram-based particle-in-cell [Qu et al., 2022] and MLS-MPM [Hu et al., 2018], power plastics [Qu et al., 2023] simulated inelastic flow with an XPBD-style Gauss-Seidel solver. Peridynamics [Silling, 2000] defines pairwise forces and integrates particle interactions. He et al. [2017] combined peridynamics with projective dynamics [Bouaziz et al., 2023] and modeled Drucker-Prager plasticity. Chen et al. [2018] used isotropic linear elasticity with plasticity and simulated fracture.

3. Method

We start with briefly reviewing XPBD [Macklin et al., 2016], which lets hyperelasticity be governed by Newton’s equations of motion through a potential U(𝒙)𝑈𝒙U(\bm{x})italic_U ( bold_italic_x ): 𝑴𝒙¨=UT(𝒙)𝑴¨𝒙superscript𝑈𝑇𝒙\bm{M}\ddot{\bm{x}}=-\nabla U^{T}(\bm{x})bold_italic_M over¨ start_ARG bold_italic_x end_ARG = - ∇ italic_U start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT ( bold_italic_x ), where 𝑴𝑴\bm{M}bold_italic_M is the mass matrix and 𝒙=[x1,x2,,xn]T𝒙superscriptsubscript𝑥1subscript𝑥2subscript𝑥𝑛𝑇\bm{x}=[x_{1},x_{2},...,x_{n}]^{T}bold_italic_x = [ italic_x start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , italic_x start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT , … , italic_x start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT ] start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT is the unknown position states. XPBD assumes U(𝒙)𝑈𝒙U(\bm{x})italic_U ( bold_italic_x ) can be further expressed as U(𝒙)=12𝐂(𝒙)T𝒂1𝐂(𝒙)𝑈𝒙12𝐂superscript𝒙𝑇superscript𝒂1𝐂𝒙U(\bm{x})=\frac{1}{2}\mathbf{C}(\bm{x})^{T}\bm{a}^{-1}\mathbf{C}(\bm{x})italic_U ( bold_italic_x ) = divide start_ARG 1 end_ARG start_ARG 2 end_ARG bold_C ( bold_italic_x ) start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT bold_italic_a start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT bold_C ( bold_italic_x ), where 𝑪=[C1(𝒙),C2(𝒙),,Cm(𝒙)]T𝑪superscriptsubscript𝐶1𝒙subscript𝐶2𝒙subscript𝐶𝑚𝒙𝑇\bm{C}=[C_{1}(\bm{x}),C_{2}(\bm{x}),...,C_{m}(\bm{x})]^{T}bold_italic_C = [ italic_C start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ( bold_italic_x ) , italic_C start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ( bold_italic_x ) , … , italic_C start_POSTSUBSCRIPT italic_m end_POSTSUBSCRIPT ( bold_italic_x ) ] start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT contains m𝑚mitalic_m constraints, and 𝒂𝒂\bm{a}bold_italic_a is a block diagonal compliance matrix. The elastic internal force 𝒇𝒇\bm{f}bold_italic_f and Lagrange multiplier 𝝀𝝀\bm{\lambda}bold_italic_λ are then shown to be

(1) 𝒇𝒇\displaystyle\bm{f}bold_italic_f =𝐂(𝒙)T𝒂1𝐂(𝒙),absent𝐂superscript𝒙𝑇superscript𝒂1𝐂𝒙\displaystyle=-\nabla\mathbf{C}(\bm{x})^{T}\bm{a}^{-1}\mathbf{C}(\bm{x}),= - ∇ bold_C ( bold_italic_x ) start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT bold_italic_a start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT bold_C ( bold_italic_x ) ,
(2) 𝝀𝝀\displaystyle\bm{\lambda}bold_italic_λ =𝒂~1𝐂(𝒙).absentsuperscript~𝒂1𝐂𝒙\displaystyle=-\tilde{\bm{a}}^{-1}\mathbf{C}(\bm{x}).= - over~ start_ARG bold_italic_a end_ARG start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT bold_C ( bold_italic_x ) .

where 𝒂~=𝒂h2~𝒂𝒂superscript2\tilde{\bm{a}}=\frac{\bm{a}}{h^{2}}over~ start_ARG bold_italic_a end_ARG = divide start_ARG bold_italic_a end_ARG start_ARG italic_h start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT end_ARG and h=ΔtΔ𝑡h=\Delta titalic_h = roman_Δ italic_t is the time step size.

Refer to caption
Figure 5. Candy Camponotus. We simulate the brittle fracture of a candy shaped like a camponotus falling onto the ground.

3.1. Rewriting StVK Elasticity as Constraints

For modeling elasticity, we adopt the St. Venant-Kirchhoff (StVK) model with Hencky strains. The elastoplastic behavior of isotropic materials is characterized in the principal stretch space 𝚺𝚺\bm{\Sigma}bold_Σ via singular value decomposition (SVD) [Stomakhin et al., 2012] of the deformation gradient 𝑭𝑭\bm{F}bold_italic_F. For StVK we have energy density ΨΨ\Psiroman_Ψ

(3) Ψ=μtr(log(𝚺)2)+λ2(tr(log(𝚺)))2=Φ/V0,\displaystyle\Psi=\mu\text{tr}\left(\log\left(\bm{\Sigma}\right)^{2}\right)+% \frac{\lambda}{2}\left(\text{tr}\left(\log\left(\bm{\Sigma}\right)\right)% \right)^{2}=\Phi/V_{0},roman_Ψ = italic_μ tr ( roman_log ( bold_Σ ) start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT ) + divide start_ARG italic_λ end_ARG start_ARG 2 end_ARG ( tr ( roman_log ( bold_Σ ) ) ) start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT = roman_Φ / italic_V start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT ,

where V0subscript𝑉0V_{0}italic_V start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT is an element’s rest volume and ΦΦ\Phiroman_Φ is the element’s total potential energy, assuming piecewise constant element deformations.

To convert ΦΦ\Phiroman_Φ into constraints, our first option is to separately handle each term. As done by Macklin and Muller [2021] for Neo-Hookean, by utilizing Φ=121αC2Φ121𝛼superscript𝐶2\Phi=\frac{1}{2}\frac{1}{\alpha}C^{2}roman_Φ = divide start_ARG 1 end_ARG start_ARG 2 end_ARG divide start_ARG 1 end_ARG start_ARG italic_α end_ARG italic_C start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT, we could define two constraints for the μ𝜇\muitalic_μ and λ𝜆\lambdaitalic_λ term respectively as

(4) αμ=1/(2μV0),subscript𝛼𝜇12𝜇subscript𝑉0\displaystyle\alpha_{\mu}=1/(2\mu V_{0}),italic_α start_POSTSUBSCRIPT italic_μ end_POSTSUBSCRIPT = 1 / ( 2 italic_μ italic_V start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT ) , andCμ=tr(log(𝚺)2);\displaystyle\text{ and}\ C_{\mu}=\sqrt{\text{tr}\left(\log\left(\bm{\Sigma}% \right)^{2}\right)};and italic_C start_POSTSUBSCRIPT italic_μ end_POSTSUBSCRIPT = square-root start_ARG tr ( roman_log ( bold_Σ ) start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT ) end_ARG ;
(5) αλ=1/(λV0),subscript𝛼𝜆1𝜆subscript𝑉0\displaystyle\alpha_{\lambda}=1/(\lambda V_{0}),italic_α start_POSTSUBSCRIPT italic_λ end_POSTSUBSCRIPT = 1 / ( italic_λ italic_V start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT ) , andCλ=tr(log(𝚺)).andsubscript𝐶𝜆tr𝚺\displaystyle\text{ and}\ C_{\lambda}=\text{tr}\left(\log\left(\bm{\Sigma}% \right)\right).and italic_C start_POSTSUBSCRIPT italic_λ end_POSTSUBSCRIPT = tr ( roman_log ( bold_Σ ) ) .

Alternatively, as done by Qu et al. [2023] on power diagrams, we can absorb Lamé parameters from α𝛼\alphaitalic_α to C𝐶Citalic_C and define a single 𝑭𝑭\bm{F}bold_italic_F-dependent constraint through Φ=V0Ψ(𝑭)=12αC(𝑭)2Φsubscript𝑉0Ψ𝑭12𝛼𝐶superscript𝑭2\Phi=V_{0}\Psi(\bm{F})=\frac{1}{2\alpha}C(\bm{F})^{2}roman_Φ = italic_V start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT roman_Ψ ( bold_italic_F ) = divide start_ARG 1 end_ARG start_ARG 2 italic_α end_ARG italic_C ( bold_italic_F ) start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT to achieve

(6) α=1/V0, andC(𝑭)=2Ψ(𝑭),formulae-sequence𝛼1subscript𝑉0 and𝐶𝑭2Ψ𝑭\displaystyle\alpha={1}/{V_{0}},\text{ and}\ C(\bm{F})=\sqrt{2\Psi(\bm{F})},italic_α = 1 / italic_V start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT , and italic_C ( bold_italic_F ) = square-root start_ARG 2 roman_Ψ ( bold_italic_F ) end_ARG ,

which clearly halves the number of constraints by allowing more nonlinearity in each C(𝒙)𝐶𝒙C(\bm{x})italic_C ( bold_italic_x ). In practice we find both options effective, and adopt the single-constraint version for efficiency.

3.2. Gradient is All You Need

Unlike mesh-based representations [Macklin and Muller, 2021] which use linear FEM to model the deformation map 𝒙=ϕ(𝑿,t)𝒙bold-italic-ϕ𝑿𝑡\bm{x}=\bm{\phi}(\bm{X},t)bold_italic_x = bold_italic_ϕ ( bold_italic_X , italic_t ) and compute deformation gradient 𝑭=ϕ(𝑿,t)/𝑿𝑭bold-italic-ϕ𝑿𝑡𝑿\bm{F}=\partial\bm{\phi}(\bm{X},t)/\partial{\bm{X}}bold_italic_F = ∂ bold_italic_ϕ ( bold_italic_X , italic_t ) / ∂ bold_italic_X using an undeformed reference state 𝑿Ω0𝑿superscriptΩ0\bm{X}\in\Omega^{0}bold_italic_X ∈ roman_Ω start_POSTSUPERSCRIPT 0 end_POSTSUPERSCRIPT, meshless inelastic materials cannot utilize simplex elements due to extreme deformation. We follow Jiang et al. [2016] to take an updated Lagrangian view for deformation rate:

(7) t𝑭(𝑿,t)𝑡𝑭𝑿𝑡\displaystyle\frac{\partial}{\partial t}\bm{F}(\bm{X},t)divide start_ARG ∂ end_ARG start_ARG ∂ italic_t end_ARG bold_italic_F ( bold_italic_X , italic_t ) =tϕ𝑿(𝑿,t)=𝒗𝒙(ϕ(𝑿,t),t)ϕ𝑿(𝑿,t),absent𝑡bold-italic-ϕ𝑿𝑿𝑡𝒗𝒙bold-italic-ϕ𝑿𝑡𝑡bold-italic-ϕ𝑿𝑿𝑡\displaystyle=\frac{\partial}{\partial t}\frac{\partial\bm{\phi}}{\partial\bm{% X}}(\bm{X},t)=\frac{\partial\bm{v}}{\partial\bm{x}}(\bm{\phi}(\bm{X},t),t){% \frac{\partial\bm{\phi}}{\partial\bm{X}}(\bm{X},t)},= divide start_ARG ∂ end_ARG start_ARG ∂ italic_t end_ARG divide start_ARG ∂ bold_italic_ϕ end_ARG start_ARG ∂ bold_italic_X end_ARG ( bold_italic_X , italic_t ) = divide start_ARG ∂ bold_italic_v end_ARG start_ARG ∂ bold_italic_x end_ARG ( bold_italic_ϕ ( bold_italic_X , italic_t ) , italic_t ) divide start_ARG ∂ bold_italic_ϕ end_ARG start_ARG ∂ bold_italic_X end_ARG ( bold_italic_X , italic_t ) ,

with 𝑽(𝑿,t)=ϕ(𝑿,t)/t𝑽𝑿𝑡bold-italic-ϕ𝑿𝑡𝑡\bm{V}(\bm{X},t)=\partial\bm{\phi}(\bm{X},t)/\partial tbold_italic_V ( bold_italic_X , italic_t ) = ∂ bold_italic_ϕ ( bold_italic_X , italic_t ) / ∂ italic_t being the Lagrangian velocity whose Eulerian counterpart is 𝒗(𝒙,t)=𝑽(ϕ1(𝒙,t),t)𝒗𝒙𝑡𝑽superscriptbold-italic-ϕ1𝒙𝑡𝑡\bm{v}(\bm{x},t)=\bm{V}(\bm{\phi}^{-1}(\bm{x},t),t)bold_italic_v ( bold_italic_x , italic_t ) = bold_italic_V ( bold_italic_ϕ start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT ( bold_italic_x , italic_t ) , italic_t ). With time discretization from tnsuperscript𝑡𝑛t^{n}italic_t start_POSTSUPERSCRIPT italic_n end_POSTSUPERSCRIPT to tn+1superscript𝑡𝑛1t^{n+1}italic_t start_POSTSUPERSCRIPT italic_n + 1 end_POSTSUPERSCRIPT and the assumption that the velocity 𝒗𝒗\bm{v}bold_italic_v at time tn+1superscript𝑡𝑛1t^{n+1}italic_t start_POSTSUPERSCRIPT italic_n + 1 end_POSTSUPERSCRIPT being 𝒗n+1(x)superscript𝒗𝑛1𝑥\bm{v}^{n+1}(x)bold_italic_v start_POSTSUPERSCRIPT italic_n + 1 end_POSTSUPERSCRIPT ( italic_x ) for 𝒙Ωn𝒙superscriptΩ𝑛\bm{x}\in\Omega^{n}bold_italic_x ∈ roman_Ω start_POSTSUPERSCRIPT italic_n end_POSTSUPERSCRIPT, we have

(8) t𝑭(𝑿,tn+1)=𝒗n+1𝒙(ϕ(𝑿,tn))𝑭(𝑿,tn).𝑡𝑭𝑿superscript𝑡𝑛1superscript𝒗𝑛1𝒙bold-italic-ϕ𝑿superscript𝑡𝑛𝑭𝑿superscript𝑡𝑛\displaystyle\frac{\partial}{\partial t}\bm{F}(\bm{X},t^{n+1})=\frac{\partial% \bm{v}^{n+1}}{\partial\bm{x}}(\bm{\phi}(\bm{X},t^{n}))\bm{F}(\bm{X},t^{n}).divide start_ARG ∂ end_ARG start_ARG ∂ italic_t end_ARG bold_italic_F ( bold_italic_X , italic_t start_POSTSUPERSCRIPT italic_n + 1 end_POSTSUPERSCRIPT ) = divide start_ARG ∂ bold_italic_v start_POSTSUPERSCRIPT italic_n + 1 end_POSTSUPERSCRIPT end_ARG start_ARG ∂ bold_italic_x end_ARG ( bold_italic_ϕ ( bold_italic_X , italic_t start_POSTSUPERSCRIPT italic_n end_POSTSUPERSCRIPT ) ) bold_italic_F ( bold_italic_X , italic_t start_POSTSUPERSCRIPT italic_n end_POSTSUPERSCRIPT ) .

Taking t𝑭p(𝑿p,tn+1)(𝑭pn+1𝑭pn)/h𝑡subscript𝑭𝑝subscript𝑿𝑝superscript𝑡𝑛1subscriptsuperscript𝑭𝑛1𝑝subscriptsuperscript𝑭𝑛𝑝\frac{\partial}{\partial t}\bm{F}_{p}(\bm{X}_{p},t^{n+1})\approx({\bm{F}^{n+1}% _{p}-\bm{F}^{n}_{p}})/{h}divide start_ARG ∂ end_ARG start_ARG ∂ italic_t end_ARG bold_italic_F start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT ( bold_italic_X start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT , italic_t start_POSTSUPERSCRIPT italic_n + 1 end_POSTSUPERSCRIPT ) ≈ ( bold_italic_F start_POSTSUPERSCRIPT italic_n + 1 end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT - bold_italic_F start_POSTSUPERSCRIPT italic_n end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT ) / italic_h for a particle 𝑿psubscript𝑿𝑝\bm{X}_{p}bold_italic_X start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT we get

(9) 𝑭pn+1=𝑭pn+h𝒗n+1𝒙(𝒙pn)𝑭pn=(𝑰+h𝒗n+1𝒙(𝒙pn))𝑭pnsuperscriptsubscript𝑭𝑝𝑛1superscriptsubscript𝑭𝑝𝑛superscript𝒗𝑛1𝒙superscriptsubscript𝒙𝑝𝑛superscriptsubscript𝑭𝑝𝑛𝑰superscript𝒗𝑛1𝒙superscriptsubscript𝒙𝑝𝑛superscriptsubscript𝑭𝑝𝑛\displaystyle\bm{F}_{p}^{n+1}=\bm{F}_{p}^{n}+h\frac{\partial\bm{v}^{n+1}}{% \partial\bm{x}}(\bm{x}_{p}^{n})\bm{F}_{p}^{n}=\left(\bm{I}+h\frac{\partial\bm{% v}^{n+1}}{\partial\bm{x}}(\bm{x}_{p}^{n})\right)\bm{F}_{p}^{n}bold_italic_F start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_n + 1 end_POSTSUPERSCRIPT = bold_italic_F start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_n end_POSTSUPERSCRIPT + italic_h divide start_ARG ∂ bold_italic_v start_POSTSUPERSCRIPT italic_n + 1 end_POSTSUPERSCRIPT end_ARG start_ARG ∂ bold_italic_x end_ARG ( bold_italic_x start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_n end_POSTSUPERSCRIPT ) bold_italic_F start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_n end_POSTSUPERSCRIPT = ( bold_italic_I + italic_h divide start_ARG ∂ bold_italic_v start_POSTSUPERSCRIPT italic_n + 1 end_POSTSUPERSCRIPT end_ARG start_ARG ∂ bold_italic_x end_ARG ( bold_italic_x start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_n end_POSTSUPERSCRIPT ) ) bold_italic_F start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_n end_POSTSUPERSCRIPT

as the evolution of 𝑭pn+1superscriptsubscript𝑭𝑝𝑛1\bm{F}_{p}^{n+1}bold_italic_F start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_n + 1 end_POSTSUPERSCRIPT given 𝒗n+1superscript𝒗𝑛1\bm{v}^{n+1}bold_italic_v start_POSTSUPERSCRIPT italic_n + 1 end_POSTSUPERSCRIPT and 𝑭pnsuperscriptsubscript𝑭𝑝𝑛\bm{F}_{p}^{n}bold_italic_F start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_n end_POSTSUPERSCRIPT. With updated Lagrangian, the reference space is thus always ΩnsuperscriptΩ𝑛\Omega^{n}roman_Ω start_POSTSUPERSCRIPT italic_n end_POSTSUPERSCRIPT and there is no need to store Ω0superscriptΩ0\Omega^{0}roman_Ω start_POSTSUPERSCRIPT 0 end_POSTSUPERSCRIPT; see Fig. 6. Therefore, to express constraints as functions of positions C(𝑭(𝒗n+1(𝒙n+1)))𝐶𝑭superscript𝒗𝑛1superscript𝒙𝑛1C(\bm{F}(\bm{v}^{n+1}(\bm{x}^{n+1})))italic_C ( bold_italic_F ( bold_italic_v start_POSTSUPERSCRIPT italic_n + 1 end_POSTSUPERSCRIPT ( bold_italic_x start_POSTSUPERSCRIPT italic_n + 1 end_POSTSUPERSCRIPT ) ) ), robustly estimating 𝐯/𝐱𝐯𝐱\partial\bm{v}/\partial\bm{x}∂ bold_italic_v / ∂ bold_italic_x (xΩnfor-all𝑥superscriptΩ𝑛\forall x\in\Omega^{n}∀ italic_x ∈ roman_Ω start_POSTSUPERSCRIPT italic_n end_POSTSUPERSCRIPT) and its derivative is all one needs.

𝑭p(k)superscriptsubscript𝑭𝑝𝑘\bm{F}_{p}^{(k)}bold_italic_F start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_k ) end_POSTSUPERSCRIPT𝑭pE,trsuperscriptsubscript𝑭𝑝𝐸𝑡𝑟\bm{F}_{p}^{E,tr}bold_italic_F start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_E , italic_t italic_r end_POSTSUPERSCRIPT𝑭p(k+1)superscriptsubscript𝑭𝑝𝑘1\bm{F}_{p}^{(k+1)}bold_italic_F start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_k + 1 ) end_POSTSUPERSCRIPT𝑭p0superscriptsubscript𝑭𝑝0\bm{F}_{p}^{0}bold_italic_F start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 0 end_POSTSUPERSCRIPTΩ0superscriptΩ0\Omega^{0}roman_Ω start_POSTSUPERSCRIPT 0 end_POSTSUPERSCRIPTinitial configuration𝑭pnsuperscriptsubscript𝑭𝑝𝑛\bm{F}_{p}^{n}bold_italic_F start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_n end_POSTSUPERSCRIPTΩnsuperscriptΩ𝑛\Omega^{n}roman_Ω start_POSTSUPERSCRIPT italic_n end_POSTSUPERSCRIPTcurrent configuration𝑭pn+1superscriptsubscript𝑭𝑝𝑛1\bm{F}_{p}^{n+1}bold_italic_F start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_n + 1 end_POSTSUPERSCRIPTΩn+1superscriptΩ𝑛1\Omega^{n+1}roman_Ω start_POSTSUPERSCRIPT italic_n + 1 end_POSTSUPERSCRIPTupdated configuration𝑭pE,tr=(𝑰+h𝒗(k)𝒙(𝒙pn))𝑭pnsuperscriptsubscript𝑭𝑝𝐸𝑡𝑟𝑰superscript𝒗𝑘𝒙superscriptsubscript𝒙𝑝𝑛superscriptsubscript𝑭𝑝𝑛\bm{F}_{p}^{E,tr}=\left(\bm{I}+h\frac{\partial\bm{v}^{(k)}}{\partial\bm{x}}(% \bm{x}_{p}^{n})\right)\bm{F}_{p}^{n}bold_italic_F start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_E , italic_t italic_r end_POSTSUPERSCRIPT = ( bold_italic_I + italic_h divide start_ARG ∂ bold_italic_v start_POSTSUPERSCRIPT ( italic_k ) end_POSTSUPERSCRIPT end_ARG start_ARG ∂ bold_italic_x end_ARG ( bold_italic_x start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_n end_POSTSUPERSCRIPT ) ) bold_italic_F start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_n end_POSTSUPERSCRIPT𝑭p(k+1)𝒵(𝑭pE,tr)superscriptsubscript𝑭𝑝𝑘1𝒵superscriptsubscript𝑭𝑝𝐸𝑡𝑟\bm{F}_{p}^{(k+1)}\leftarrow\mathcal{Z}\left(\bm{F}_{p}^{E,tr}\right)bold_italic_F start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_k + 1 ) end_POSTSUPERSCRIPT ← caligraphic_Z ( bold_italic_F start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_E , italic_t italic_r end_POSTSUPERSCRIPT )𝒗(k+1)𝒗(k)+Δ𝒗(𝑭p(k))superscript𝒗𝑘1superscript𝒗𝑘Δ𝒗superscriptsubscript𝑭𝑝𝑘\bm{v}^{(k+1)}\leftarrow\bm{v}^{(k)}+\Delta\bm{v}(\bm{F}_{p}^{(k)})bold_italic_v start_POSTSUPERSCRIPT ( italic_k + 1 ) end_POSTSUPERSCRIPT ← bold_italic_v start_POSTSUPERSCRIPT ( italic_k ) end_POSTSUPERSCRIPT + roman_Δ bold_italic_v ( bold_italic_F start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_k ) end_POSTSUPERSCRIPT )𝑭pn+1𝒵(𝑭^pn+1)superscriptsubscript𝑭𝑝𝑛1𝒵superscriptsubscript^𝑭𝑝𝑛1\bm{F}_{p}^{n+1}\leftarrow\mathcal{Z}(\hat{\bm{F}}_{p}^{n+1})bold_italic_F start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_n + 1 end_POSTSUPERSCRIPT ← caligraphic_Z ( over^ start_ARG bold_italic_F end_ARG start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_n + 1 end_POSTSUPERSCRIPT )Δ𝒗(tntn+1)Δ𝒗superscript𝑡𝑛superscript𝑡𝑛1\Delta\bm{v}(t^{n}\rightarrow t^{n+1})roman_Δ bold_italic_v ( italic_t start_POSTSUPERSCRIPT italic_n end_POSTSUPERSCRIPT → italic_t start_POSTSUPERSCRIPT italic_n + 1 end_POSTSUPERSCRIPT ) with PBI𝒗nsuperscript𝒗𝑛\bm{v}^{n}bold_italic_v start_POSTSUPERSCRIPT italic_n end_POSTSUPERSCRIPT𝒗n+1superscript𝒗𝑛1\bm{v}^{n+1}bold_italic_v start_POSTSUPERSCRIPT italic_n + 1 end_POSTSUPERSCRIPT
Figure 6. Deformation Gradient Evolution. The dotted line (bottom) illustrates the evolution of the deformation gradient in the updated Lagrangian view, transitioning from 𝑭p0superscriptsubscript𝑭𝑝0\bm{F}_{p}^{0}bold_italic_F start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 0 end_POSTSUPERSCRIPT (initial configuration) to 𝑭pn+1superscriptsubscript𝑭𝑝𝑛1\bm{F}_{p}^{n+1}bold_italic_F start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_n + 1 end_POSTSUPERSCRIPT (updated configuration), with 𝑭pnsuperscriptsubscript𝑭𝑝𝑛\bm{F}_{p}^{n}bold_italic_F start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_n end_POSTSUPERSCRIPT (current configuration) serving as the reference state. This facilitates tracking large deformations. The solid line loop (top) depicts iterations of our PBI algorithm to simulate tntn+1superscript𝑡𝑛superscript𝑡𝑛1t^{n}\rightarrow t^{n+1}italic_t start_POSTSUPERSCRIPT italic_n end_POSTSUPERSCRIPT → italic_t start_POSTSUPERSCRIPT italic_n + 1 end_POSTSUPERSCRIPT, alternating between an XPBD iteration and a fixed point iteration. During iteration k𝑘kitalic_k, 𝑭pE,trsuperscriptsubscript𝑭𝑝𝐸𝑡𝑟\bm{F}_{p}^{E,tr}bold_italic_F start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_E , italic_t italic_r end_POSTSUPERSCRIPT is first estimated based on the current gradient of 𝒗(k)superscript𝒗𝑘\bm{v}^{(k)}bold_italic_v start_POSTSUPERSCRIPT ( italic_k ) end_POSTSUPERSCRIPT (§§\S§ 3.2). Then, plasticity is applied through projection to obtain 𝑭p(k+1)superscriptsubscript𝑭𝑝𝑘1\bm{F}_{p}^{(k+1)}bold_italic_F start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_k + 1 ) end_POSTSUPERSCRIPT (§§\S§ 3.3), and finally, 𝒗(k+1)superscript𝒗𝑘1\bm{v}^{(k+1)}bold_italic_v start_POSTSUPERSCRIPT ( italic_k + 1 ) end_POSTSUPERSCRIPT is updated by solving constraints (§§\S§ 4.1).

Accurately estimating meshless velocity gradients is generally challenging. Most meshless shape functions require a dense neighborhood to fulfill the kernel’s normalization condition. Known as neighborhood deficiency, significant accuracy degradation would occur especially for first-order derivatives (such as velocity gradient) in sparse regions. Kernel gradient correction [Bonet and Lok, 1999] and the reproducing kernel particle method [Liu et al., 1995] are examples of strategies in mitigating this problem. Here we adopt reweighting-based kernel gradient correction [Bonet and Lok, 1999]

(10) 𝑳p1=bVbnWb(𝒙p)(𝒙b𝒙p),superscriptsubscript𝑳𝑝1subscript𝑏tensor-productsuperscriptsubscript𝑉𝑏𝑛subscript𝑊𝑏subscript𝒙𝑝subscript𝒙𝑏subscript𝒙𝑝\displaystyle\bm{L}_{p}^{-1}=\sum_{b}V_{b}^{n}\nabla W_{b}(\bm{x}_{p})\otimes(% \bm{x}_{b}-\bm{x}_{p}),bold_italic_L start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT = ∑ start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT italic_V start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_n end_POSTSUPERSCRIPT ∇ italic_W start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT ( bold_italic_x start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT ) ⊗ ( bold_italic_x start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT - bold_italic_x start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT ) ,

with SVD based pseudo inverse and Wendland kernels for W𝑊Witalic_W and W𝑊\nabla W∇ italic_W, where Vbn=Vb0det(𝑭pn)superscriptsubscript𝑉𝑏𝑛superscriptsubscript𝑉𝑏0detsuperscriptsubscript𝑭𝑝𝑛V_{b}^{n}=V_{b}^{0}\text{det}(\bm{F}_{p}^{n})italic_V start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_n end_POSTSUPERSCRIPT = italic_V start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 0 end_POSTSUPERSCRIPT det ( bold_italic_F start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_n end_POSTSUPERSCRIPT ) is the time n𝑛nitalic_n volume of particle b𝑏bitalic_b. As in many SPH methods, the correction is indispensable for maintaining simulation stability. See Westhofen et al. [2023] for discussions of similarly viable gradient estimation choices. Our discrete velocity gradient at particle p𝑝pitalic_p in ΩnsuperscriptΩ𝑛\Omega^{n}roman_Ω start_POSTSUPERSCRIPT italic_n end_POSTSUPERSCRIPT is then

(11) 𝒗𝒙(𝒙pn)𝒗𝒙superscriptsubscript𝒙𝑝𝑛\displaystyle\frac{\partial\bm{v}}{\partial\bm{x}}(\bm{x}_{p}^{n})divide start_ARG ∂ bold_italic_v end_ARG start_ARG ∂ bold_italic_x end_ARG ( bold_italic_x start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_n end_POSTSUPERSCRIPT ) =bpVbn(𝒗b𝒗p)(𝑳pWb(𝒙pn))T.absentsubscript𝑏𝑝superscriptsubscript𝑉𝑏𝑛subscript𝒗𝑏subscript𝒗𝑝superscriptsubscript𝑳𝑝subscript𝑊𝑏superscriptsubscript𝒙𝑝𝑛𝑇\displaystyle=\sum_{b\neq p}V_{b}^{n}(\bm{v}_{b}-\bm{v}_{p})\left(\bm{L}_{p}% \nabla W_{b}(\bm{x}_{p}^{n})\right)^{T}.= ∑ start_POSTSUBSCRIPT italic_b ≠ italic_p end_POSTSUBSCRIPT italic_V start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_n end_POSTSUPERSCRIPT ( bold_italic_v start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT - bold_italic_v start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT ) ( bold_italic_L start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT ∇ italic_W start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT ( bold_italic_x start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_n end_POSTSUPERSCRIPT ) ) start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT .

Combining the gradient estimation with Eq. 9 and differentiating per-particle constraint Cp(𝑭p)subscript𝐶𝑝subscript𝑭𝑝C_{p}(\bm{F}_{p})italic_C start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT ( bold_italic_F start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT ) (Eq. 6) reveals

(12) 𝒙bCp|bpevaluated-atsubscriptsubscript𝒙𝑏subscript𝐶𝑝𝑏𝑝\displaystyle\nabla_{\bm{x}_{b}}{C_{p}}|_{b\neq p}∇ start_POSTSUBSCRIPT bold_italic_x start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT end_POSTSUBSCRIPT italic_C start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT | start_POSTSUBSCRIPT italic_b ≠ italic_p end_POSTSUBSCRIPT =VbnCp𝑭p𝑭pnT(𝑳pWb(𝒙pn)),absentsuperscriptsubscript𝑉𝑏𝑛subscript𝐶𝑝subscript𝑭𝑝superscriptsuperscriptsubscript𝑭𝑝𝑛𝑇subscript𝑳𝑝subscript𝑊𝑏superscriptsubscript𝒙𝑝𝑛\displaystyle=V_{b}^{n}\frac{\partial C_{p}}{\partial\bm{F}_{p}}{\bm{F}_{p}^{n% }}^{T}(\bm{L}_{p}\nabla W_{b}(\bm{x}_{p}^{n})),= italic_V start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_n end_POSTSUPERSCRIPT divide start_ARG ∂ italic_C start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT end_ARG start_ARG ∂ bold_italic_F start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT end_ARG bold_italic_F start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_n end_POSTSUPERSCRIPT start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT ( bold_italic_L start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT ∇ italic_W start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT ( bold_italic_x start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_n end_POSTSUPERSCRIPT ) ) ,
(13) 𝒙pCpsubscriptsubscript𝒙𝑝subscript𝐶𝑝\displaystyle\nabla_{\bm{x}_{p}}C_{p}∇ start_POSTSUBSCRIPT bold_italic_x start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT end_POSTSUBSCRIPT italic_C start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT =bp𝒙bCp,absentsubscript𝑏𝑝subscriptsubscript𝒙𝑏subscript𝐶𝑝\displaystyle=-\sum_{b\neq p}\nabla_{\bm{x}_{b}}C_{p},= - ∑ start_POSTSUBSCRIPT italic_b ≠ italic_p end_POSTSUBSCRIPT ∇ start_POSTSUBSCRIPT bold_italic_x start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT end_POSTSUBSCRIPT italic_C start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT ,

which provides us all necessary constraint derivatives in XPBD.

Refer to caption
Figure 7. Dam Breach. Our method can be seamlessly coupled with PBF [Macklin and Müller, 2013] to simulate sand and water mixture.
Refer to caption
Figure 8. Hourglass. Sand in hourglass accumulates at the bottom. The material is modeled with Drucker-Prager plasticity [Klár et al., 2016].
Refer to caption
Figure 9. Comparison on notched sand block fall. Inital (left), our fully implicit treatment (middle), and semi-implicit plasticity (right).

3.3. Implicit Plasticity

Plasticity in continuum mechanics is typically solved with return mapping, denoted as 𝒵()𝒵\mathcal{Z}(\cdot)caligraphic_Z ( ⋅ ), which adjusts strains according to a plastic flow rule. It projects an elastic predictor 𝑭E,trsuperscript𝑭𝐸𝑡𝑟\bm{F}^{E,tr}bold_italic_F start_POSTSUPERSCRIPT italic_E , italic_t italic_r end_POSTSUPERSCRIPT onto the yield surface to ensure an inequality constraint on the stress.

To make plasticity implicit, we propose to alternate between (1) an XPBD iteration with a projected stress and (2) a stress projection. This is essentially a fixed point iteration similarly to Li et al. [2022]:

(14) 𝑭p(k+1)𝒵(𝑭pE,tr(𝒗(k)(𝑭p(k)))),superscriptsubscript𝑭𝑝𝑘1𝒵superscriptsubscript𝑭𝑝𝐸𝑡𝑟superscript𝒗𝑘superscriptsubscript𝑭𝑝𝑘\displaystyle\bm{F}_{p}^{(k+1)}\leftarrow\mathcal{Z}\left(\bm{F}_{p}^{E,tr}% \left(\bm{v}^{(k)}\left(\bm{F}_{p}^{(k)}\right)\right)\right),bold_italic_F start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_k + 1 ) end_POSTSUPERSCRIPT ← caligraphic_Z ( bold_italic_F start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_E , italic_t italic_r end_POSTSUPERSCRIPT ( bold_italic_v start_POSTSUPERSCRIPT ( italic_k ) end_POSTSUPERSCRIPT ( bold_italic_F start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_k ) end_POSTSUPERSCRIPT ) ) ) ,

where 𝒗(k)(𝑭p(k))superscript𝒗𝑘superscriptsubscript𝑭𝑝𝑘\bm{v}^{(k)}(\bm{F}_{p}^{(k)})bold_italic_v start_POSTSUPERSCRIPT ( italic_k ) end_POSTSUPERSCRIPT ( bold_italic_F start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_k ) end_POSTSUPERSCRIPT ) is the updated velocity by previous k𝑘kitalic_k XPBD iterations based on 𝑭p(k)superscriptsubscript𝑭𝑝𝑘\bm{F}_{p}^{(k)}bold_italic_F start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_k ) end_POSTSUPERSCRIPT in the previous iteration. In contrast to Li et al. [2022]’s fixed point iteration on 𝒵𝒵\mathcal{Z}caligraphic_Z which functions as an independent outer loop of a full Newton optimization, our design establishes a fixed point on 𝑭𝑭\bm{F}bold_italic_F, updating variables directly impacted by the fixed point iteration within XPBD iterations; see Fig. 6 top and Alg. 1. Resultingly, our implicit plasticity treatment introduces negligible extra cost on top of what implicit elasticity already necessitated.

Nonetheless, convergence in fixed-point iterations depends on an initial guess sufficiently close to the solution, among other conditions of the implicit function. In this paper, we do not monitor quantitative plasticity convergence since few XPBD iterations are needed for visually plausible results. We do emphasize the importance of implicit plasticity and compare it with a semi-implicit treatment which only applies plasticity at the end of a time step; see §§\S§ 5.1.

4. Algorithm

Here we detail the PBI pipeline and its seamlessly integration into existing XPBD. Our pseudocode for advancing a time step using velocity-based XPBD is summarized in Alg. 1.

4.1. Algorithm Overview

Similarly to MPM, we use material particles to discretize the continuum. Each particle p𝑝pitalic_p is governed by a constitutive model-induced constraint Cpsubscript𝐶𝑝C_{p}italic_C start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT (Eq. 6) and a plastic return mapping operator 𝒵𝒵\mathcal{Z}caligraphic_Z. We use Cpsubscript𝐶𝑝C_{p}italic_C start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT to denote particle-wise inelasticity constraints (|{p}|=N=# particles𝑝𝑁# particles|\{p\}|=N=\#\text{ particles}| { italic_p } | = italic_N = # particles) and Cisubscript𝐶𝑖C_{i}italic_C start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT to denote traditional PBD constraints (|{i}|=M𝑖𝑀|\{i\}|=M| { italic_i } | = italic_M).

Due to our dependency on velocity gradients, it is more natural to reparametrize XPBD with velocities rather than positions as primary unknown variables. Closely resembling position-based XPBD, we solve for velocities 𝒗n+1superscript𝒗𝑛1\bm{v}^{n+1}bold_italic_v start_POSTSUPERSCRIPT italic_n + 1 end_POSTSUPERSCRIPT and Lagrange multipliers 𝝀n+1superscript𝝀𝑛1\bm{\lambda}^{n+1}bold_italic_λ start_POSTSUPERSCRIPT italic_n + 1 end_POSTSUPERSCRIPT that satisfies

(15) 𝑴(𝒗n+1𝒗~n)𝑪(𝒗n+1)T𝝀n+1𝑴superscript𝒗𝑛1superscript~𝒗𝑛𝑪superscriptsuperscript𝒗𝑛1𝑇superscript𝝀𝑛1\displaystyle\bm{M}(\bm{v}^{n+1}-\tilde{\bm{v}}^{n})-\nabla\bm{C}(\bm{v}^{n+1}% )^{T}\bm{\lambda}^{n+1}bold_italic_M ( bold_italic_v start_POSTSUPERSCRIPT italic_n + 1 end_POSTSUPERSCRIPT - over~ start_ARG bold_italic_v end_ARG start_POSTSUPERSCRIPT italic_n end_POSTSUPERSCRIPT ) - ∇ bold_italic_C ( bold_italic_v start_POSTSUPERSCRIPT italic_n + 1 end_POSTSUPERSCRIPT ) start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT bold_italic_λ start_POSTSUPERSCRIPT italic_n + 1 end_POSTSUPERSCRIPT =𝟎,absent0\displaystyle=\bm{0},= bold_0 ,
(16) 𝑪(𝒗n+1)+𝒂~𝝀n+1𝑪superscript𝒗𝑛1~𝒂superscript𝝀𝑛1\displaystyle\bm{C}(\bm{v}^{n+1})+\tilde{\bm{a}}\bm{\lambda}^{n+1}bold_italic_C ( bold_italic_v start_POSTSUPERSCRIPT italic_n + 1 end_POSTSUPERSCRIPT ) + over~ start_ARG bold_italic_a end_ARG bold_italic_λ start_POSTSUPERSCRIPT italic_n + 1 end_POSTSUPERSCRIPT =𝟎,absent0\displaystyle=\bm{0},= bold_0 ,

by updating per-particle inelastic constraint Cpsubscript𝐶𝑝C_{p}italic_C start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT’s corresponding Lagrangian multiplier λpsubscript𝜆𝑝\lambda_{p}italic_λ start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT with

(17) Δλp=Cpα~pλpb=1N1mb|𝒙bCp(𝒙)|2+αp~,Δsubscript𝜆𝑝subscript𝐶𝑝subscript~𝛼𝑝subscript𝜆𝑝superscriptsubscript𝑏1𝑁1subscript𝑚𝑏superscriptsubscriptsubscript𝒙𝑏subscript𝐶𝑝𝒙2~subscript𝛼𝑝\displaystyle\Delta\lambda_{p}=\frac{-C_{p}-\tilde{\alpha}_{p}\lambda_{p}}{% \sum_{b=1}^{N}\frac{1}{m_{b}}|\nabla_{\bm{x}_{b}}C_{p}(\bm{x})|^{2}+\tilde{% \alpha_{p}}},roman_Δ italic_λ start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT = divide start_ARG - italic_C start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT - over~ start_ARG italic_α end_ARG start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT italic_λ start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT end_ARG start_ARG ∑ start_POSTSUBSCRIPT italic_b = 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_N end_POSTSUPERSCRIPT divide start_ARG 1 end_ARG start_ARG italic_m start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT end_ARG | ∇ start_POSTSUBSCRIPT bold_italic_x start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT end_POSTSUBSCRIPT italic_C start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT ( bold_italic_x ) | start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT + over~ start_ARG italic_α start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT end_ARG end_ARG ,

where αp=1/Vp0subscript𝛼𝑝1superscriptsubscript𝑉𝑝0\alpha_{p}=1/V_{p}^{0}italic_α start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT = 1 / italic_V start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 0 end_POSTSUPERSCRIPT and α~p=αp/h2subscript~𝛼𝑝subscript𝛼𝑝superscript2\tilde{\alpha}_{p}=\alpha_{p}/h^{2}over~ start_ARG italic_α end_ARG start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT = italic_α start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT / italic_h start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT. The velocity update is given by:

(18) Δ𝒗=(𝑴1𝐂(𝒙)TΔ𝝀)/h.Δ𝒗superscript𝑴1𝐂superscript𝒙𝑇Δ𝝀\displaystyle\Delta\bm{v}=\left(\bm{M}^{-1}\nabla\mathbf{C}(\bm{x})^{T}\Delta% \bm{\lambda}\right)/h.roman_Δ bold_italic_v = ( bold_italic_M start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT ∇ bold_C ( bold_italic_x ) start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT roman_Δ bold_italic_λ ) / italic_h .

The velocities and multipliers are jointly updated by a colored Gauss-Seidel iteration (see §§\S§ 4.3 and Alg. 1):

(19) λp(k+1)λp(k)+Δλp,𝒗(k+1)𝒗(k)+Δ𝒗.formulae-sequencesuperscriptsubscript𝜆𝑝𝑘1superscriptsubscript𝜆𝑝𝑘Δsubscript𝜆𝑝superscript𝒗𝑘1superscript𝒗𝑘Δ𝒗\displaystyle\lambda_{p}^{(k+1)}\leftarrow\lambda_{p}^{(k)}+\Delta\lambda_{p},% \quad\bm{v}^{(k+1)}\leftarrow\bm{v}^{(k)}+\Delta\bm{v}.italic_λ start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_k + 1 ) end_POSTSUPERSCRIPT ← italic_λ start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_k ) end_POSTSUPERSCRIPT + roman_Δ italic_λ start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT , bold_italic_v start_POSTSUPERSCRIPT ( italic_k + 1 ) end_POSTSUPERSCRIPT ← bold_italic_v start_POSTSUPERSCRIPT ( italic_k ) end_POSTSUPERSCRIPT + roman_Δ bold_italic_v .
Algorithm 1 Simulating tntn+1superscript𝑡𝑛superscript𝑡𝑛1t^{n}\rightarrow t^{n+1}italic_t start_POSTSUPERSCRIPT italic_n end_POSTSUPERSCRIPT → italic_t start_POSTSUPERSCRIPT italic_n + 1 end_POSTSUPERSCRIPT with PBI
Neighbor search using 𝒙nsuperscript𝒙𝑛\bm{x}^{n}bold_italic_x start_POSTSUPERSCRIPT italic_n end_POSTSUPERSCRIPT \triangleright §§\S§ 4.2
Evaluate kernel gradient correction 𝑳psubscript𝑳𝑝\bm{L}_{p}bold_italic_L start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT \triangleright §§\S§ 3.2
𝒗𝒗n+h𝑴1𝒇ext𝒗superscript𝒗𝑛superscript𝑴1subscript𝒇ext\bm{v}\leftarrow\bm{v}^{n}+h\bm{M}^{-1}\bm{f}_{\text{ext}}bold_italic_v ← bold_italic_v start_POSTSUPERSCRIPT italic_n end_POSTSUPERSCRIPT + italic_h bold_italic_M start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT bold_italic_f start_POSTSUBSCRIPT ext end_POSTSUBSCRIPT
𝝀=𝟎𝝀0\bm{\lambda}=\bm{0}bold_italic_λ = bold_0
for number of XPBD iterations do
     for all p{Cp}𝑝subscript𝐶𝑝p\in\{C_{p}\}italic_p ∈ { italic_C start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT } looping with colored Gauss-Seidel do \triangleright §§\S§ 4.3
         (𝒗)psubscript𝒗𝑝absent(\nabla\bm{v})_{p}\leftarrow( ∇ bold_italic_v ) start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT ← evaluateVelocityGradient(𝒙pn,𝒗p)superscriptsubscript𝒙𝑝𝑛subscript𝒗𝑝(\bm{x}_{p}^{n},\bm{v}_{p})( bold_italic_x start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_n end_POSTSUPERSCRIPT , bold_italic_v start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT )
         𝑭p(I+h(𝒗)p)𝑭pnsubscript𝑭𝑝𝐼subscript𝒗𝑝superscriptsubscript𝑭𝑝𝑛\bm{F}_{p}\leftarrow(I+h(\nabla\bm{v})_{p})\bm{F}_{p}^{n}bold_italic_F start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT ← ( italic_I + italic_h ( ∇ bold_italic_v ) start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT ) bold_italic_F start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_n end_POSTSUPERSCRIPT
         𝑭p𝒵(𝑭p)subscript𝑭𝑝𝒵subscript𝑭𝑝\bm{F}_{p}\leftarrow\mathcal{Z}(\bm{F}_{p})bold_italic_F start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT ← caligraphic_Z ( bold_italic_F start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT ) \triangleright §§\S§ 3.3
         if Cp(𝑭p)0subscript𝐶𝑝subscript𝑭𝑝0C_{p}(\bm{F}_{p})\neq 0italic_C start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT ( bold_italic_F start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT ) ≠ 0 then
              Δλp=Cpα~λi=1N1mi|𝒙iCp(𝒙)|2+α~Δsubscript𝜆𝑝subscript𝐶𝑝~𝛼𝜆superscriptsubscript𝑖1𝑁1subscript𝑚𝑖superscriptsubscriptsubscript𝒙𝑖subscript𝐶𝑝𝒙2~𝛼\Delta\lambda_{p}=\frac{-C_{p}-\tilde{\alpha}\lambda}{\sum_{i=1}^{N}\frac{1}{m% _{i}}|\nabla_{\bm{x}_{i}}C_{p}(\bm{x})|^{2}+\tilde{\alpha}}roman_Δ italic_λ start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT = divide start_ARG - italic_C start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT - over~ start_ARG italic_α end_ARG italic_λ end_ARG start_ARG ∑ start_POSTSUBSCRIPT italic_i = 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_N end_POSTSUPERSCRIPT divide start_ARG 1 end_ARG start_ARG italic_m start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT end_ARG | ∇ start_POSTSUBSCRIPT bold_italic_x start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT end_POSTSUBSCRIPT italic_C start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT ( bold_italic_x ) | start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT + over~ start_ARG italic_α end_ARG end_ARG
              λpλp+Δλpsubscript𝜆𝑝subscript𝜆𝑝Δsubscript𝜆𝑝\lambda_{p}\leftarrow\lambda_{p}+\Delta\lambda_{p}italic_λ start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT ← italic_λ start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT + roman_Δ italic_λ start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT
              Δ𝒗=1h𝑴1Cp(𝒙)TΔλpΔ𝒗1superscript𝑴1subscript𝐶𝑝superscript𝒙𝑇Δsubscript𝜆𝑝\Delta\bm{v}=\frac{1}{h}\bm{M}^{-1}\nabla C_{p}(\bm{x})^{T}\Delta\lambda_{p}roman_Δ bold_italic_v = divide start_ARG 1 end_ARG start_ARG italic_h end_ARG bold_italic_M start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT ∇ italic_C start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT ( bold_italic_x ) start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT roman_Δ italic_λ start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT
              𝒗𝒗+Δ𝒗𝒗𝒗Δ𝒗\bm{v}\leftarrow\bm{v}+\Delta\bm{v}bold_italic_v ← bold_italic_v + roman_Δ bold_italic_v
         end if
     end for
     for all i{Ci}𝑖subscript𝐶𝑖i\in\{C_{i}\}italic_i ∈ { italic_C start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT } looping with colored Gauss-Seidel do
         Δ𝒗=1h𝑴1Ci(𝒙)TΔλiΔ𝒗1superscript𝑴1subscript𝐶𝑖superscript𝒙𝑇Δsubscript𝜆𝑖\Delta\bm{v}=\frac{1}{h}\bm{M}^{-1}\nabla C_{i}(\bm{x})^{T}\Delta\lambda_{i}roman_Δ bold_italic_v = divide start_ARG 1 end_ARG start_ARG italic_h end_ARG bold_italic_M start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT ∇ italic_C start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ( bold_italic_x ) start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT roman_Δ italic_λ start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT (e.g., position correction)\triangleright §§\S§ 4.4
         𝒗𝒗+Δ𝒗𝒗𝒗Δ𝒗\bm{v}\leftarrow\bm{v}+\Delta\bm{v}bold_italic_v ← bold_italic_v + roman_Δ bold_italic_v
     end for
end for
𝒗n+1𝒗superscript𝒗𝑛1𝒗\bm{v}^{n+1}\leftarrow\bm{v}bold_italic_v start_POSTSUPERSCRIPT italic_n + 1 end_POSTSUPERSCRIPT ← bold_italic_v
Perform XSPH smoothing of 𝒗n+1(𝒙n)superscript𝒗𝑛1superscript𝒙𝑛\bm{v}^{n+1}(\bm{x}^{n})bold_italic_v start_POSTSUPERSCRIPT italic_n + 1 end_POSTSUPERSCRIPT ( bold_italic_x start_POSTSUPERSCRIPT italic_n end_POSTSUPERSCRIPT ) \triangleright §§\S§ 4.4
Update 𝑭pn+1superscriptsubscript𝑭𝑝𝑛1\bm{F}_{p}^{n+1}bold_italic_F start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_n + 1 end_POSTSUPERSCRIPT and apply constitutive models \triangleright §§\S§ 4.5
𝒙n+1𝒙n+h𝒗n+1superscript𝒙𝑛1superscript𝒙𝑛superscript𝒗𝑛1\bm{x}^{n+1}\leftarrow\bm{x}^{n}+h\bm{v}^{n+1}bold_italic_x start_POSTSUPERSCRIPT italic_n + 1 end_POSTSUPERSCRIPT ← bold_italic_x start_POSTSUPERSCRIPT italic_n end_POSTSUPERSCRIPT + italic_h bold_italic_v start_POSTSUPERSCRIPT italic_n + 1 end_POSTSUPERSCRIPT
Note: α=1/Vp0𝛼1superscriptsubscript𝑉𝑝0\alpha=1/V_{p}^{0}italic_α = 1 / italic_V start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 0 end_POSTSUPERSCRIPT and α~=α/h2~𝛼𝛼superscript2\tilde{\alpha}=\alpha/h^{2}over~ start_ARG italic_α end_ARG = italic_α / italic_h start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT for each constraint.

4.2. Particle Neighbor Search

We reconstruct the neighbor information for each particle at the beginning of each timestep, similarly to Macklin and Müller [2013]. A comprehensive overview of CPU- and GPU-based neighborhood search methods is surveyed by Ihmsen et al. [2014]. Each material particle is assigned the same kernel radius in our discretization scheme. We adopt a uniform spatial-grid-based method for neighborhood searches following Hoetzlein [2014]. Particles are spatially stored in cells while neighbor lists 𝒩p={bxpxb22r}subscript𝒩𝑝conditional-set𝑏subscriptnormsubscript𝑥𝑝subscript𝑥𝑏22𝑟\mathcal{N}_{p}=\{b\mid\|x_{p}-x_{b}\|_{2}\leq 2r\}caligraphic_N start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT = { italic_b ∣ ∥ italic_x start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT - italic_x start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT ∥ start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ≤ 2 italic_r } are determined by querying adjacent grid cells using the Wendland kernel’s support radius of 2r2𝑟2r2 italic_r.

4.3. Colored Gauss-Seidel

Original PBD and XPBD frameworks solve constraints iteratively using nonlinear Gauss-Seidel [Müller et al., 2007; Macklin et al., 2014, 2016]. In contrast, Macklin and Müller [2013] adopted a Jacobi-style iteration for fluids, solving each constraint independently to enhance parallelism. We found that for high resolution and often high stiffness simulations considered in this paper, Jacobi iterations too slowly propagate information and often suffer from non-convergence (also noted by Macklin et al. [2014]). Thus we implement colored Gauss-Seidel to maximize convergence, parallelism, and GPU throughput. We assign particles into cells with Δx=2rΔ𝑥2𝑟\Delta x=2rroman_Δ italic_x = 2 italic_r (§§\S§ 4.2). 3dsuperscript3𝑑3^{d}3 start_POSTSUPERSCRIPT italic_d end_POSTSUPERSCRIPT colors are specified for eliminating dependencies between constraints in a d𝑑ditalic_d-dimensional simulation. We process all cells of the same color in parallel while constraints Cpcisubscript𝐶𝑝subscript𝑐𝑖C_{p}\in c_{i}italic_C start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT ∈ italic_c start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT corresponding to all particles in the same cell cisubscript𝑐𝑖c_{i}italic_c start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT are computed serially.

Table 2. Parameters and Statistics. We summarize the parameters and timing statistics, including maximum particle numbers, the Wendland kernel radius, the average time per frame, the XPBD iterations per substep, and the time step size ΔtΔ𝑡\Delta troman_Δ italic_t for various demos described in §§\S§ 5.2. Material-related parameters are detailed in the last two columns. The abbreviations are NACC for Non-Associated Cam-Clay [Wolper et al., 2019], DP for Drucker-Prager [Klár et al., 2016], VM for Von Mises [Li et al., 2022], and HB for Herschel-Bulkley [Yue et al., 2015]. In addition to the basic settings of the material (density ρ𝜌\rhoitalic_ρ, Youngs Modulus E𝐸Eitalic_E, and Poisson Ratio ν𝜈\nuitalic_ν), we include model-specific parameters arranged as follows: 1) NACC: (ρ,E,ν,α0,β,ξ,M)𝜌𝐸𝜈subscript𝛼0𝛽𝜉𝑀(\rho,E,\nu,\alpha_{0},\beta,\xi,M)( italic_ρ , italic_E , italic_ν , italic_α start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT , italic_β , italic_ξ , italic_M ); 2) DP: (ρ,E,ν,ϕf,c0)𝜌𝐸𝜈subscriptitalic-ϕ𝑓subscript𝑐0(\rho,E,\nu,\phi_{f},c_{0})( italic_ρ , italic_E , italic_ν , italic_ϕ start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT , italic_c start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT ); 3) VM: (ρ,E,ν,σγ)𝜌𝐸𝜈subscript𝜎𝛾(\rho,E,\nu,\sigma_{\gamma})( italic_ρ , italic_E , italic_ν , italic_σ start_POSTSUBSCRIPT italic_γ end_POSTSUBSCRIPT ); and 4) HB: (ρ,E,ν,σγ,h,η)𝜌𝐸𝜈subscript𝜎𝛾𝜂(\rho,E,\nu,\sigma_{\gamma},h,\eta)( italic_ρ , italic_E , italic_ν , italic_σ start_POSTSUBSCRIPT italic_γ end_POSTSUBSCRIPT , italic_h , italic_η ). See references for detailed explanations of these parameters.
demo particle # radius ave sec/frame iter # ΔtframeΔsubscript𝑡frame\Delta t_{\text{frame}}roman_Δ italic_t start_POSTSUBSCRIPT frame end_POSTSUBSCRIPT ΔtstepΔsubscript𝑡step\Delta t_{\text{step}}roman_Δ italic_t start_POSTSUBSCRIPT step end_POSTSUBSCRIPT material material parameters
(Fig. 13) Hitman 1.05M 1/51215121/5121 / 512 41.2 10 1/100 4×1054superscript1054\times 10^{-5}4 × 10 start_POSTSUPERSCRIPT - 5 end_POSTSUPERSCRIPT NACC (4,2×104,0.3,0.005,0.05,30,1.85)42superscript1040.30.0050.05301.85(4,2\times 10^{4},0.3,-0.005,0.05,30,1.85)( 4 , 2 × 10 start_POSTSUPERSCRIPT 4 end_POSTSUPERSCRIPT , 0.3 , - 0.005 , 0.05 , 30 , 1.85 )
(Fig. 13) Snow Dive 2.48M 1/51215121/5121 / 512 84.7 5 1/100 4×1054superscript1054\times 10^{-5}4 × 10 start_POSTSUPERSCRIPT - 5 end_POSTSUPERSCRIPT NACC (4,1×104,0.3,0.0005,0.05,30,1.85)41superscript1040.30.00050.05301.85(4,1\times 10^{4},0.3,-0.0005,0.05,30,1.85)( 4 , 1 × 10 start_POSTSUPERSCRIPT 4 end_POSTSUPERSCRIPT , 0.3 , - 0.0005 , 0.05 , 30 , 1.85 )
(Fig. 2) Noodles 1.18M 1/25612561/2561 / 256 67.1 10 1/40 1×1041superscript1041\times 10^{-4}1 × 10 start_POSTSUPERSCRIPT - 4 end_POSTSUPERSCRIPT VM (1,2×104,0.3,76.9)12superscript1040.376.9(1,2\times 10^{4},0.3,76.9)( 1 , 2 × 10 start_POSTSUPERSCRIPT 4 end_POSTSUPERSCRIPT , 0.3 , 76.9 )
(Fig. 8) Hourglass 1.01M 1/1024110241/10241 / 1024 47.9 5 1/24 1×1041superscript1041\times 10^{-4}1 × 10 start_POSTSUPERSCRIPT - 4 end_POSTSUPERSCRIPT DP (1,3.537×105,0.3,35,0)13.537superscript1050.3350(1,3.537\times 10^{5},0.3,35,0)( 1 , 3.537 × 10 start_POSTSUPERSCRIPT 5 end_POSTSUPERSCRIPT , 0.3 , 35 , 0 )
(Fig. 7) Dam Breach 4.00M 1/38413841/3841 / 384 198.5 7 1/24 2.5×1042.5superscript1042.5\times 10^{-4}2.5 × 10 start_POSTSUPERSCRIPT - 4 end_POSTSUPERSCRIPT DP (1,400,0.4,30,0.0007)14000.4300.0007(1,400,0.4,30,0.0007)( 1 , 400 , 0.4 , 30 , 0.0007 )
(Fig. 5) Camponotus 1.12M 1/1024110241/10241 / 1024 52.0 10 1/100 4×1054superscript1054\times 10^{-5}4 × 10 start_POSTSUPERSCRIPT - 5 end_POSTSUPERSCRIPT NACC (2,2×104,0.35,0.02,0.5,1,2.36)22superscript1040.350.020.512.36(2,2\times 10^{4},0.35,-0.02,0.5,1,2.36)( 2 , 2 × 10 start_POSTSUPERSCRIPT 4 end_POSTSUPERSCRIPT , 0.35 , - 0.02 , 0.5 , 1 , 2.36 )
(Fig. 3) Cloth 1.10M 1/51215121/5121 / 512 43.7 10 1/100 5×1055superscript1055\times 10^{-5}5 × 10 start_POSTSUPERSCRIPT - 5 end_POSTSUPERSCRIPT HB (100,14754,0.475,50,1,10)100147540.47550110(100,14754,0.475,50,1,10)( 100 , 14754 , 0.475 , 50 , 1 , 10 )
(Fig. 16) Wrist 20K 1/25612561/2561 / 256 0.015 5 1/100 2×1042superscript1042\times 10^{-4}2 × 10 start_POSTSUPERSCRIPT - 4 end_POSTSUPERSCRIPT HB (100,2250,0.125,10,1,10)10022500.12510110(100,2250,0.125,10,1,10)( 100 , 2250 , 0.125 , 10 , 1 , 10 )

The efficiency of this implementation heavily depends on the average Particle Per Cell (PPC), as particles within the same cell are traversed sequentially. To optimize PPC and ensure an even particle distribution, we utilize Poisson disk sampling [Bridson, 2007] during the initial particle placement.

Refer to caption
Figure 10. Hydraulic test on a stiff aluminum wheel: initial (left), w/ (middle) and w/o (right) position correction. The simulation suffers from artificial fracture and instability without our correction.
Refer to caption
Figure 11. PBI effectively captures viscoplastic coiling; as the shear modulus μ𝜇\muitalic_μ increases from left to right, coils become more elastic.

4.4. XSPH and Position Correction

The goal of eXtended Smoothed Particle Hydrodynamics (XSPH) is to incorporate artificial viscosity for mitigating nonphysical oscillations in dynamics observed in SPH-based simulations, which is more observable when the material is stiff and the constraints become hard to solve. We follow Schechter and Bridson [2012]’s simpler XSPH-style noise damping after velocity update by blending in surrounding particle velocities in ΩnsuperscriptΩ𝑛\Omega^{n}roman_Ω start_POSTSUPERSCRIPT italic_n end_POSTSUPERSCRIPT:

(20) 𝒗pn+1,new𝒗pn+1+cbVbn(𝒗bn+1𝒗pn+1)Wb(𝒙pn).subscriptsuperscript𝒗𝑛1𝑛𝑒𝑤𝑝superscriptsubscript𝒗𝑝𝑛1𝑐subscript𝑏superscriptsubscript𝑉𝑏𝑛superscriptsubscript𝒗𝑏𝑛1superscriptsubscript𝒗𝑝𝑛1subscript𝑊𝑏superscriptsubscript𝒙𝑝𝑛\displaystyle\bm{v}^{n+1,new}_{p}\leftarrow\bm{v}_{p}^{n+1}+c\sum_{b}V_{b}^{n}% (\bm{v}_{b}^{n+1}-\bm{v}_{p}^{n+1})\cdot W_{b}(\bm{x}_{p}^{n}).bold_italic_v start_POSTSUPERSCRIPT italic_n + 1 , italic_n italic_e italic_w end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT ← bold_italic_v start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_n + 1 end_POSTSUPERSCRIPT + italic_c ∑ start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT italic_V start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_n end_POSTSUPERSCRIPT ( bold_italic_v start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_n + 1 end_POSTSUPERSCRIPT - bold_italic_v start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_n + 1 end_POSTSUPERSCRIPT ) ⋅ italic_W start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT ( bold_italic_x start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_n end_POSTSUPERSCRIPT ) .

XSPH encourages smooth and coherent motion for inelastic materials in this paper. We use c=0.01𝑐0.01c=0.01italic_c = 0.01 in all examples.

In particle-based simulations, including but not limited to SPH, FLIP [Brackbill and Ruppel, 1986; Zhu and Bridson, 2005], and APIC [Jiang et al., 2015], non-physical particle clumping and uneven particle distributions are common issues due to accumulation of advection errors. While MPM is insensitive to the problem due to its structural grid nature, it is crucial for pure particle-based methods like SPH and our approach to maintain reasonably even particle distributions. Without doing so can strongly impair simulation quality and convergence, particularly when material stiffness is high.

Various techniques in graphics have been proposed to address this by shifting particle positions [Ando et al., 2012; Ando and Tsuruno, 2011; Kugelstadt et al., 2019]. However, we point out that while these methods work well for fluids, they are problematic for updated Lagrangian simulations because such positional shifting is transparent to the evolution of deformation gradients, leading to discrepancy between the positions of points and their perceived deformations. Fortunately within XPBD we can directly adopt a point-point distance constraint [Macklin et al., 2014]

(21) C(𝒙p,𝒙b)=𝒙p𝒙b2r+ϵ0𝐶subscript𝒙𝑝subscript𝒙𝑏subscriptnormsubscript𝒙𝑝subscript𝒙𝑏2𝑟italic-ϵ0\displaystyle C(\bm{x}_{p},\bm{x}_{b})=\left\|\bm{x}_{p}-\bm{x}_{b}\right\|_{2% }-r+\epsilon\geq 0italic_C ( bold_italic_x start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT , bold_italic_x start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT ) = ∥ bold_italic_x start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT - bold_italic_x start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT ∥ start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT - italic_r + italic_ϵ ≥ 0

inside nonlinear iterations. Here r𝑟ritalic_r represents the particle kernel radius and ϵitalic-ϵ\epsilonitalic_ϵ is a small gap threshold used to determine when corrective action is needed for nearby particle pairs. We set ϵitalic-ϵ\epsilonitalic_ϵ to 0.25r0.25𝑟0.25r0.25 italic_r.

4.5. Deformation Gradient Update

Strain variables within XPBD iterations are temporary. After arriving at the post-XSPH velocity 𝒗n+1superscript𝒗𝑛1\bm{v}^{n+1}bold_italic_v start_POSTSUPERSCRIPT italic_n + 1 end_POSTSUPERSCRIPT, we update both the deformation gradient state and position state using the same velocity – an essential subtlety to maintain their consistency:

(22) 𝑭pn+1=𝒵((𝑰+h𝒗n+1𝒙(𝒙pn))𝑭pn),superscriptsubscript𝑭𝑝𝑛1𝒵𝑰superscript𝒗𝑛1𝒙superscriptsubscript𝒙𝑝𝑛superscriptsubscript𝑭𝑝𝑛\displaystyle{\bm{F}}_{p}^{n+1}=\mathcal{Z}\left(\left(\bm{I}+h\frac{\partial% \bm{v}^{n+1}}{\partial\bm{x}}(\bm{x}_{p}^{n})\right)\bm{F}_{p}^{n}\right),bold_italic_F start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_n + 1 end_POSTSUPERSCRIPT = caligraphic_Z ( ( bold_italic_I + italic_h divide start_ARG ∂ bold_italic_v start_POSTSUPERSCRIPT italic_n + 1 end_POSTSUPERSCRIPT end_ARG start_ARG ∂ bold_italic_x end_ARG ( bold_italic_x start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_n end_POSTSUPERSCRIPT ) ) bold_italic_F start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_n end_POSTSUPERSCRIPT ) ,

where inelastic return mapping is also applied to ensure the stored elastic deformation gradient is within the yield region.

Refer to caption
Figure 12. A typical breakdown of the total computational cost of our framework. We take the Hourglass example (Fig. 8) for demonstration.
Refer to caption
Figure 13. Hitman and Snow Dive. We successfully reproduce realistic and complex snow behaviors, such as a snowball hitting a person (top) and a person falling into a snow ground (bottom), using NACC [Wolper et al., 2019] constitutive model.

5. Results

Here we evaluate and benchmark our Position-based Inelasticity (PBI) framework in terms of visual results against traditional XPBD and MPM methods, as detailed in §§\S§ 5.1. Additionally, we present various demonstrations in §§\S§ 5.2 that illustrate PBI’s effective handling of diverse phenomena. We use Intel Core i9-14900KF CPU with 32GB memory and NVIDIA GeForce RTX 4090. We model common inelastic materials including Cam-Clay (NACC) [Wolper et al., 2019] snow and fracture, Drucker-Prager [Klár et al., 2016; Tampubolon et al., 2017] sand, Von Mises [Li et al., 2022] plasticine and metal, and Herschel-Bulkley [Yue et al., 2015] foam.

5.1. Evaluation

[Uncaptioned image]

Intuitive Parameters

We simulate sand collapsing with varying friction angles ϕfsubscriptitalic-ϕ𝑓\phi_{f}italic_ϕ start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT. Our method reproduces characteristic piling shapes. Similarly we can easily control the fluidity of viscoplastic goo (Fig. 11). A smaller μ𝜇\muitalic_μ gives a more fluid-like appearance, while a larger μ𝜇\muitalic_μ leads to more elastic behavior. In Fig. 4, we compare viscoplastic, shear thinning, and shear thickening materials by only altering the Herschel-Bulkley power parameter hhitalic_h. Upon impact with a ground plane, the shear thickening material exhibits low flow rates under high stress, behaving elastically and bouncing off. Conversely, the shear thinning material flows immediately due to its higher flow rate.

Refer to caption
Figure 14. Vanilla XPBD v.s. MPM v.s. PBI. We simulate two sand blocks collide (top) and sand column collapse (bottom) with vanilla XPBD [Macklin et al., 2014, 2016] (left), MPM [Klár et al., 2016] (middle), and our method (right). Vanilla XPBD fails to accurately replicate the correct friction angle. While both MPM and our method successfully model the continuum behavior of sand, our method results in a more uniform particle distribution. In the rightmost image, we quantitatively compare these results by plotting the average distance between each particle and its nearest neighbor for each simulation frame, with the shaded areas indicating the respective standard deviations.

Comparisons to Vanilla XPBD and MPM

We compare PBI sand with both vanilla XPBD [Macklin et al., 2014, 2016], which employs a point-wise friction model, and explicit MPM with Drucker-Prager plasticity [Klár et al., 2016]; see Fig. 14. This comparison includes simulations of two sand blocks collide (top) and sand column collapse (bottom). All methods apply a timestep of Δt=0.1Δ𝑡0.1\Delta t=0.1roman_Δ italic_t = 0.1 ms, with identical initial sampling positions for all particles across the methods. The vanilla XPBD (left) approach fails to accurately replicate the correct friction angle upon sand settling. While both MPM (middle) and PBI (right) successfully model the continuum behavior of sand, our method achieves a more uniform particle distribution, avoiding the sparsity, clumping, and artificial grid ΔxΔ𝑥\Delta xroman_Δ italic_x-gap phenomena typically caused by MPM solvers. For a quantitative analysis, we also plotted the average distance between each particle and its nearest neighbor per frame, displayed on the far right of Fig. 14. Each particle was initially positioned at intervals equal to the particle radius. The average distance relative to the initial state in the MPM decreases rapidly post-collision, accompanied by an increase in the variance of the distance, whereas our method maintains both the relative distance and variance stably throughout the simulation, indicating a more consistent particle distribution. It is also noteworthy that our method aligns more closely with the approach of [Yue et al., 2018] compared to MPM, opting for Discrete Element Method (DEM) to capture more discrete behaviors near the free surface.

Implicit Plasticity

We evaluate our fully implicit plasticity treatment by replacing it with a semi-implicit method, which only performs return mappings at the end of the time steps as in Stomakhin et al. [2013] §§\S§ 4.5), while XPBD iterations only address elasticity. As shown in Fig. 9, the semi-implicit approach (right) can lead to severe artifacts. This occurs because the forces generated by stresses outside the yield surface cause the continuum to behave more like a purely elastic body. This artifact results from the semi-implicit method’s failure to account for plasticity during the XPBD solve, leading to an overestimation of the material’s resistance to tensile deformation. In contrast, our method (middle) fully incorporates plasticity in the XPBD iterations and avoids such artifacts.

Refer to caption
Figure 15. Cantilever beams modeled with StVK constitutive model using our method with different stiffness (top). Relative residual errors in 𝒉(𝒗,𝝀)=𝐂(𝒗)+𝒂~𝝀𝒉𝒗𝝀𝐂𝒗~𝒂𝝀\bm{h(\bm{v},\bm{\lambda})}=\mathbf{C}(\bm{v})+\tilde{\bm{a}}\bm{\lambda}bold_italic_h bold_( bold_italic_v bold_, bold_italic_λ bold_) = bold_C ( bold_italic_v ) + over~ start_ARG bold_italic_a end_ARG bold_italic_λ for a single frame taken from the above examples (bottom).
Refer to caption
Figure 16. Real-time Vision ProTM Interaction. Interactive manipulation of a viscoelastic fluid, consisting of up to 20K particles, is simulated at 30fps. Hand movements are tracked using an Apple Vision ProTM device and VisionProTeleop [Park and Agrawal, 2024] open-sourced protocol, with these motions applied to a virtual hand interacting with the coiling fluid.
Refer to caption
Figure 17. We simulate viscoplastic monsters falling to the ground using varying numbers of particles. We plot the computation time for each frame for 8K, 56K, 400K, and 3M (left) particles, demonstrating consistent behaviors across different particle counts. We also plot the average cost per particle (right). The running overhead of our algorithm decreases significantly as the number of particles increases, showing strong superlinear scalability.

Convergence

We study the convergence of our method using cantilever beams of varying stiffness, E=104,105,106𝐸superscript104superscript105superscript106E=10^{4},10^{5},10^{6}italic_E = 10 start_POSTSUPERSCRIPT 4 end_POSTSUPERSCRIPT , 10 start_POSTSUPERSCRIPT 5 end_POSTSUPERSCRIPT , 10 start_POSTSUPERSCRIPT 6 end_POSTSUPERSCRIPT, respectively (Fig. 15). We set the density at 100100100100 and the timestep at Δt=5Δ𝑡5\Delta t=5roman_Δ italic_t = 5 ms. We also compare the relative residual errors of the Gauss-Seidel and Jacobi solvers in our method. PBI with Gauss-Seidel can converge stably with a large timestep. In contrast, the Jacobi solver only converges with softer materials and struggles with high stiffness. This is consistent with observations about XPBD in prior work. Given that the materials discussed in our paper are predominantly very stiff, we opted for grid-colored Gauss-Seidel as our solver. Although using a large timestep is feasible with sufficient iterations, it becomes cost-inefficient if too many iterations are required. Thus, following Macklin et al. [2019], we employ a small timestep.

Position Correction

To validate the importance of position correction, we conducted a hydraulic test on a highly stiff aluminum wheel, as shown in Fig. 10. Without position correction, areas with significant deformation and stress suffer from gradient estimation errors due to uneven particle distribution, resulting in artificial fractures and eventually simulation instability. With position correction, however, we can reliably simulate high-stiffness materials under extensive deformation. This example also shows our capability in animating metal ductility using Von Mises plasticity.

Scalability

To demonstrate the scalability of our method, we simulate viscoplastic monsters hitting the ground using 8K, 56K, 400K, and 3M particles, respectively. We maintain a constant simulation time step of Δt=0.1Δ𝑡0.1\Delta t=0.1roman_Δ italic_t = 0.1 ms, perform 10 iterations of XPBD per substep, and apply consistent material parameters across all simulations. Our method consistently replicates material behavior at varying resolutions, as depicted in Fig. 17. We measure and plot the computation time for each individual frame (left) alongside the average computation time per particle (right). The average computation times per particle for 8K, 56K, 400K, and 3M are 0.75 ms, 0.178 ms, 0.075 ms, and 0.038 ms, respectively. These results highlight strong scalability; as the number of particles increases, the colored Gauss-Seidel solver can more effectively exploit GPU resources, significantly reducing the overall computational overhead per particle.

Timing Breakdown

Fig. 12 illustrates the GPU computational cost breakdown for the Hourglass simulation example. In the breakdown, Collision Detection refers to the time spent on constructing the LBVH [Karras, 2012] and querying for collision between point-triangle pairs. Neighbor Search covers the time taken to build the background grid and neighborhood list by querying adjacent cells (see §§\S§ 4.2 for details). Solve Inelasticity Constraints involves our colored Gauss-Seidel solver for inelasticity constraints, including fixed-point implicit plasticity treatment. Solve Other Constraints accounts for the time spent on resolving all other constraints, such as point-triangle distance constraints for boundary conditions, position correction, as well as stretching, bending, and density constraints in other examples. XSPH and Update Particle State are detailed in §§\S§ 4.4 and §§\S§ 4.5, respectively. The majority of our framework’s computational time is spent on solving inelasticity constraints, while additional stability enhancements like XSPH and position correction contribute a relatively small overhead.

5.2. Demos

Complex materials with up to millions of particles, such as snow (Fig. 13), sand (Fig. 8), mud (Fig. 2, Fig. 7), viscoplastic paint (and its coupling with traditional XPBD cloth) (Fig. 3), and brittle fracture (Fig. 5) can be simulated with PBI. The timing and parameters are summarized in Table. 2.

Real-time Interaction

We further showcase our method in interactive applications where very small time steps are impractical. The convergence and stability of our approach enable interactive performance in moderately complex scenarios involving 20K particles. For this application, we employ the Jacobi solver due to its significant parallelism capabilities on GPUs for small-scale simulation. In this example, we use an Apple Vision Pro VR device and VisionProTeleop [Park and Agrawal, 2024] to track hand motions and enable a virtual hand to interact with viscous fluids.

6. Discussion

In summary, PBI is a novel updated Lagrangian enhancement for XPBD, enhancing its capability for simulating complex inelastic behaviors governed by continuum mechanics-based constitutive laws. Further incorporating an implicit plasticity treatment and stability enhancements, PBI can be easily integrated into standard XPBD to open up its new simulation possibilities.

While PBI supports a broad range of material behaviors, Maxwell viscoelastic materials [Fang et al., 2019] necessitate more specialized treatment. Also, interactions between sand and water mixtures occur primarily at the material boundary. Simulating actual porous media [Tampubolon et al., 2017] and fluid sediment mixture [Gao et al., 2018] with proper momentum transfer are interesting future work.

Another direction is to optimize parallelism for solving inelastic per-particle constraints. Although grid-colored Gauss-Seidel significantly improves performance over sequential iterations in large-scale simulations, it underperforms in small-scale cases on modern GPUs due to low utilization, obstructing many interactive rate experiments. A tailored real-time solver would be interesting.

References

  • [1]
  • Abu Rumman et al. [2020] Nadine Abu Rumman, Prapanch Nair, Patric Müller, Loïc Barthe, and David Vanderhaeghe. 2020. ISPH–PBD: coupled simulation of incompressible fluids and deformable bodies. The Visual Computer 36, 5 (2020), 893–910.
  • Alduán and Otaduy [2011] Iván Alduán and Miguel A Otaduy. 2011. SPH granular flow with friction and cohesion. In Proceedings of the 2011 ACM SIGGRAPH/Eurographics symposium on computer animation. 25–32.
  • Ando et al. [2012] Ryoichi Ando, Nils Thurey, and Reiji Tsuruno. 2012. Preserving fluid sheets with adaptively sampled anisotropic particles. IEEE Transactions on Visualization and Computer Graphics 18, 8 (2012), 1202–1214.
  • Ando and Tsuruno [2011] Ryoichi Ando and Reiji Tsuruno. 2011. A particle-based method for preserving fluid sheets. In Proceedings of the 2011 ACM SIGGRAPH/Eurographics symposium on computer animation. 7–16.
  • Barreiro et al. [2017] Héctor Barreiro, Ignacio García-Fernández, Iván Alduán, and Miguel A Otaduy. 2017. Conformation constraints for efficient viscoelastic fluid simulation. ACM Transactions on Graphics (TOG) 36, 6 (2017), 1–11.
  • Bender et al. [2014] Jan Bender, Dan Koschier, Patrick Charrier, and Daniel Weber. 2014. Position-based simulation of continuous materials. Computers & Graphics 44 (2014), 1–10.
  • Bender et al. [2017] Jan Bender, Matthias Müller, and Miles Macklin. 2017. A survey on position based dynamics, 2017. In Proceedings of the European Association for Computer Graphics: Tutorials. 1–31.
  • Bonet and Lok [1999] Javier Bonet and T-SL Lok. 1999. Variational and momentum preservation aspects of smooth particle hydrodynamic formulations. Computer Methods in applied mechanics and engineering 180, 1-2 (1999), 97–115.
  • Bouaziz et al. [2023] Sofien Bouaziz, Sebastian Martin, Tiantian Liu, Ladislav Kavan, and Mark Pauly. 2023. Projective dynamics: Fusing constraint projections for fast simulation. In Seminal Graphics Papers: Pushing the Boundaries, Volume 2. 787–797.
  • Brackbill and Ruppel [1986] Jeremiah U Brackbill and Hans M Ruppel. 1986. FLIP: A method for adaptively zoned, particle-in-cell calculations of fluid flows in two dimensions. Journal of Computational physics 65, 2 (1986), 314–343.
  • Bridson [2007] Robert Bridson. 2007. Fast Poisson disk sampling in arbitrary dimensions. SIGGRAPH sketches 10, 1 (2007), 1.
  • Chen et al. [2018] Wei Chen, Fei Zhu, Jing Zhao, Sheng Li, and Guoping Wang. 2018. Peridynamics-Based Fracture Animation for Elastoplastic Solids. In Computer Graphics Forum, Vol. 37. Wiley Online Library, 112–124.
  • Chen et al. [2023] Yizhou Chen, Yushan Han, Jingyu Chen, Shiqian Ma, Ronald Fedkiw, and Joseph Teran. 2023. Primal Extended Position Based Dynamics for Hyperelasticity. In Proceedings of the 16th ACM SIGGRAPH Conference on Motion, Interaction and Games. 1–10.
  • Chentanez et al. [2016] Nuttapong Chentanez, Matthias Müller, and Miles Macklin. 2016. Real-time simulation of large elasto-plastic deformation with shape matching.. In Symposium on Computer Animation. 159–167.
  • Clavet et al. [2005] Simon Clavet, Philippe Beaudoin, and Pierre Poulin. 2005. Particle-based viscoelastic fluid simulation. In Proceedings of the 2005 ACM SIGGRAPH/Eurographics symposium on Computer animation. 219–228.
  • Daviet and Bertails-Descoubes [2016] Gilles Daviet and Florence Bertails-Descoubes. 2016. A semi-implicit material point method for the continuum simulation of granular materials. ACM Transactions on Graphics (TOG) 35, 4 (2016), 1–13.
  • Drucker and Prager [1952] Daniel C. Drucker and William Prager. 1952. Soil mechanics and plastic analysis or limit design. Quart. Appl. Math. 10 (1952), 157–165.
  • Falkenstein et al. [2017] Michael Falkenstein, Ben Jones, Joshua A Levine, Tamar Shinar, and Adam W Bargteil. 2017. Reclustering for large plasticity in clustered shape matching. In Proceedings of the 10th International Conference on Motion in Games. 1–6.
  • Fang et al. [2019] Yu Fang, Minchen Li, Ming Gao, and Chenfanfu Jiang. 2019. Silly rubber: an implicit material point method for simulating non-equilibrated viscoelastic and elastoplastic solids. ACM Transactions on Graphics (TOG) 38, 4 (2019), 1–13.
  • Fei et al. [2019] Yun Fei, Christopher Batty, Eitan Grinspun, and Changxi Zheng. 2019. A multi-scale model for coupling strands with shear-dependent liquid. ACM Transactions on Graphics (TOG) 38, 6 (2019), 1–20.
  • Fei et al. [2021] Yun Fei, Qi Guo, Rundong Wu, Li Huang, and Ming Gao. 2021. Revisiting integration in the material point method: a scheme for easier separation and less dissipation. ACM Transactions on Graphics (TOG) 40, 4 (2021), 1–16.
  • Frâncu and Moldoveanu [2017] Mihai Frâncu and Florica Moldoveanu. 2017. Unified Simulation of Rigid and Flexible Bodies Using Position Based Dynamics. In Workshop on Virtual Reality Interaction and Physical Simulation, Fabrice Jaillet and Florence Zara (Eds.). The Eurographics Association.
  • Gao et al. [2018] Ming Gao, Andre Pradhana, Xuchen Han, Qi Guo, Grant Kot, Eftychios Sifakis, and Chenfanfu Jiang. 2018. Animating fluid sediment mixture in particle-laden flows. ACM Transactions on Graphics (TOG) 37, 4 (2018), 1–11.
  • Gerszewski et al. [2009] Dan Gerszewski, Haimasree Bhattacharya, and Adam W Bargteil. 2009. A point-based method for animating elastoplastic solids. In Proceedings of the 2009 ACM SIGGRAPH/Eurographics Symposium on Computer Animation. 133–138.
  • Gissler et al. [2020] Christoph Gissler, Andreas Henne, Stefan Band, Andreas Peer, and Matthias Teschner. 2020. An implicit compressible SPH solver for snow simulation. ACM Transactions on Graphics (TOG) 39, 4 (2020), 36–1.
  • He et al. [2017] Xiaowei He, Huamin Wang, and Enhua Wu. 2017. Projective peridynamics for modeling versatile elastoplastic materials. IEEE transactions on visualization and computer graphics 24, 9 (2017), 2589–2599.
  • Hegemann et al. [2013] Jan Hegemann, Chenfanfu Jiang, Craig Schroeder, and Joseph M Teran. 2013. A level set method for ductile fracture. In Proceedings of the 12th ACM SIGGRAPH/Eurographics Symposium on Computer Animation. 193–201.
  • Herschel and Bulkley [1926] Winslow H. Herschel and Ronald Bulkley. 1926. Konsistenzmessungen von Gummi-Benzollösungen. Kolloid-Zeitschrift 39 (1926), 291–300.
  • Hoetzlein [2014] Rama C Hoetzlein. 2014. Fast fixed-radius nearest neighbors: interactive million-particle fluids. In GPU Technology Conference, Vol. 18. 2.
  • Hu et al. [2018] Yuanming Hu, Yu Fang, Ziheng Ge, Ziyin Qu, Yixin Zhu, Andre Pradhana, and Chenfanfu Jiang. 2018. A moving least squares material point method with displacement discontinuity and two-way rigid body coupling. ACM Transactions on Graphics (TOG) 37, 4 (2018), 1–14.
  • Ihmsen et al. [2014] Markus Ihmsen, Jens Orthmann, Barbara Solenthaler, Andreas Kolb, and Matthias Teschner. 2014. SPH fluids in computer graphics. (2014).
  • Jiang et al. [2017] Chenfanfu Jiang, Theodore Gast, and Joseph Teran. 2017. Anisotropic elastoplasticity for cloth, knit and hair frictional contact. ACM Transactions on Graphics (TOG) 36, 4 (2017), 1–14.
  • Jiang et al. [2015] Chenfanfu Jiang, Craig Schroeder, Andrew Selle, Joseph Teran, and Alexey Stomakhin. 2015. The affine particle-in-cell method. ACM Transactions on Graphics (TOG) 34, 4 (2015), 1–10.
  • Jiang et al. [2016] Chenfanfu Jiang, Craig Schroeder, Joseph Teran, Alexey Stomakhin, and Andrew Selle. 2016. The material point method for simulating continuum materials. In Acm siggraph 2016 courses. 1–52.
  • Jones et al. [2016] Ben Jones, April Martin, Joshua A Levine, Tamar Shinar, and Adam W Bargteil. 2016. Ductile fracture for clustered shape matching. In Proceedings of the 20th ACM SIGGRAPH Symposium on Interactive 3D Graphics and Games. 65–70.
  • Jones et al. [2014] Ben Jones, Stephen Ward, Ashok Jallepalli, Joseph Perenia, and Adam W Bargteil. 2014. Deformation embedding for point-based elastoplastic simulation. ACM Transactions on Graphics (TOG) 33, 2 (2014), 1–9.
  • Karras [2012] Tero Karras. 2012. Maximizing parallelism in the construction of BVHs, octrees, and k-d trees. In Proceedings of the Fourth ACM SIGGRAPH/Eurographics Conference on High-Performance Graphics. 33–37.
  • Klár et al. [2016] Gergely Klár, Theodore Gast, Andre Pradhana, Chuyuan Fu, Craig Schroeder, Chenfanfu Jiang, and Joseph Teran. 2016. Drucker-prager elastoplasticity for sand animation. ACM Trans. Graph. 35, 4, Article 103 (jul 2016), 12 pages.
  • Kugelstadt et al. [2019] Tassilo Kugelstadt, Andreas Longva, Nils Thuerey, and Jan Bender. 2019. Implicit density projection for volume conserving liquids. IEEE Transactions on Visualization and Computer Graphics 27, 4 (2019), 2385–2395.
  • Li et al. [2022] Xuan Li, Minchen Li, and Chenfanfu Jiang. 2022. Energetically consistent inelasticity for optimization time integration. ACM Transactions on Graphics (TOG) 41, 4 (2022), 1–16.
  • Liu et al. [1995] Wing Kam Liu, Sukky Jun, and Yi Fei Zhang. 1995. Reproducing kernel particle methods. International journal for numerical methods in fluids 20, 8-9 (1995), 1081–1106.
  • Macklin and Müller [2013] Miles Macklin and Matthias Müller. 2013. Position based fluids. ACM Trans. Graph. 32, 4, Article 104 (jul 2013), 12 pages.
  • Macklin and Muller [2021] Miles Macklin and Matthias Muller. 2021. A Constraint-based Formulation of Stable Neo-Hookean Materials. In Motion, Interaction and Games. 1–7.
  • Macklin et al. [2016] Miles Macklin, Matthias Müller, and Nuttapong Chentanez. 2016. XPBD: position-based simulation of compliant constrained dynamics. In Proceedings of the 9th International Conference on Motion in Games (MIG ’16). Association for Computing Machinery, New York, NY, USA, 49–54.
  • Macklin et al. [2014] Miles Macklin, Matthias Müller, Nuttapong Chentanez, and Tae-Yong Kim. 2014. Unified particle physics for real-time applications. ACM Transactions on Graphics (TOG) 33, 4 (2014), 1–12.
  • Macklin et al. [2019] Miles Macklin, Kier Storey, Michelle Lu, Pierre Terdiman, Nuttapong Chentanez, Stefan Jeschke, and Matthias Müller. 2019. Small steps in physics simulation. In Proceedings of the 18th Annual ACM SIGGRAPH/Eurographics Symposium on Computer Animation. 1–7.
  • Mises [1913] R. v. Mises. 1913. Mechanik der festen Körper im plastisch- deformablen Zustand. Nachrichten von der Gesellschaft der Wissenschaften zu Göttingen, Mathematisch-Physikalische Klasse 1913 (1913), 582–592.
  • Müller et al. [2015] Matthias Müller, Nuttapong Chentanez, Tae-Yong Kim, and Miles Macklin. 2015. Strain based dynamics. In Proceedings of the ACM SIGGRAPH/Eurographics Symposium on Computer Animation (Copenhagen, Denmark) (SCA ’14). Eurographics Association, Goslar, DEU, 149–157.
  • Müller et al. [2004] Matthias Müller, Richard Keiser, Andrew Nealen, Mark Pauly, Markus Gross, and Marc Alexa. 2004. Point based animation of elastic, plastic and melting objects. In Proceedings of the 2004 ACM SIGGRAPH/Eurographics symposium on Computer animation. 141–151.
  • Müller et al. [2007] Matthias Müller, Bruno Heidelberger, Marcus Hennix, and John Ratcliff. 2007. Position based dynamics. Journal of Visual Communication and Image Representation 18, 2 (2007), 109–118.
  • Müller et al. [2012] Matthias Müller, Tae Kim, and Nuttapong Chentanez. 2012. Fast Simulation of Inextensible Hair and Fur. VRIPHYS 2012 - 9th Workshop on Virtual Reality Interactions and Physical Simulations.
  • Müller et al. [2020] Matthias Müller, Miles Macklin, Nuttapong Chentanez, Stefan Jeschke, and Tae-Yong Kim. 2020. Detailed Rigid Body Simulation with Extended Position Based Dynamics. Computer Graphics Forum 39, 8 (2020), 101–112.
  • Park and Agrawal [2024] Younghyo Park and Pulkit Agrawal. 2024. Using Apple Vision Pro to Train and Control Robots. https://github.com/Improbable-AI/VisionProTeleop
  • Plunder and Merino-Aceituno [2023] Steffen Plunder and Sara Merino-Aceituno. 2023. Convergence proof for first-order position-based dynamics: An efficient scheme for inequality constrained ODEs. arXiv preprint arXiv:2310.01215 (2023).
  • Qu et al. [2022] Ziyin Qu, Minchen Li, Fernando De Goes, and Chenfanfu Jiang. 2022. The power particle-in-cell method. ACM Transactions on Graphics 41, 4 (2022).
  • Qu et al. [2023] Ziyin Qu, Minchen Li, Yin Yang, Chenfanfu Jiang, and Fernando De Goes. 2023. Power Plastics: A Hybrid Lagrangian/Eulerian Solver for Mesoscale Inelastic Flows. ACM Transactions on Graphics (TOG) 42, 6 (2023), 1–11.
  • Ram et al. [2015] Daniel Ram, Theodore Gast, Chenfanfu Jiang, Craig Schroeder, Alexey Stomakhin, Joseph Teran, and Pirouz Kavehpour. 2015. A material point method for viscoelastic fluids, foams and sponges. In Proceedings of the 14th ACM SIGGRAPH / Eurographics Symposium on Computer Animation (Los Angeles, California) (SCA ’15). Association for Computing Machinery, New York, NY, USA, 157–163.
  • Robinson-Mosher et al. [2008] Avi Robinson-Mosher, Tamar Shinar, Jon Gretarsson, Jonathan Su, and Ronald Fedkiw. 2008. Two-way coupling of fluids to rigid and deformable solids and shells. ACM Transactions on Graphics (TOG) 27, 3 (2008), 1–9.
  • Schechter and Bridson [2012] Hagit Schechter and Robert Bridson. 2012. Ghost SPH for animating water. ACM Transactions on Graphics (TOG) 31, 4 (2012), 1–8.
  • Silling [2000] Stewart A Silling. 2000. Reformulation of elasticity theory for discontinuities and long-range forces. Journal of the Mechanics and Physics of Solids 48, 1 (2000), 175–209.
  • Smith et al. [2018] Breannan Smith, Fernando De Goes, and Theodore Kim. 2018. Stable neo-hookean flesh simulation. ACM Transactions on Graphics (TOG) 37, 2 (2018), 1–15.
  • Stomakhin et al. [2012] Alexey Stomakhin, Russell Howes, Craig A Schroeder, and Joseph M Teran. 2012. Energetically Consistent Invertible Elasticity.. In Symposium on Computer Animation, Vol. 1.
  • Stomakhin et al. [2013] Alexey Stomakhin, Craig Schroeder, Lawrence Chai, Joseph Teran, and Andrew Selle. 2013. A material point method for snow simulation. ACM Trans. Graph. 32, 4, Article 102 (jul 2013), 10 pages.
  • Stomakhin et al. [2014] Alexey Stomakhin, Craig Schroeder, Chenfanfu Jiang, Lawrence Chai, Joseph Teran, and Andrew Selle. 2014. Augmented MPM for phase-change and varied materials. ACM Trans. Graph. 33, 4, Article 138 (jul 2014), 11 pages.
  • Sulsky et al. [1994] Deborah Sulsky, Zhen Chen, and Howard L Schreyer. 1994. A particle method for history-dependent materials. Computer methods in applied mechanics and engineering 118, 1-2 (1994), 179–196.
  • Tampubolon et al. [2017] Andre Pradhana Tampubolon, Theodore Gast, Gergely Klár, Chuyuan Fu, Joseph Teran, Chenfanfu Jiang, and Ken Museth. 2017. Multi-species simulation of porous sand and water mixtures. ACM Trans. Graph. 36, 4, Article 105 (jul 2017), 11 pages.
  • Ton-That et al. [2023] Quoc-Minh Ton-That, Paul G Kry, and Sheldon Andrews. 2023. Parallel block Neo-Hookean XPBD using graph clustering. Computers & Graphics 110 (2023), 1–10.
  • Tournier et al. [2015] Maxime Tournier, Matthieu Nesme, Benjamin Gilles, and François Faure. 2015. Stable constrained dynamics. ACM Trans. Graph. 34, 4, Article 132 (jul 2015), 10 pages.
  • Umetani et al. [2015] Nobuyuki Umetani, Ryan Schmidt, and Jos Stam. 2015. Position-based elastic rods. In Proceedings of the ACM SIGGRAPH/Eurographics Symposium on Computer Animation (Copenhagen, Denmark) (SCA ’14). Eurographics Association, Goslar, DEU, 21–30.
  • Wang et al. [2020] Xinlei Wang, Minchen Li, Yu Fang, Xinxin Zhang, Ming Gao, Min Tang, Danny M. Kaufman, and Chenfanfu Jiang. 2020. Hierarchical Optimization Time Integration for CFL-Rate MPM Stepping. ACM Trans. Graph. 39, 3, Article 21 (apr 2020), 16 pages.
  • Westhofen et al. [2023] Lukas Westhofen, Stefan Jeske, and Jan Bender. 2023. A comparison of linear consistent correction methods for first-order SPH derivatives. Proceedings of the ACM on Computer Graphics and Interactive Techniques 6, 3 (2023), 1–20.
  • Wolper et al. [2020] Joshuah Wolper, Yunuo Chen, Minchen Li, Yu Fang, Ziyin Qu, Jiecong Lu, Meggie Cheng, and Chenfanfu Jiang. 2020. Anisompm: Animating anisotropic damage mechanics. ACM Transactions on Graphics (TOG) 39, 4 (2020), 37–1.
  • Wolper et al. [2019] Joshuah Wolper, Yu Fang, Minchen Li, Jiecong Lu, Ming Gao, and Chenfanfu Jiang. 2019. CD-MPM: continuum damage material point methods for dynamic fracture animation. ACM Trans. Graph. 38, 4, Article 119 (jul 2019), 15 pages.
  • Xing et al. [2022] Jingrui Xing, Liangwang Ruan, Bin Wang, Bo Zhu, and Baoquan Chen. 2022. Position-Based Surface Tension Flow. ACM Trans. Graph. 41, 6, Article 244 (nov 2022), 12 pages.
  • Yang et al. [2017] Tao Yang, Jian Chang, Ming C Lin, Ralph R Martin, Jian J Zhang, and Shi-Min Hu. 2017. A unified particle system framework for multi-phase, multi-material visual simulations. ACM Transactions on Graphics (TOG) 36, 6 (2017), 1–13.
  • Yue et al. [2015] Yonghao Yue, Breannan Smith, Christopher Batty, Changxi Zheng, and Eitan Grinspun. 2015. Continuum foam: A material point method for shear-dependent flows. ACM Transactions on Graphics (TOG) 34, 5 (2015), 1–20.
  • Yue et al. [2018] Yonghao Yue, Breannan Smith, Peter Yichen Chen, Maytee Chantharayukhonthorn, Ken Kamrin, and Eitan Grinspun. 2018. Hybrid grains: Adaptive coupling of discrete and continuum simulations of granular media. ACM Transactions on Graphics (TOG) 37, 6 (2018), 1–19.
  • Zhu and Bridson [2005] Yongning Zhu and Robert Bridson. 2005. Animating sand as a fluid. ACM Transactions on Graphics (TOG) 24, 3 (2005), 965–972.