parameters

air-density

Default Value

0.001 (float)

Name

Air Density

Description

Air density for drag and lift force computation.

air-friction

Default Value

0.2 (float)

Name

Air Tangental Friction

Recommended Range

0 to 1

Description

When an object is moving in the air, both drag and lift forces are computed. This value controls the ratio of the tangential friction to the normal friction.

area-density

Default Value

1000 (float)

Name

Shell Density

Description

Material density for the shell.

area-poiss-rat

Default Value

0.25 (float)

Name

Poisson’s Ratio for Shells

Allowed Range

0.0 to 0.4999

Description

Poisson’s ratio for the shell material, encoding how much the material responds to compression. 0.0 means the material does not respond to any compression, while 0.5 means completely incompressible. 0.5 leads to numerical instability, so it must be less than 0.5.

area-young-mod

Default Value

100 (float)

Name

Young’s Modulus for Shells

Recommended Range

100 to 1e4

Description

This value is not the actual Young’s modulus but the one divided by the density of the material.

barrier

Default Value

“cubic” (str)

Name

Barrier Model for Contact

Choices

cubic, quad, log

Description

Contact barrier potential model.

bend

Default Value

1 (float)

Name

Bend Stiffness for Shells

Recommended Range

0.0 to 1e2

Description

This bending stiffness not scaled by the density. If you change the density, you need to adjust this value accordingly. This behavior also change by the material thickness.

bvh-alloc-factor

Default Value

2 (int)

Name

Extra Memory Allocation Factor for BVH on the GPU

Recommended Range

2 to 3

Description

We pre-allocate the memory for the BVH on the GPU to avoid dynamic memory allocation. BVH size can dynamically grow during the simulation. This number is multiplied to the initial BVH size to allocate the memory.

ccd-max-iters

Default Value

1024 (int)

Name

ACCD Maximum Iterations

Recommended Range

1024 to 2048

Description

ACCD seeks for the maximal time of impact (TOI) by iteratively advancing the time. If the maximal TOI is not found within this number of iterations, the seek is terminated.

ccd-reduction

Default Value

0.01 (float)

Name

ACCD Reduction Factor

Recommended Range

1e-3 to 1e-2

Description

ACCD needs some small number to determine that the gap distance is close enough to the surface. This factor is multiplied to the initial gap to set this threshold.

cg-max-iter

Default Value

10000 (int)

Name

Maximum Number of PCG Iterations

Description

When PCG iterations exceed this value, the solver is regarded as diverged. If enable_retry is enabled, the step size is reduced and the step is retried. If not, simulation is terminated.

cg-tol

Default Value

0.001 (float)

Name

Relative Tolerance for PCG

Recommended Range

1e-4 to 1e-3

Description

The relative tolerance for the PCG solver. The solver is terminated when the relative residual reaches below this value.

constraint-ghat

Default Value

0.001 (float)

Name

Gap Distance for Boundary Conditions

Reommended Range

1e-3 to 1e-2

Description

For boundary conditions such as pinned vertices and wall conditions, this value is used to determine the gap distance to activate the barrier to enforce the boundary conditions.

contact-ghat

Default Value

0.001 (float)

Name

Contact Gap

Recommended Range

0.25e-3 to 1e-2

Description

This value dictates the maximal gap distance when nearly touching objects are considered in contact. A contact barrier is then activated to prevent the objects from penetrating. Since we employ single precision floating point, we recommend setting this value to be larger than 1e-4.

contact-offset

Default Value

0 (float)

Name

Shell Contact Offset

Recommended Range

0 to 1e-2

Description

This value is used to offset the contact to give a visible thickness to shell contact surfaces.

csrmat-max-nnz

Default Value

70000000 (int)

Name

Maximal Matrix Entries for Contact Matrix Entries on the GPU

Recommended Range

1e6 to 1e9

Description

