Houdini 20.5 Nodes Geometry nodes

Tissue Solver Vellum geometry node

Computes the dynamics simulation for the Tissue pass using Vellum.

On this page
Since 19.0

This node creates a series of constraints on the geometry (Tissue and Core surface layers and solid layers) generated by the Tissue Solidify SOP node, uses the settings defined by the Tissue Properties SOP node to drive them, and then computes the Tissue simulation (first pass tissue) using the Vellum solver.

When simulating the Tissue pass (Tissue Layers and Core Layers), it is important to understand the following constraint relationships it has with the bones, muscles, and between its own layers:

Parameters

Solver

Reset Simulation

Clears the entire tissue simulation cache from memory.

Initialization Frame

Sets the frame on the Houdini playbar at which the tissue simulation should begin.

Integration

Determines how points are integrated forward by their velocities during the simulation when curved motions (like swinging pendulums) are mispredicted and damped by the constraint projections.

First Order

Use first order prediction for integrating points. First order prediction avoids excessive bouncing. If the solver detects collisions during the simulation, then it will fall back to using first order prediction.

Second Order

Use second order prediction for integrating points. Second order prediction recovers more curved motion and maintains more energy in the system.

Solve Iterations

Time Scale

Specifies a scale multiplier for the effective time of the Vellum solve. You can use this value to create bullet time-like effects where the physics of the Vellum solver runs at a different rate than the Houdini playbar. A value of 2 will cause the tissue to fall twice as fast, and a value of 0.1 will slow the tissue down to a tenth its speed.

Substeps

Specifies the number of substeps each frame of the simulation is divided into. For fast moving collisions or sudden forces, you should use additional substeps.

Tip

If your tissue is too stretchy, then try raising the substeps to see if that helps.

Constraint Iterations

Specifies the number of passes that are taken by the constraint enforcement operations within each substep. Stiff constraints may require a greater number of iterations to converge. Constraint iterations use a Gauss-Seidel approach that is fast to converge. However, if it does not fully converge due to too high stiffness or impossible configurations, then bad looking triangles may be produced.

Smoothing Iterations

Specifies the number of passes that are taken by the smoothing operations within each substep. Smoothing iterations use a Jacobi approach that is slower to converge but leaves error spread out in a more attractive fashion. The default Smoothing Iterations value of ten passes helps smooth out error, but you might need to increase it if the Constraint Iterations value is very high.

Collisions

Enable Collisions

When on, enables external and self-collisions for the tissue. However, only the tissue Surface Layer does the colliding.

Collide with Muscle and Bones

When on, the tissue collides with the solid muscle geometry and the bone surfaces.

Collision Radius Scale

Specifies the scale multiplier value for the space between the tissue and the skin. You can view this space in the viewport with the Visualize > Tissue Collision Radius parameter on this node.

Ground Plane

When on, creates a collision ground plane. This is useful when you have a creature with a big floppy tail hitting the floor. If a flat plane is not sufficient, you can use the External Collisions parameters to introduce an external collider.

Ground Position

Specifies the XYZ world position of the ground plane and allows you to offset it.

Collision Passes

Specifies the number of collision passes to perform for the simulation. These passes are interleaved between the constraint iterations. Since collisions are expensive, we recommend that you use these passes sparingly. A Collision Passes value of 10 works in most situations, but we recommend that you use substeps instead. Substeps are a better solution for increasing quality.

Post Collision Passes

Specifies the number of final-round collision detection passes that are performed.

Polish Passes

When on, specifies the number of additional collider-pair passes to run. In any collision pass, any colliding pair may not fully resolve. These passes will run until all the unresolved colliding pairs are resolved. Since these passes are only performed on active colliders and no new collision searches are done, this operation is very inexpensive.

External Collisions

When on, you can use external collision objects with the tissue.

Collider

Specifies the network path to the external collision objects.

Primitive Group

Specifies the geometry group (or groups) that contains the collider primitives.

Rest Position

These attributes inform the solver which attribute to use as the rest position when establishing constraints. Typically, a tpose attribute exists both on the simulation geometry and on the second input geometry.

T-Pose Attribute

Specifies which attribute to derive the rest position or t-pose from for the character when establishing its tissue constraints. This attribute is usually found on the simulation geometry.

Attach Geometry T-Pose Attribute

Specifies which attribute to derive the rest position or t-pose from for the character when establishing its tissue attachment constraints. This attribute is usually found on the second input geometry.

Forces

Gravity

Specifies the uniform gravity force to apply to the tissue.

Drag

Specifies the amount of tissue points that are dragged by the wind force.

Simulation Cache

Cache Simulation

When on, the tissue simulation is cached to memory.

Allow Caching To Disk

When on, the tissue simulation is cached to disk.

Cache Memory (MB)

Sets the maximum size of the simulation memory cache.

Advanced

Rigid Group

Specifies the name of a rigid skin point group to include in the tissue simulation. When you need parts of your tissue surface to attach as rigidly as possible to the bone surfaces and muscle solid geometry as well as ignore sliding, you can create a Group SOP node, connect it to your tissue network’s Tissue Solidify SOP node, and then use it to define a rigid tissue point group for your tissue network. If you define a rigid tissue point group like this, then type the Group Name you defined on the Group SOP in this parameter field.

Rigid Stiffness

Specifies how tightly or loosely the rigid points are attached to the bone surfaces and muscle solid geometry.

Rigid Damping Ratio

Determines how much energy is lost when applying the attach constraint. This allows you to control how freely or how sluggishly the rigid points are attached.

Tip

