zSolver

As the name implies, this is the node that performs the actual solving. Its default name is actually “zSolverShape” - this is to follow Maya convention. This is also the node that performs all of the OpenGL visualizations.

Attribute

Meaning

collisionDetection

Enables/disables collisions for this solver. Note: Each body can additionally choose not to participate in collisions.

collisionPointSpacing

In addition to the mesh vertices, extra points are added to the surface of the mesh for the purposes of collision detection and response. This controls their spacing by specifying the maximum distance (in meters) between collision points.

integrator

Selects the numerical integration scheme to be used by the solver.

  • BackwardEuler: A stable integrator that generates very little dynamics. This is the integrator used in versions prior to v1.5. It is the default integrator. Sometimes called BDF1.

  • BDF2: Second-order accurate integrator that gives good stability and much more dynamics than BackwardEuler. Use in any situation where you want good dynamics such as wave propagation, oscillation, bouncing, “jiggliness”, etc.

  • TR-BDF2: A hybrid scheme that combines an energy-preserving scheme (implicit Newmark, also called “trapezoid” method, TR) and BDF2. This integrator gives more even more dynamics than BDF2, for some small loss of stability.

  • QuasiStatic: with this integrator, bodies have no momentum and remain in a state of elastic equilibrium, as dictated by the attachments, collisions and gravity. Bodies will bend or stretch, but will have no dynamics. Useful in situations where dynamics is not desirable, for example, to generate blendshape targets.

More information is available in the Section on Integrators.

maxNewtonIterations

At each timestep, the solver will adaptively execute up to this many internal Newton iterations to resolve the nonlinear force equilibrium. Increasing this usually improves accuracy and stability, at the cost of more computation. With only 1 Newton iteration, very stiff materials (except Corotational) resist rotating, and very strained materials (especially Corotational) can flicker and oscillate. We found ~10 iterations solves these problems. More “substeps” can also improve these effects.

substeps

How many internal timesteps are taken per frame. Effectively, this divides the simulation timestep by “substeps”. If this number is increased, it will generally increase simulation stability, at the cost of additional computation. Multiple substeps are needed if there is non-trivial motion within a frame, such as a bone quickly rotating.

Substeps cannot exceed the number of Maya “ticks” per frame (6000 per second).

N.B. Try increasing the value of this parameter, if the simulation is unstable.

framesPerSecond

How many simulation frames are intended per second. This parameter should typically be set to match the Maya’s frame rate, but could be adjusted independently for effect (like slow motion wave propagation).

stiffnessDamping

Controls damping. This damping tends to remove high-frequency motion, and as such usually improves stability. This is the recommended type of damping.

massDamping

Controls “under-water” damping. This damping removes even low-frequencies and rigid body motion. A high number will make the bodies appear to be under water. Often, this value can be left at 0.0, and the simulation relies on stiffnessDamping.

gravity {X, Y, Z}

Adjust gravity independently in X, Y and Z.

showBones

Shows the triangles on the bones used by the solver.

showTetMeshes

Shows the tet meshes used by the solver.

showAttachments

Shows attachments, using a variety of visualization modes.

showCollisions

Shows embedded vertices that are in contact, using a variety of visualization modes.

showMaterials

Shows material properties.

showMuscleFibers

Shows muscle fiber fields.

showAxes

Shows solver coordinate axes. You can select the solver node by selecting the coordinate axes in the viewport.

attachmentColorRamp

The colors defined on this ramp are used when visualizing attachments.

collisionColorRamp

The colors defined on this ramp are used when visualizing collisions.

materialColorRamp

The colors defined on this ramp are used when visualizing materials.

muscleFiberColorRamp

The colors defined on this ramp are used when visualizing muscle fibers.