Skip to content

Corotational FEM cloth


Loading...

Triangle membrane elements with corotational linear elastic energy[1]. Implicit Euler with CG, same outer loop as the BW98-like mass-spring sibling.

50×50 grid pinned at the two top corners, 4802 triangles. Material constants: μ=48000\mu = 48000 (shear modulus), λ=16000\lambda = 16000 (first Lamé), thickness =0.01= 0.01. Edit the scene above; changes auto-apply.

Per triangle, build the deformation gradient F=DsDm1F = D_s D_m^{-1} from the rest pose, extract rotation via SVD (F=UΣVT,  R=UVTF = U\Sigma V^T,\; R = UV^T with reflection fix), and evaluate

Ψ=μFRF2+λ2(tr(RTF)2)2\Psi = \mu\,\lVert F - R \rVert_F^2 + \tfrac{\lambda}{2}\bigl(\mathrm{tr}(R^T F) - 2\bigr)^2

The Hessian here is the Gauss-Newton approximation (drops R/F\partial R / \partial F terms). SPD by construction, so CG converges; recovering those dropped terms via operator splitting (cf. Kugelstadt 2018[2]) gives faster convergence on stiff materials.

Color encodes per-triangle area strain (green = rest, red = stretched, blue = compressed). Click and drag any vertex.

What you trade for going FEM over mass-spring: shear behaviour falls out of μ,λ\mu, \lambda instead of needing diagonal springs, and resolution refinement no longer changes the effective stiffness.

References

  1. Müller & Gross 2004 -- Interactive Virtual Materials
  2. Kugelstadt et al. 2018 -- Fast Corotated FEM