We pre-alocate the contact matrix entries to avoid cost arising from dynamic memory allocation. This value is manually chosen by the user. If this value is too large, the GPU runs out of memory. On the other hand, if this value is too small, the simulation may fail due to the lack of memory for contact matrix assembly.

disable-strain-limit

Default Value

False (bool)

Name

Flag to Disable Strain Limit

Description

When this flag is enabled, the strain limit is disabled regardless of parameters strain_limit_tau and strain_limit_eps.

dt

Default Value

0.001 (float)

Name

Step Size

Recommended Range

1e-3 to 1e-2

Description

Step size for the simulation. Small step size will make the simulation more accurate. Large step size may make the simulation faster but can introduce noticeable damping. We recommend to use 1e-3 for most cases. Setting a larger value can results in PCG solver divergence. You may turn on enable_retry option to retry the step with a smaller step size when either the PCG solver diverges or line search fails.

dt-decrease-factor

Default Value

0.75 (float)

Name

Step Size Reduction Factor

Description

When PCG solver diverges or line search fails, the step size is reduced by this factor and the step is retried if enable_retry is enabled.

eiganalysis-eps

Default Value

0.01 (float)

Name

Epsilon for Eigenvalue Analysis

Recommended Range

1e-3 to 1e-2

Description

When two singular values are close to each other, our analysis can be unstable as it involves division by the difference of the two singular values. In such cases, we switch to a stable approximation.

enable-retry

Default Value

False (bool)

Name

Flag to Enable Retry when PCG Diverges

Description

When this flag is enabled, the simulation will retry the step with a smaller step size when the PCG solver diverges or line search fails. This is possible when the step size is set large.

fake-crash-frame

Default Value

-1 (int)

Name

Fake Crash Frame

Description

Frame number at which to intentionally crash the simulation for testing purposes. Set to -1 to disable fake crashing.

fitting-dt

Default Value

0.001 (float)

Name

Step Size When Fitting

Recommended Range

1e-3 to 1e-2

Description

When simulation undergoes fitting, this step size is used instead of the regular step size.

fix-xz

Default Value

0 (float)

Name

Whether to fix xz positions

Description

For falling objects if their y position is higher than this value, their xz positions are fixed.

fps

Default Value

60 (float)

Name

Frame Per Second for Video Frames

Description

The time interval for writing meshes are determined by this value so that when a video is generated, the frame rate corresponds to this value.

frames

Default Value

300 (int)

Name

Maximal Frame Count to Simulate

Description

This number dictates the maximal number of frames to simulate.

friction

Default Value

0.5 (float)

Name

Friction Coefficient

Allowed Range

0 to 1

Description

Friction coefficient for the contact. 0.0 means no friction and 1.0 means full friction.

friction-eps

Default Value

1e-05 (float)

Name

Epsilon for Friction

Recommended Range

1e-5 to 1e-4

Description

We employ a quadratic friction model to approximate Coulomb friction. In doing so, we need to set a small value to avoid division by zero. This occurs when the motion undergoes static friction.

gravity

Default Value

-9.8 (float)

Name

Gravity Coefficient

include-face-mass

Default Value

False (bool)

Name

Flag to Include Shell Mass for Volume Solids

Description

The mass of volume solids is computed by their tetrahedral elements. If this option is enabled, the mass of the shell is included for the surface elements of the volume solids.

isotropic-air-friction

Default Value

0 (float)

Name

Air Dragging Coefficient

Description

Per-vertex air dragging coefficient.

line-search-max-t

Default Value

1.25 (float)

Name

Extended Line Search Maximum Time

Recommended Range

1.25 to 1.75

Description

Continuous Collision Detection (CCD) is used to determine the time of impact (TOI), but if we advance the time to the actual TOI, contact gaps can be nearly zero. Such a small gap can cause the solver to diverge, so we extend the time to the TOI by this factor, and the actual TOI is recaled by dividing by this factor. For example, if the actual TOI is 1.0 and this value is 1.25, the actual TOI is 1.0/1.25.

