Quaternion Rotation Output from RBF Solvers

Feb 21, 2020

In my previous post, I described how driving an RBF solver with quaternion values for rotational inputs is more reliable than driving with euler inputs. In this post, I will describe a method to output rotational values from an RBF solver.
As described in my last post, euler rotations suffer from gimbal lock and multiple solutions to the same rotation. If we were to solve directly to these euler angles, we would see a lot of undesirable flipping depending on the sample inputs.

Quaternion Rotation Input to RBF Solvers

Feb 3, 2020

In my previous post, I described how to create an RBF solver using regularized linear regression. While the solver works well for most independent input values, it does not work so well if we want to drive it with euler rotations. Euler rotations are susceptible to gimbal lock and can have multiple solutions for the same rotation.
These two joints look like they have the same rotation. But looking at their animation curves tells a different story:

Regularized Linear Regression with Radial Basis Functions

Feb 2, 2020

RBF solvers are systems used to interpolate from values in one space to another set of values in another space. Basically a set driven key with arbitrary inputs and arbitrary outputs. This has many applications such as driving corrective shapes, retargeting meshes, or training systems in machine learning to predict values based on a set of known samples.
There are several demo implementations and explanations of RBF solvers scattered around the internet:

Swing Twist Decomposition to Offset Parent Matrix

Jan 25, 2020

Decomposing a rotation into separate swing and twist components has many useful applications. Maya's pose interpolator toolset allows shapes to be driven with isolated twist and/or swing components of rotations. This allows a corrective shape in the pectorals driven by the raising of the arm to be independent from the twist motion of the arm. Also, the twist component can be used to drive twist joints more reliably than the euler twist axis by itself, as demonstrated in the video below.

Maya Technology Demos

Jul 2, 2010

More technology demos!
First is a dynamic transform node. The node is applied to various joints and IK handles. The node can also drive arbitrary attributes so they behave dynamically as well.
Next is a custom jiggle deformer. The reasons why I created my own jiggle deformer as opposed to using Maya's jiggle deformer is because of speed and ease of use. Mine runs a lot faster and is easier to use.