This is my solver function: http://pastebin.com/K1UZf0D5
The UpdateIK() function uses this algorithm to update the bone's combined transform:
D3DXMatrixRotationQuaternion(&combTrans, &combRot); combTrans(3,0) = translate(3,0) + offset.x; combTrans(3,1) = translate(3,1) + offset.y; combTrans(3,2) = translate(3,2) + offset.z; if (_parent) combTrans *= _parent->getCombinedTrans();
Here is a video example of how the IK will be jerky or spazz out. Look at the left leg. The video is the model's bone structure.











