Houdini 21.0 Nodes Geometry nodes

Armature Deform geometry node

Map a pose to a simulated skin.

On this page

Overview

This node performs a multi-step quasistatic-style tissue simulation to deform a skin. This multi-step processes controlled and gentle way to optimize simulation stability, quality, and consistency between similar poses.

Armature Deform is used together with Armature Capture. Armature Deform performs the quasistatic simulation and deformation, while Armature Capture prepares the proxy geometry that’s used for simulation.

Added Realism

Armature Deform allows you to achieve organic tissue deformations that look more realistic than just applying Bone Deform SOP. The volume-preservation feature offered by the underlying Otis solver creates nonlinear deformations that are hard to achieve or approximate using linear blend skinning (LBS). The difference between LBS is significant if there is a large gap between the bones and the skin. If the skin fits closely to the armature geometry, there may be less difference between the output of Armature Deform and LBS.

Optimization

To get faster deformation, only use the amount of detail in the proxy geometry that you need for your skins mesh. This amount of detail is controlled by the Element Size parameter on Armature Capture SOP .

To get good performance when cooking multiple poses using Armature Deform, be aware of the caching behavior of this node. To ensure that Armature Deform can cache its internals such as the capture of the skin relative to the proxy geometry, make sure the Animated Pose input is the only time-dependent input. Having other inputs of Armature Deform time dependent may result in slow cooking times.

Solve Stability

Armature Deform internally runs a quasistatic-style tissue simulation. This simulation cannot be treated entirely as a black box. To get good results within a reasonable time, tune the Element Size on Armature Capture large enough so that Proxy Geometry to Simulate has the fewest primitives (tets) as possible. If the proxy geometry has a large number of tets, such as close to a million or more. Your simulation may not succeed with the default settings on Armature Deform. In that case, the output of Armature Deform will appear empty and the geometry spreadsheet will show NAN values for the position attribute P.

If your skin mesh requires highly detailed proxy geometry, there are two settings on Armature Deform you can adjust to stabilize the simulation: Steps and Iterations. As a general rule, if you make the proxy geometry more detailed by dividing Element Size by two, you should multiply Steps by two to compensate. You should also increase the Iterations significantly. The amount is largely dependant on the mesh connectivity.

If your simulation has a detailed proxy geometry, the following suggestion may help:

  • Increase the Element Size on Armature Capture to a level where the simulation succeeds.

  • Gradually, in a series of steps, decrease the Element Size on Armature Capture.

    • After each step, try increasing Steps and Iterations to compensate which preserves the quality and stability of the deformed end result. For this process, it may be useful to look directly at the deformed proxy geometry on the second output of Armature Deform.

ML Training

Armature Deform has a variety of potential uses. An example is data-set generation for an ML Deformer. Armature Deform can generate skin deformations based on training poses. Armature Deform relies on the Otis solver’s capability to perform a quasistatic simulation completely independent of frames and time. This allows training poses to process more efficiently than previous Houdini versions where each pose required a time-dependent simulation in DOPs and multiple frames for each pose.

The timeless simulation feature can generate training data in few ways. You can assign a training pose to each frame in a frame range and run Armature Capture over the frame range. Another way would be a for-loop construct in SOPs that runs over all poses.

See Machine Learning documentation for more general information.

Parameters

Solve

Steps

The number of separate gradual steps to make the tissue adapt to its deformed pose. The target deformation is gradually brought in during these steps. The more steps, the more stable and predictable the result.

Iterations

The number of optimization passes performed during each substep. This helps get more accurate and more stable results.

Solve Type

Determines the type of solve that is performed at each step.

Quasistatic

Each step is solved quasistatically. This directly approximates the equilibrium state a dynamic solve would reach if it would run forever. It’s subject to the constraint state at the end of the step.

Predictive Quasistatic

Modified quasistatic solve that incorporates inertial effects to arrive at a better prediction of the end state of each step. The predictive quasistatic solves are constrained so the inertial effects on the final state can be small by increasing the Steps parameter.

Convergence Scale

The scale for convergence acceleration within the solver. Increase this value to make the solver converge faster for more accurate stiffness. Setting it too high can lead to instability.

Material Properties

Solid Rest Scale

A scale factor to artifically inflate (values greater than 1) or shrink (values less than 1) the tissue during a simulation.

Shape Stiffness

Determines how strongly local changes in shape are resisted. The higher the value, the stronger the resistance and the less deformation tends to occur.

Volume Stiffness

Determines how strongly the object resists local changes in volume. He higher the value, the stronger the resistance and the more volume is preserved. Volume preservation is an essential ingredient of realistic looking tissue simulations. For realistic looking organic tissue, you may have to set the Volume Stiffness to be at least then times the Shape Stiffness.

Constraints

Bone Target Strength

The proxy geometry has soft constraints on a point’s subset that represents the bone surfaces as deformed by the Animated Pose. This parameter controls the strength of these soft constraints. The higher the value, the more closely the constrained points match their target positions. Lower values can help avoid unstable simulation results.

Skin Target Strength

The proxy geometry has soft constraints on a point’s subset that represents the skin as deformed by the Animated Pose. This parameter controls the strength of these soft constraints. The higher the value, the more closely the constrained points match their target positions. Lower values can help to avoid unstable simulation results.

External Forces

Apply Gravity

When on, the tissue is affected by gravity, causing the deformed skin to visibly sag.

Gravity

Uniform gravity force that affects the tissue.

Collisions

Enable Self Collisions

Collision Frequency

Collision Stiffness

Adaptive Collision Stiffness

Skin Capture

Subdivision Depth

The skin is captured against a subdivided version of the tetrahedral mesh. This parameter controls the number of times a tetrahedral refinement algorithm is applied to the proxy geometry before the skin is captured. This parameter can be usedful to get rid of artefacts when using a very course proxy geometry (large element size). Keep this parameter as low as you can, because increasing it, increases cook time exponentially. You should not have to exceed a value of 1, except when you have a very low-res proxy geometry. If your deformed skin looks good as it is, then you should not have to touch this parameter.

Skin Deform

Attributes to Transform

Specifies which attributes are transformed by the deformation. This field accepts a space-separated list of attribute names andpatterns. The default is *, which specifies all attributes. The node modifies vector attributes according to their type information: as points, vectors, or normals.

If this list includes/matches P, the node will also rotate primitive transforms.

Note

The node always modifies P, regardless if it’s in this list.

Inputs

Skin to Deform

The skin deformed by a proxy geometry that undergoes a tissue simulation.

Proxy Geometry to Simulate

A geometry used in a tissue simulation. After the simulation, this geometry deforms the skin.

Capture Pose

The capture pose for the capture weights on the Bone Surfaces.

Animated Pose

A deformed pose. Not used and is passed to the corresponding output.

Outputs

Deformed Skin

The skin deformed by a proxy geometry that underwent a tissue simulation.

Simulated Proxy Geometry

The proxy geometry after the simulation.

See also

Geometry nodes