🧪 Material Parameters

Per-object material parameters. Set via object.param.set(key, value) on a frontend.Object. The solver exposes three element types, each with its own defaults:

  • tri: triangle shells (cloth).

  • tet: tetrahedral solids.

  • rod: rod / edge elements.

(not applicable) in a default column means the given element type does not expose that parameter.

model

Key

model

Default (tri)

'baraff-witkin'

Default (tet)

'arap'

Default (rod)

'arap'

Label

Deformation Model

Description

Elastic constitutive model used to evaluate stretch energy. Valid choices are ‘arap’, ‘stvk’, ‘baraff-witkin’ (shells only), and ‘snhk’ (stable neo-Hookean). Rods are always solved with ARAP internally.

density

Key

density

Default (tri)

1.0

Default (tet)

1000.0

Default (rod)

1.0

Label

Density

Description

Rest-state mass density. Units depend on element type: kg/m^3 for ‘tet’ (volumetric), kg/m^2 for ‘tri’ (areal), and kg/m for ‘rod’ (linear). Must be positive.

young-mod

Key

young-mod

Default (tri)

1000.0

Default (tet)

500.0

Default (rod)

10000.0

Label

Young’s Modulus

Description

Stiffness coefficient fed into the constitutive model, pre-normalized by density (units of Pa/rho). This decouples mass from stiffness, so doubling density alone leaves the motion unchanged. Must be positive.

poiss-rat

Key

poiss-rat

Default (tri)

0.35

Default (tet)

0.35

Default (rod)

0.35

Label

Poisson’s Ratio

Description

Poisson’s ratio used together with Young’s modulus to derive the Lame parameters. Valid range is (0, 0.5); values near 0.5 produce near-incompressible behavior. Used by ‘tri’ and ‘tet’ elements only.

bend

Key

bend

Default (tri)

10.0

Default (tet)

1.0

Default (rod)

0.0

Label

Bending Stiffness

Description

Dimensionless bending stiffness for shell hinges (between adjacent ‘tri’ faces) and for rod-joint bending at interior rod vertices. Must be non-negative. Not used by ‘tet’ elements.

shrink-x

Key

shrink-x

Default (tri)

1.0

Default (tet)

1.0

Default (rod)

1.0

Label

Shrink X

Description

Anisotropic rest-shape scale along the UV X (warp) direction for ‘tri’ shells. Values below 1.0 pre-shrink the cloth, above 1.0 pre-stretch it. Must be positive. Cannot be combined with a non-zero strain limit on the same face.

shrink-y

Key

shrink-y

Default (tri)

1.0

Default (tet)

1.0

Default (rod)

1.0

Label

Shrink Y

Description

Anisotropic rest-shape scale along the UV Y (weft) direction for ‘tri’ shells. Values below 1.0 pre-shrink the cloth, above 1.0 pre-stretch it. Must be positive. Cannot be combined with a non-zero strain limit on the same face.

shrink

Key

shrink

Default (tri)

1.0

Default (tet)

1.0

Default (rod)

1.0

Label

Shrink

Description

Isotropic rest-shape scale for ‘tet’ solids. Values below 1.0 pre-contract the solid so it pulls toward a smaller target, above 1.0 pre-inflate it. Must be positive. Ignored by ‘tri’ and ‘rod’ elements.

contact-gap

Key

contact-gap

Default (tri)

0.001

Default (tet)

0.001

Default (rod)

0.001

Label

Contact Gap

Description

Barrier activation distance for contact detection, in scene units. At each pair the solver uses the mean of the two participants’ gaps as the threshold. Must be positive.

contact-offset

Key

contact-offset

Default (tri)

0.0

Default (tet)

0.0

Default (rod)

0.001

Label

Contact Offset

Description

Extra per-element padding added on top of the contact gap (scene units). At each pair the two participants’ offsets are summed, acting like a skin thickness that guarantees minimum clearance. Must be non-negative.

strain-limit

Key

strain-limit

Default (tri)

0.0

Default (tet)

0.0

Default (rod)

0.0

Label

Strain Limit

Description

Upper bound on per-element tensile strain (dimensionless, e.g. 0.05 = 5% stretch). 0.0 disables strain limiting. Supported on ‘tri’ and ‘rod’ elements only, and incompatible with non-unit shrink-x/shrink-y on the same face.

friction

Key

friction

Default (tri)

0.0

Default (tet)

0.0

Default (rod)

0.0

Label

Friction Coefficient

Description

Coulomb friction coefficient at contacts (dimensionless). When two elements touch, the solver uses the minimum of the two participants’ coefficients, so the more slippery side wins. Must be non-negative.

length-factor

Key

length-factor

Default (tri)

1.0

Default (tet)

1.0

Default (rod)

1.0

Label

Rod Rest-Length Factor

Description

Multiplier applied to each rod edge’s rest length (dimensionless). Values below 1.0 pre-tension the rod, above 1.0 pre-compress it. Must be positive. Used by ‘rod’ elements only.

pressure

Key

pressure

Default (tri)

0.0

Default (tet)

0.0

Default (rod)

0.0

Label

Inflation Pressure

Description

Per-face inflation pressure pushing ‘tri’ shells outward along the face normal. Must be non-negative; 0.0 disables inflation. Ignored by ‘tet’ and ‘rod’ elements.

plasticity

Key

plasticity

Default (tri)

0.0

Default (tet)

0.0

Default (rod)

(not applicable)

Label

Plasticity Rate

Description

Rate constant (per second) for stretch plasticity, driving the rest shape toward the current deformation via alpha = 1 - exp(-rate * dt). 0.0 disables plasticity; higher values creep faster. Must be non-negative.

plasticity-threshold

Key

plasticity-threshold

Default (tri)

0.0

Default (tet)

0.0

Default (rod)

(not applicable)

Label

Plasticity Threshold

Description

Dead zone (dimensionless) around unit principal stretch S=1. Plasticity only activates on a singular value k when |S_k - 1| exceeds this threshold. 0.0 means any deviation triggers creep.

bend-plasticity

Key

bend-plasticity

Default (tri)

0.0

Default (tet)

0.0

Default (rod)

0.0

Label

Bend Plasticity Rate

Description

Rate constant (per second) for bending plasticity that drifts the rest angle of shell hinges and interior rod joints toward the current angle. 0.0 disables. Applies to ‘tri’ and ‘rod’; kept on ‘tet’ only as a placeholder and ignored by the solver.

bend-plasticity-threshold

Key

bend-plasticity-threshold

Default (tri)

0.0

Default (tet)

0.0

Default (rod)

0.0

Label

Bend Plasticity Threshold

Description

Angular dead zone (radians) around the rest angle. Bend plasticity only activates when |theta - theta_rest| exceeds this threshold. 0.0 means any angular deviation triggers creep.

bend-rest-from-geometry

Key

bend-rest-from-geometry

Default (tri)

0.0

Default (tet)

0.0

Default (rod)

0.0

Label

Bend Rest From Initial Geometry

Description

If non-zero, initialize each hinge or rod-joint rest angle from the initial pose instead of the default (flat for shells, straight for rods). Treated as a boolean flag.