Skip to content

QuickIK

Fast inverse kinematics library, aimed for both high throughput and low latency.

QuickIK solves whole-tree inverse kinematics: given a robot or animal with a free-floating base (e.g. a pelvis or thorax not bolted to anything) and many tracked keypoints spread across multiple limbs, it finds the one root pose + joint-angle vector that best matches every keypoint's target position, jointly, in a single solve.

It provides high-level APIs for processing consecutive frames with warm starts and multi-threaded batch processing, as well as a low-level API for more specific use cases (e.g. real-time applications) – in Rust, with Python and C++ bindings.

Example

The following video shows QuickIK's solution to two inverse kinematics tasks used in the benchmarks:

  • Biomechanics: Behavior recording of a fruit fly retargeted to NeuroMechFly
  • Robotics: LAFAN1 walking kinematics retargeted to a Unitree G1 humanoid robot (larger keypoint mismatch is expected due to greater difference between robotic and human bodies)