back
10 comments
I mean.. it describes that Inverse Kinematics is and is used for, but literally none of the math that makes it work. More than a little disappointed.
Hey, thanks for reading. There are a TON of ways to implement Inverse Kinematics, and I'm going to cover the most popular ones in coming articles. Do you have any preferred animation techniques you'd like me to cover? All of my articles will be available here: https://medium.com/unity3danimation
I'll make a plug for software I wrote based on sequential quadratic programming. It performs significantly better than inverse Jacobian methods in the presence of high-dof and joint limits. Here's a link to the software and paper: https://bitbucket.org/traclabs/trac_ik
Inverse Jacobian Methods can be computationally expensive. I suggest using FABRIK methods (suggested for JavaScript). Algorithm and pseudo-code here: https://medium.com/unity3danimation/create-your-own-ik-in-un...
Very interesting.

What is the best IK algorithm to implement in JavaScript given that it has to be small enough to download but also robust and fast and probably something one can implement without spending too much time on it? Probably an impossible question... but I figured I'd ask in the hopes there was something easy and obvious here.

Yup, I felt the same. As someone who worked with FK and IK in robotics I was hoping for an overview of analytical and numerical methods, but I found only an explanation of joints and what are FK and IK.
It does say it's an introductory article. Perhaps there are future parts coming later?
This is a good intuitive explanation of IK meant for someone who is doing 3d animation or modeling. Maybe not for somebody who would be actually developing kinematics, for whom an overview of the matrix math is needed.

Given that, I still cannot understand WHY they use these user-unfriendly terms in animation and 3d modeling.

Yeah, I developed inverse kinematics and coded them up. But even then we spoke in terms of world coordinates vs. joint coordinates.

Joint coordinates -> you are specifying joint angles -> forward kinematics

World coordinates -> you are specifying a point in world space -> inverse kinematics

Really it is unhelpful to use the terms IK/FK with end users like animators and artists.

>But even then we spoke in terms of world coordinates vs. joint coordinates.

World vs. joint coordinates might also generate some confusion, since joint coordinates are "world" coordinates too. And you can refer to the coordinates of a joint using "world" coordinates, which someone could easily refer to as a "joint coordinate". Of course, you can formally define exactly what these terms mean, but then you've lost all of the advantage of using common terms rather than more formal terms since you've replaced the common meaning of those terms with a formal one.