If your rigid points exhibit high frequency jittering, you can reduce this jitteriness by increasing the Rigid Damping Ratio or by decreasing the Rigid Stiffness.

Sliding Method

Specifies the sliding method that is used for finding the next closest position on the bone surface and muscle solid geometry when sliding the Tissue Surface Layer.

Closest Point

Choose the closest point on the target geometry to the projected sliding position. This approach is fast but can improperly jump across concavities in the bone surface and muscle solid geometry.

Traverse Polygons

Start from the current bone surface and muscle solid primitives and successively walk outwards, finding the closest point on the surrounding primitives. This approach is more expensive but handles concave Tissue Surface Layer geometry better.

Traverse Triangles (Optimized)

Similar to Traverse Polygons with its improved handling of concavities, but can be many times faster as it uses specialized triangle distance functions.

Dual Sliding Method Mask

When enabled, specifies the name of a point attribute that acts as the dual method mask. Points with mask attribute values of zero or less will employ Closest Point sliding; mask values greater than zero will employ Traverse Triangles sliding. If the mask attribute cannot be found, the mask value will be assumed to be zero and therefore Closest Point will be used.

ARAP Volume Preservation (Optimized)

When on, an optimized volume preservation is applied to the tissue using the Scale-Invariant ARAP model. This means that the incoming tissue Volume Stiffness (solidvolumestiffness attribute) is ignored and an infinite stiffness is applied to the volume as primitives undergo changes in shape. When off, the solver takes on the extra expense of an additional Volume Constraint (making the solve less efficient) and this may cause anomalies when Volume Stiffness is weaker than Shape Stiffness. ARAP Volume Preservation (Optimized) is on by default.

Warning

We strongly recommend that you keep this parameter turned on, otherwise erratic tissue behavior may occur, especially when Shape Stiffness exceeds Volume Stiffness.

Relax Internal Geometry

By default, the internal attach geometry (usually the simulated muscles and animated bones) supplied by this node’s second input (input 2) is treated as rigid, static deforming geometry and a hard attach relationship (pin) is established between its animated position. However if you enable the Relax Internal Geometry parameters, then the internal attach geometry will instead establish a soft attach (spring) relationship to its animated position. This allows the simulated tissue geometry to exert forces and cause the internal attach geometry to react dynamically.

Pin Stiffness Multiplier

Specifies the name of the attribute you can use to mask the soft vs. hard attach relationship that the internal attach geometry has with its animated positions. Where this point attribute has a value of 0, there is zero attachment between the tissue’s interior surface and the internal attach geometry’s animated positions. The internal attach geometry will be free to react to any and all forces (including Gravity). Where this point attribute has a value of 1.0, the spring stiffness to the internal attach geometry’s animated position is very high and it is similar to using a hard pin constraint.

This parameter is only available when Relax Internal Geometry is turned on.

Solid Stiffness

When allowed to act dynamically, internal attach geometry consisting of tetrahedra (like muscle meshes) will use this stiffness value to affect its shape.

This parameter is only available when Relax Internal Geometry is turned on.

Solid Damping

When allowed to act dynamically, internal attach geometry consisting of tetrahedra (like muscle meshes) will use this damping ratio to resist changes to its shape.

This parameter is only available when Relax Internal Geometry is turned on.

Surface Stiffness

When allowed to act dynamically, internal attach geometry consisting of triangles (like bone geometry) will use this stiffness value to affect its shape.

This parameter is only available when Relax Internal Geometry is turned on.

Surface Damping

When allowed to act dynamically, internal attach geometry consisting of triangles (like bone geometry) will use this damping ratio to resist changes to its shape.

This parameter is only available when Relax Internal Geometry is turned on.

Multi-Pass

Enable Multi-Pass

When on, these options allow a substep to be repeated until certain conditions are met. The current conditions are designed to fix issues that are caused by disabled points causing geometry to be caught and causing the non-disabled points to generate stretching. Since collisions always pre-empt constraints, the result is tissue stretching. Points adjacent to auto-disabled points will also be disabled if too much stretching is detected. The solve step will then be repeated in the hopes that this frees up the geometry.

Maximum Passes

Specifies the maximum number of times to repeat the substep. If no new points need to be disabled, the process will stop immediately.

Disable Stretch Ratio

The amount of stretch at the end of a solve step that will trigger points to be eligible for disabling. This is to detect when failed collisions are pulling the tissue apart. By failing additional points, the tissue can usually be released and this often results in better results than continuing to stretch.

Visualize

Collision Geo

When on, all external collision objects (even the ground plane) are highlighted blue in the viewport state.

Tissue Collision Radius

When on, the space between the tissue and skin is visualized in the viewport.

Attachment

When on, the vector lines for the attachments between the tissue layer and the core layer appear as gold-colored lines on the geometry in the viewport state.

Constraints

Tissue Visibility

Show or hide the tissue.

Core Visibility

Show or hide the core layer.

Surface Attach

Show or hide the surface attach constraint vectors. This starts from the tissue exterior surface to the internal geometry.

Solid Attach

Show or hide the tissue attachment vectors. This starts from the interior boundary of the tissue layer to the surface of the core layer.

Inputs

Input 1

Tissue geometry. This includes: the Tissue Surface Layer (polygons), Tissue Solid Layer (tetrahedra), Core Surface Layer (polygons), and Core Solid Layer (tetrahedra).

Input 2

Internal attach geometry. The muscle simulation cache and the animated bone geometry.

Outputs

Output 1

Tissue simulation point transform data.

See also

Geometry nodes