Shelf tools

The Solid Object, Hybrid Object, Organic Mass, and Organic Tissue tools will convert the selected object into a simulated solid or hybrid object. If the selected geometry is not already made of tetrahedrons, the tools will insert SOPs into the source geometry’s network to convert the geometry to tets and then import those.

Pre-fractures the geometry of the selected object, and sets up the fracturepart attribute on the pieces so they will stick together. This tool is mostly useful to show the nodes used in a pre-fracturing workflow. See the section on fracturing below.

This tool constrains points to the object’s target animation. You can also use it to re-attach existing constraints. You can select an existing constraint during the first step in which case the tool will become a re-attachment tool.

Lets you select a low-resolution solid object and an object containing high-resolution geometry. This lets you simulate a low resolution and apply the results to high resolution geometry (see embedding below). This tool works by modifying the geometry networks and changing the settings on the Solid object's Geometry tab.

Useful parameters

The shelf tools will create a Solid Object or Hybrid Object, and a FEM Solver node in the simulation network. You can use the parameters on these nodes to control the behavior of the simulated objects.

Solver

The most important parameter on the solver is Substeps. If you have a simulation where the amount of movement from frame to frame is large compared with the size of the tetrahedrons, you may need to increase the substeps to get more accurate and more stable results.

The Integrator type can give solid objects connected to the solver very different physical behavior:

The default BE1 integrator is more physically realistic at small substeps. It settles down fairly quickly.

Object

The Shape Stiffness controls how strongly a Solid Object locally retains its original shape. The higher this is, the stronger the internal forces that prevent the object from deforming, and the more rigid an object becomes.

The Volume Stiffness controls how much a Solid Object locally retains volume.

If the material model is isotropic (Enable Anisotropy is turned off), then the Volume Stiffness and the Shape Stiffness are related to the Lamé parameters. If you know Lamé’s first and second parameter for the material that you want to model, then you can set Volume Stiffness to Lamé’s first parameter and you can set Shape Stiffness to Lamé’s second parameter times two.

Pressing an object flat has a tendency to make it wider. This is called the Poisson effect. Increasing Volume Stiffness increases this effect. Some materials, such as cork, don’t have this effect at all.

The notions of shape preservation and volume preservation are often confused. Volume stiffness should never be used by itself, it always needs to be balanced with Shape Stiffness.

The Enable Anisotropy toggle can be turned on for the Solid Object or Hybrid Object to allow different material strength in different directions. The parameters Anisotropy U, Anisotropy V, and Anisotropy W. This is useful to recreate specific anisotropic materials such as wood. In case the Anisotropy feature is turned off, the behavior is isotropic. This means that the material responds the same way to strain in all directions.

You can set the embedded geometry manually on the object’s Deformation tab using the Embedded geometry parameter.

Constraining individual points

You can constrain certain points on a solid object to keep their position (hard constraint) or try to keep their position (soft constraint).

Select the solid object.

On the Solid shelf, click the Constrain Points to Target tool.

Select the points you want to constrain and press Enter.

The tool adds a Target Constraint node that creates a constraint on the selected points.

In the parameter editor, set the constraint Type on the Target Constraint node.

If you set it to Hard, the points will follow the target animation exactly.

If you set it to Soft, you can use the parameters on the Soft controls tab to set the force and damping the solver will use to try to keep the points in place.

After enabling Import Target Geometry, you can specify a geometry operator Target Deformation that is used as the target for these constraints.

Animating the geometry

You can animate the simulated geometry in a few ways.

You can animate attributes of the rest geometry other than position and orientation. On the Solid Object node's Deformation tab, turn on Rest shape.

You can specify "target geometry", an animated/deforming version of the model geometry that the solver tries to blend with the simulated version of the object. On the Solid Object node's Geometry tab, turn on Target deformation.

Both options are set up to use the source geometry by default. You can change the paths to point to nodes in a SOP network.

The solver applies forces to the object to try to move the simulated object’s points toward the corresponding point positions on the target geometry. It’s important to remember that these forces are "competing" with all the other forces acting on the object (such as gravity).

The Target stiffness parameter specifies how much force the solver applies "toward" the target. Depending on the object’s mass and the other forces acting on it, you may need to enter large values to see an effect.

The "target" forces added by the solver will sometimes push the simulated object past the target. The solver then tries to push the solver back toward the target in the other direction, leading to a yo-yo effect. You can dampen this effect by turning up the Target damping value.

The target geometry should have velocity (v) attributes on the points. Use a Trail SOP to add velocity attributes to animated geometry.

Expert users can control targeting at the vertex level using the pintoanimation, targetstiffness, targetdamping, targetP, and targetV vertex attributes.

You can change attributes and even topology (adding and removing tetrahedrons) of the object’s Geometry data using a SOP solver. The Finite element solver can cope with the simulated geometry changing between steps.

An expert could even implement their own fracturing technique in a SOP solver and combine it with the finite element solver using a Multisolver setup.

It should also be possible to refine the tetrahedron mesh during the simulation using a Tetrahedralize SOP inside a SOP solver.

You can use hard and soft cloth constraints to move individual points of the tetrahedron mesh.

Tips and notes

Use the Finite Element Visualization node to visualize various aspects of a simulation, while include mesh quality, inversions, energy density, node forces, collision detection/resolution. For most of these visualizations, the corresponding entry under the Attribute tab of the Solid Object and Hybrid Object needs to be enabled, in order for anything to show up.

Don’t use the force and fexternal attributes. These attributes do not provide sufficient information for the finite element solver to work reliably. Instead, use soft constraints such as provided by the Target Strength and Target Damping parameters, target constraints and region constraints. These will give stable, superior quality results. Use the Drag settings for wind effects.

You can use the Clip node to delete one side of a solid object to see the tetrahedron layout inside.

Tips for simulating wood:

Use an embedded high-res object. Use splintery geometry as high resolution geometry, and use a regular mesh as the low-res geometry.

To create long splinter-like tetrahedrons in the high-res geometry, create a shortened version of your model, tetrahedralize it, then use a Transform to scale the resulting mesh back to the same length of the model.

Troubleshooting

For higher quality, increase Substeps on the finite element solver. This is usually the first answer for most problems.

If you see objects interpenetrating instead of colliding, increase Collision passes on the finite element solver.

If you have a massive rotational change between frames, you’ll have to increase the FPS of the scene (like filming in slow motion), because increasing substeps won’t help in that case.

If you're doing a simulation with fracturing, but you're getting too much fracturing at once, try the following:

Group together chunks of tetrahedrons. Use the Solid Fracture SOP to creating a fracturepart attribute. Tets with the same fracturepart value will stay together.

Increase the Fracture threshold on the Solid Object. This will increase the amount of force necessary to separate pieces.

Increase the number of substeps on the finite element solver (not the DOP network).

Encountered badly shaped tetrahedrons when calculating forces: This means there are bad tetrahedrons in one of your Solid Objects. See the guidelines for creating tet meshes below.

Exceeded the maximum linear solve iterations: The linear solve generally takes fewer iterations when more substeps are used. Try re-running the sim using a higher Substep until the problem goes away.

Found nodes with near-zero masses: The solver can’t work in a stable way if parts of your object have masses that are zero or very close to zero. Check if there are any tetrahedrons in your geometry that have zero volume, or if there are any polygons with zero area. If that doesn’t work, make sure that the Mass Density parameter on the Solid Object and the corresponding multiplier attributes on the geometry are all nonzero and positive.