min-newton-steps

Default Value

0 (int)

Name

Lower Bound of Newton Steps

Recommended Range

0 to 32

Description

Minimal Newton’s steps that must be consumed to advance a step. The solver tries to determine the actual Newton’s step count, but this number assumes that static friction is not present. If static friction is present, we recommend setting this value to 32. Also, the step size should be somewhat large (e.g., 1e-2) to more accurately account for static friction.

model-shell

Default Value

“baraffwitkin” (str)

Name

Constitutive Model for Shells

Choices

baraffwitkin, shhk (Stable Neo-Hookean), arap (As-Rigid-As-Possible), stvk (St. Venant-Kirchhoff)

Description

Physical model for the Finite Element shell.

model-tet

Default Value

“snhk” (str)

Name

Constitutive Model for Volumetric Solids

Choices

snhk (Stable Neo-Hookean), arap (As-Rigid-As-Possible), stvk (St. Venant-Kirchhoff)

Description

Physical model for the Finite Element volumetric solid.

rod-bend

Default Value

0.001 (float)

Name

Bend Stiffness for Rods

Recommended Range

0.0 to 10

Description

Rod bending stiffness. The actual force is amplified by the rod mass, which includes rod density.

rod-density

Default Value

1000 (float)

Name

Rod Density

Description

Material density for the rod.

rod-offset

Default Value

0.005 (float)

Name

Rod Contact Offset

Recommended Range

0 to 1e-2

Description

This value is used to offset the contact to give a visible thickness to rod contact surfaces.

rod-young-mod

Default Value

10000 (float)

Name

Young’s Modulus for Rods

Recommended Range

1e3 to 1e6

Description

Unlike shells or volumetric solids, this value is the actual Young’s modulus.

stitch-stiffness

Default Value

1 (float)

Name

Stiffness Factor for Stitches

Recommended Range

0.5 to 2.0

Description

Stiffness factor for the stitches.

strain-limit-eps

Default Value

0.025 (float)

Name

Strain Limit Epsilon

Recommended Range

0 to 0.05

Description

After the strain limit is activated, this value is used to control the maximal stretch beyond the strain_limit_tau. For example, if this value is 0.025 and strain_limit_tau is 0.025, the maximal stretch ratio is 5%.

strain-limit-tau

Default Value

0.025 (float)

Name

Strain Limit Trigger Threshold

Recommended Range

0 to 0.05

Description

When the strain limit is enabled, this value allocates some margin before the strain limit is activated. For example, if this value is 0.025, the strain limit is activated when the stretch ratio exceeds 2.5%.

target-toi

Default Value

0.25 (float)

Name

Target Accumulated Time of Impact (TOI)

Recommended Range

0.1 to 0.5

Description

At each inner Newton’s step, the minimal TOI for continuous collision detection is computed. This TOI is used to rewind back the time to the TOI and a new Newton’s step is computed. We accumulate this TOI, and if the accumulated TOI exceeds this value, we terminate the Newton’s loop and compute the actual step size advanced.

volume-density

Default Value

1000 (float)

Name

Volume Density

Description

Material density for the volumetric solid.

volume-poiss-rat

Default Value

0.35 (float)

Name

Poisson’s Ratio for Volume Solids

Allowed Range

0.0 to 0.4999

Description

Poisson’s ratio for the volumetric solid material, encoding how much the material responds to compression. 0.0 means the material does not respond to any compression, while 0.5 means completely incompressible. 0.5 leads to numerical instability, so it must be less than 0.5.

volume-young-mod

Default Value

500 (float)

Name

Young’s Modulus for Volumetric Solids

Recommended Range

100 to 1e4

Description

This value is not the actual Young’s modulus but the one divided by the density of the material.

wind

Default Value

0 (float)

Name

Wind Coefficient

Description

The wind strength.

wind-dim

Default Value

0 (int)

Name

Wind Direction

Description

The wind direction.