Affine Body
Affine body dynamics: fast, stable and intersection-free simulation of stiff materials
State Variable
The state variable for an Affine Body:
where \(\mathbf{p}\) is the position of the affine body and the \(\mathbf{a}_i\) are the rows of the affine transformation matrix.
P.S. The state variable for a Soft Body Vertex:
Jacobi Matrix
The Jacobi Matrix for Affine Body:
where, \(\bar{\mathbf{x}} = \begin{bmatrix}\bar{x}^1 & \bar{x}^2 & \bar{x}^2\end{bmatrix}^T\), \(\bar{\mathbf{x}}\) is the material point position in the local(model) space. Every material point \(\mathbf{x}\) has a Jacobi Matrix \(\mathbf{J}(\bar{\mathbf{x}})\)
P.S. The Jacobi Matrix for a Soft Body Vertex is an identity matrix:
Calculate \(\mathbf{x}(t)\)
For a vertex in an Affine Body:
To efficiently calculate \(\mathbf{x}(t)\), we just use:
#1 OrthoPotential
Formulation: Affine body dynamics: fast, stable and intersection-free simulation of stiff materials (eq. 7)
Shape preservation energy per body:
where \(\kappa\) is the stiffness parameter, \(\bar{v}\) is the rest volume of the affine body, \(\mathbf{I}_3\) is the \(3\times3\) identity matrix, and \(\|\cdot\|_F\) is the Frobenius norm.
We'd like to take \(100MPa \le \kappa \le 100GPa\).
#2 ARAP
Dynamic Deformables: Implementation and Production Practicalities (Now With Code!)
As Rigid As Possible (ARAP) deformation energy per body:
where \(\mathbf{R}\mathbf{S}\) is the polar decomposition of \(\mathbf{A}\).