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. |