Houdini 20.0 Nodes Geometry nodes

Dem Bones Skinning Converter geometry node

Converts any non-changing topology deforming mesh sequence into a bone-based animation.

On this page
Since 19.5

Dem Bones - © Electronic Arts 2019

This node is an implementation of Smooth Skinning Decomposition with Rigid Bones, an automated algorithm that extracts the Linear Blend Skinning (LBS) with bone transformations from a set of example meshes.

Skinning decomposition can be used in various tasks:


This node can only handle clean input data. For example, only one piece of connected geometry. If this node takes a really long time to process, then it may have gotten stuck while trying to find a solution. To fix this, set the Min Non-Zero Weights parameter to 1.


Save to Disk

Starts the skinning decomposition and exports the result to disk.

Output File

The path to which to save the FBX output.

Create Intermediate Directories

Create the directories in the FBX output path if they do not exist.

Conversion Settings

Frame Range

Defines the frame range used for the skinning decomposition.

Bind Pose Frame

Specifies the frame to use as the bind pose (rest pose) for the output rig.

Create Root

When on, updates the bind pose to regroup joints under one root.


Max Number of Bones

Specifies the maximum number of bones that can be generated.


Due to the possibility that more efficient solutions may be found during conversion, the actual output may be lower than the number specified by this parameter.

Solver Iterations

Global Iterations

Specifies the number of global iterations to be processed during the conversion. Functions as a scalar for the number of optimizations that have to be calculated. For more complex scenes, increase Global Iterations.

Error Tolerance

The algorithm keeps track of the decreasing errors during iterations, and will increment a counter if the reduction is less than the threshold specified by this parameter. This allows the algorithm to stop optimizing early if no improvement has been found after the number of iterations specified by the Patience parameter.


Specifies the number of iterations to wait before stopping early when no improvement has been found that is incrementally better than the threshold specified by the Error Tolerance parameter.

Splitting Iterations

Specifies the number of clustering update iterations that are applied on initalization.

Transform Iterations

Specifies the number of bone transformation update iterations per global iteration. DemBones performs multiple bone transform updates after each weights update.

Soft Constraints

Translations Affinity

Activates a soft constraint that forces bone translation that follows the centroid of the patch supported by that bone. Values greater than 0 turn on the soft constraint, whereas values less than 0 disable the soft constraint.

For many use cases, a value of 0 (no constraint) may be required. Whether or not to use higher values should depend on numerical stability and whether optimization can converge or not.


Specifies the the power used to compute the centroid of the patch. Higher values will move the centroid of the bones closer to the vertices with max weights (soft-max).


Weights Interations

Specifies how many weight updates to perform after each bone update. 1-5 iterations usually produce good results. These iterations are very expensive. As such, it is better to increase the Global Iteration than to increase the number of Weights Interations.


Controls the weights smoothness for the generated soft constraint.

Step Size

Specifies the step size of the Implicit Laplacian smoothing on the weights for the soft constraint.

Min Non-Zero Weights

Specifies the number of non-zero weights per vertex required for the conversion to succeed.


Animated geometry. This should be the geometry you want to convert using skinning decomposition.


Bone-based animation data exported as an FBX file.

See also

Geometry nodes