m  | 
				m  | 
				||
| Line 1: | Line 1: | ||
[[Image:Rock_climber_140.png|right]]  | [[Image:Rock_climber_140.png|right]]  | ||
It turns out I have written a lot of Inverse Kinematics algorithms.  | It turns out I have written a lot of Inverse Kinematics solvers using a lot of different IK algorithms.  | ||
I didn't even realize how many different algorithms I've tried for solving IK until I started writing this page.  The list looks something like this:  | I didn't even realize how many different algorithms I've tried for solving IK until I started writing this page.  The list looks something like this:  | ||
Latest revision as of 01:18, 31 January 2009
It turns out I have written a lot of Inverse Kinematics solvers using a lot of different IK algorithms.
I didn't even realize how many different algorithms I've tried for solving IK until I started writing this page. The list looks something like this:
- simple serial analytical IK
 - Cyclic Coordinate Descent (CCD)
- serial and tree structured
 - with joint limits from the root
 - with child-child joint limits
 - dynamically re-rooted
 - 2 Degree of Freedom (DOF), 3 DOF, and 6 DOF
 - sequential euler angle joint solver
 - numerical quaternion joint solver
 
 - rigid body dynamics solver
- augmented coordinates
- explicit with Lagrange Multipliers, LCP joint limits
 - implicit with stiff springs
 
 - generalized coordinates
- explicit with springs
 - implicit Featherstone with stiff springs
 
 
 - augmented coordinates
 - particle-based solver (like SHAKE, RATTLE, Jakobsen)
- dense constraint approach to branching nodes
 - sparse branching with multiple passes
 
 
Yikes! I hope to make each of those a link to a detailed description of the technique and its pros and cons in the future.
For now, here is my 2002 Game Developers Conference lecture, titled My Adventures in Inverse Kinematics. It's a description of the CCD-based approach I took for a while on my indie rock climbing game.




