IK Experiments II - FABRIK

Last time, I was experimenting with a custom Inverse Kinematics algorithm. It worked alright, but couldn’t handle longer joint chains, involved a decent amount of math, and any improvements or modifications to it would quickly require a lot more math. Taking a brief detour from that, I tried implementing an algorithm called FABRIK. This worked magically and immediately solved all of my problems.


Naturally, I then ignored the entire endeavor for very nearly a year.



But recently I have returned to this project, with potentially enough experience and patience gained with complex engineering projects to start taking this on properly. FABRIK has some marvelous benefits and mindsets that I am trying to apply to the rest of my physics system, namely focusing on position instead of rotation, and eventual consistency over perfection.

By focusing on position over rotation, I mean that all of the math in FABRIK (at least the basic version) works with points in space. It doesn’t rotate anything about anything, point anyone anywhere, or even consider a Quaternion. This is nice.

By eventual consistency over perfection, I mean that a single iteration of FABRIK is not in any way guaranteed to be mathematically “correct.” Even satisfying simple constraints is something that is not held sacred at every step of the process, but can be added on at the end as needed. This is also nice.



I’ve got ambitious plans for a physics system that can underlay a really really rich simulation of big stompy mechs. I have a better structure to think about big stompy mechs than I did before. I even have a tiny bit of documentation.


Previous
Previous

Voyage

Next
Next

IK Experiments