Moka Studio
Centre du parc
Rue Marconi, 19
1920 Martigny
SWITZERLAND
Tel: 0041 27 566 70 17
Mail: dev@mokastudio.tv
NumIK
Animate any kind of skeleton morphology, control any type of articulation, specify any sort of task with NumIK.
NumIK is a novel real-time inverse kinematics solver. It is the result of more than 10 years of ongoing research at the Immersive Interaction Group (EPFL) directed by Dr. Ronan Boulic. Our innovative approach makes NumIK a powerful framework with many advantages:
- Genericity: conversely to previous approaches, NumIK is not bound to predefined kinematics chains and thus can animate any kind of skeleton morphology. Thanks to NumIK, you can control worms, 3D characters, complex proteins, robots, etc;
- Scalability: NumIK can control any number and any type of articulation at once (from 1 DoF to 6 DoFs articulations). Control from a single articulation of a kinematics chain to a whole 3D character at once;
- Flexibility: NumIK incorporates a real task priority mechanism. Assign priorities and weights to tasks and ensure that important ones are achieved first in case of conflicts;
- Predictability: NumIK accepts reference postures to ensure that the computed solutions remain close to the given initial state;
- Evolutivity: Our innovative approach allows to add new types of tasks and controllable articulations.
NumIK is available in two versions: NumIK for Animation and NumIK for Virtual Prototyping. See the feature comparison table for details. We additionally provide on-demand adaptations of NumIK to perfectly fit existing frameworks and pipelines. Finally, we propose training and consulting to help master NumIK.
Do not hesitate to contact us; we will be pleased to discuss and analyze your future projects.
| NumIK for Animation |
NumIK for Virtual Prototyping |
|
| Mathematics | ||
|---|---|---|
| 3 x 3 Matrices | ![]() |
![]() |
| 4 x 4 Matrices | ![]() |
![]() |
| Quaternions | ![]() |
![]() |
| Exponential Maps | ![]() |
![]() |
| Euler Angles | ![]() |
![]() |
| Skeleton | ||
| File I / O | ![]() |
![]() |
| Skeleton Hierarchy Data Structure | ![]() |
![]() |
| Various Joint Types (Hinge, Elbow, Swing, Ball and Socket, 6 DoFs) | ![]() |
![]() |
| 1D Joint Limits | ![]() |
![]() |
| Elliptic Cone Joint Limits | ![]() |
![]() |
| Advanced Joint Limits (Spherical Polygon) | ![]() |
|
| Body Segments Data Structure (Mass, Inertia Matrix, etc) | ![]() |
|
| Inverse Kinematics | ||
| Numerical Inverse Kinematics Solver | ![]() |
![]() |
| Task Priority and Weight Architecture | ![]() |
![]() |
| Position Effector | ![]() |
![]() |
| Rotation Effector | ![]() |
![]() |
| LookAt Effector | ![]() |
![]() |
| High Level Constraints (equality and inequality) | ![]() |
![]() |
| Reference Posture Attraction | ![]() |
![]() |
| Center of Mass Effector | ![]() |
|
| User Defined Attraction (Minimize Energy, Minimize Fatigue, etc) | ![]() |
|
| Joint Coupling | ![]() |

