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.
quasiStatic When enabled, bodies have no momentum and remain in a state of internal equilibrium, as dictated by the attachments, collisions and gravity. Bodies will bend or stretch, but will not demonstrate dynamic effects such as wave propagation, oscillation, bouncing etc. Quasi-static mode is useful for situations where dynamics is not desirable, for example, using the quasi static simulation to generate blendshape targets.
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.