Skip to main content

Active Shape Targeting ARAP

Active Shape Targeting ARAP extends ARAP with a user-controlled local shape target. It follows the shape-targeting model of Klár et al. (2020) and can represent contraction, expansion, or shear while allowing rigid rotation.

Enum value: SoftMaterialType::ActiveShapeTargetingArap

Formulation

The six shapeTargetTensor values define the symmetric target tensor

St=1+[s0s1s2s1s3s4s2s4s5] .\mathbf{S}_t = \mathbf{1} + \begin{bmatrix} s_0 & s_1 & s_2 \\ s_1 & s_3 & s_4 \\ s_2 & s_4 & s_5 \end{bmatrix}~.

SuperDex Physics forms the modified deformation gradient

Ft=FSt\mathbf{F}_t = \mathbf{F}\mathbf{S}_t

and computes its rotation-variant SVD, Ft=UtΣtVtT\mathbf{F}_t = \mathbf{U}_t\boldsymbol{\Sigma}_t\mathbf{V}_t^T. The closest proper rotation is

Rt=UtVtT .\mathbf{R}_t = \mathbf{U}_t\mathbf{V}_t^T~.

The strain energy density and first Piola–Kirchhoff stress are

Ψ(F)=μ2FRtSt2 ,P=μ(FRtSt) .\Psi(\mathbf{F}) = \frac{\mu}{2}\|\mathbf{F} - \mathbf{R}_t\mathbf{S}_t\|^2~, \qquad \mathbf{P} = \mu(\mathbf{F} - \mathbf{R}_t\mathbf{S}_t)~.

When all target parameters are zero, St=1\mathbf{S}_t=\mathbf{1} and the model reduces to standard ARAP.

Parameters

The public parameter type is ActiveShapeTargetingArapMaterialParams.

ParameterDefaultUnitsDescription
stiffness1,000PaResistance to deviation from the target shape
shapeTargetTensor[0, 0, 0, 0, 0, 0]--Values [s0,s1,s2,s3,s4,s5][s_0,s_1,s_2,s_3,s_4,s_5] defining St\mathbf{S}_t
psdStrategyProjection--PSD enforcement strategy

Supported concrete PSD strategies: None, Projection, PerTermProjection, AbsEigenProjection. MaterialDefault resolves to the model's default, Projection. PerTermProjection is specific to this material and projects the tangent summands independently.

Controlling Actuation

Actuation is application-driven: supply a nonzero shapeTargetTensor at creation time, or vary it at runtime to change the desired local contraction, expansion, or shear. To update a homogeneous target, call Actor::GetSoftMaterialParams(), modify activeShapeTargetingArap.shapeTargetTensor, and pass the result to Actor::SetSoftMaterialParams(). For actors with per-element material data, use experimental::GetSoftMaterialParamsField() and experimental::SetSoftMaterialParamsField() instead.

When to Use

  • Muscle contraction simulation.
  • Soft robotics with programmable local shape targets.
  • Any scenario requiring active internal actuation with a controllable target tensor.

References