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:
Shell (Codim 2D)
Codim 2D variant of AffineBodyConstitution for triangle meshes (dim == 2).
The shell is modelled as a uniform slab of full thickness \(2r\), giving an effective volume per triangle \(i\):
where \(A_i\) is the triangle area and \(r\) is the thickness radius.
Rod (Codim 1D)
Codim 1D variant of AffineBodyConstitution for edge meshes (dim == 1).
The rod is modelled as a cylinder of circular cross-section with thickness \(r\), giving an effective volume per segment \(i\):
where \(L_i\) is the segment length.
#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}\). Each concrete Affine Body constitution documents only the attributes it introduces and how they map to its formulas.