Inverse Kinematics

The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
Rock climber 140.png

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
    • generalized coordinates
      • explicit with springs
      • implicit Featherstone with stiff springs
  • 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.

This page was last edited on 31 January 2009, at 02:18.