I’ve developed an extremely robust and versatile Inverse Kinematics library called Everything Will Be IK, and am making it freely available.
It supports pretty much anything you could reasonably want it to (prismatic joints are unreasonable, so it doesn’t support those), and it supports it well. Features include:
- Excellent stability (the video preview has the stability feature turned off)
- Position AND orientation targets (6-DOF).
- Multiple end-effector support
- Multiple Intermediary-effector support.
- Dampening (stiffness control).
- Target weight/priority (per target, per degree of freedom).
- Highly versatile 3-DOF constraints with arbitrarily shaped orientation regions.
Due to the combination of its highly versatile constraint system, and its support for orientation+position effector targets, it’s extremely well suited to motion tracking and VR applications, though, if you intend to use it for robotics applications, please take reasonable precautions to ensure that your robot only explodes in the ways it was intended to.
As an added bonus, the library is built on top of a scenegraph library I’ve created which supports arbitrary affine transformtations (the scenegraph library is called Everything Will Be Affine) with lazy updating. So feel free to use that for whatever you like.
I’ve made a processing extension of the library available here. Just follow the install instructions if you’ve never manually installed a processing library before.
The library includes examples for programatically specifying an Armature+targets+end-effectors, and for loading a prespecified Armature from a file. The examples come in single precision and double precision flavors.
Any feedback, contributions, suggestions, or questions are welcome .