PeelSolve: Transform Attributes

There are a number of attributes that can be added to a joint that is being driven by the solver.  Default values are used if the attributes are not available.

To add the attributes to a joint, click this icon: 

These attributes can help to tweak the solve and reduce artifacts.   With Global Optimization solving, it is best to fix the cause of the problem at the source, which generally is the motion capture data.


If a joint has too few or no markers associated with it, then it will be very free to move around, and may create a lot of wobble or random looking results.  Stiffness factors in the default pose as a preferred solution, effectively making the bone “stiffer”.

To set the default pose for a selected joint, press this icon: 

To rotate a selected joint in to its default pose, press this icon:

Stiffness can be applied to a joint’s rotation, to the length degree of freedom, and/or the joints translation.  The preferred position is stored on the attributes “preferredTrans” and “preferredAngle”.

Rotation Stability

“Rot Stab” will factor in a certain amount of the previous frame in to the result, to help provide a more stable solution.

Length Degree of Freedom

“Lendof” allows a bone to translate along a particular axis, as defined by Length Axis X, Y and Z.  This is particularly useful for spine bones, allowing them to grow and shrink as the torso folds.

Calibration Degree of Freedom

Calib Dof is a experimental feature which is designed to guess the position of a joint center.  Please see the section on Calibration solving below.

Rotation Degree of Freedom

By locking a joints rotation channel, or turning off the degrees of freedom in the joint’s attribute editor, the solver will lock that axis.  It is important to remove any keyframes before locking.

Translation Degree of Freedom

By enabling “dofX”, “dofY” or “dofZ”, the joint will be allowed to translate along those axis, and will receive translation keys.  It is important that they are only enabled for the root, and generally should not be enabled elsewhere unless specifically needed.  Enabling it may make the joint too flexible, and yield unnatural looking results.

Rotation Sharing

Rotation Sharing is an experimental feature to allow even distribution of the rotation over a chain of bones.  If a series of bones in a chain have rotation share turned on, the first should have a value of 0 and the last of 1 and the bones in the middle of the chain set between 0-1 representing the position in the interpolation.  For example if you were to have four bones A > B > C > D in a chain and enable rotation sharing for them all and weighted them as 0 > 0.25 > 0.5 > 0.75 > 1; if A and an orientation of 0 and E had 90, the distribution of the rotation would target for 0 → 22.5 > 45 > 67.5 > 90.


Solver errors can be saved on to the bones, to provide feedback, and for troubleshooting.  The errors are provided separately for translation, rotation, stiffness and stability.  To enable the errors, turn on “statistics” in the solver options.