Inverse Kinematics.

Become a member of the CGSociety

Connect, Share, and Learn with our Large Growing CG Art Community. It's Free!

Thread Tools Search this Thread Display Modes
  03 March 2006
Inverse Kinematics.

Hi All

I am relativey new to the field of animation and I had to write a report on character animation, I chose the field of 'Inverse Kinematics'. I have included my report below and I would appreciate it if you could take a few minutes to read it, to ensure it makes sense and to possibly make some pointers. Remember I am very new to this field so please don't humiliate me if my report consists some obvious errors. The subtitles have to remain as they were a requirement for the report. Thanks for your time.

Character animation is a specific aspect in relation to the animation process in which life is added to an artificial character. This is a complex process as it involves creating nuances, distinct movements, gestures and speech patterns of an authentic nature to convince and satisfy modern audiences and critics alike.


One major aspect within character animation is the area of ‘kinematics’, which relates to the movement of objects (characters) without concern of the forces, which cause this movement. Kinematics has two majors aspects to it namely ‘forward kinematics’ and ‘inverse kinematics.

In relation to forward kinematics the needs to specify explicitly all the motions of every part of the articulated structure. This approach is relatively low level and it can lead to the overall structure becoming very complex.

Inverse kinematics is a high level approach to animation in which an animator much specify a movement from point A to point B. The inverse kinematics technique operates by working out a precise script for all of the parts of the structure so that the entire body will perform the desired action. An example of inverse kinematics would be reaching for a door handle; the brain must make the necessary calculations to position the limbs etc in the relevant position. While the objective is to move the door handle there are many complex articulations involving several joints in order to get the hand to the desired location. Similarly with technological applications, inverse kinematic mathematical calculations must be preformed to position limbs in the correct way to meet desired goals. %20-%20What%20%20&fw=2&fc=4&gwp=16

How Inverse Kinematics works in 3D character animation.

Within animation each character will have a concealed skeleton, which is made up of a series of objects that connect with and move in relation to each other. A technique namely parenting is used to assign a target object (child) to another object (parent). With each movement by the parent object, the child object follows in accordance to the attributes that have been assigned to it. Upon completion of the skeleton it is then animated and the most popular method is ‘inverse kinematics’. This technique moves the child object to where the animator requires resulting with the parent object and all related objects to follow.

How it is implemented:

Within a typical system based on Inverse Kinematics, the animator has to specify accurate movements and positions for the end parts then the system computes the necessary joint angles and orientations for other parts of the body to put the specified parts in the desired position and through the desired motions. This form of implementation works well for simple linkages. However the Inverse Kinematics to a particular solution becomes numerous and complicated when the number of linkages increases.

Many experts feel that an important factor to aid successful implementation of inverse kinematics is animation within constraints. This means that characters within the animation process must behave within limitations in relation to how they walk etc. This is ultiamately similar to roboitic devices that incorporate ‘inverse kinematics’ as they have many physical constraints on them such as external environment, joint capabilities and the speed at which they can operate at etc. Animation with constraints if incorporated correctly can lead to a more acurate and authentic final representation.


The diagram below is in 3D and it is of a two-jointed system it has been included to help explain this particular ‘inverse kinematics’ algorithm.

Within joint one there are several vectors namely vectors a, b, f and r and they are explained as follows:

a = Vector along the axis of the joint.

b = Vector along the bone.

f = Force vector, from End Point to Target.

r = This vector is at a right angle to a and b.

In relation to this algorithm if the force vector (f) is parallel to the axis joint (a) then the joint won't rotate. If the force vector is parallel to the vector along the bone (b) then you're just pulling along the bone, and the joint won't revolve. Based on these facts it can be concluded that the torque on the joint is proportional to the sine of the angle between (a) and (f) and the sine of the angle between (b) and (f).

If the ‘End Point’ is at the target then the object is not required to move any more, however if the ‘End Point’ is relatively far from the required target, then it is necessary for the object to move to the target promptly.

Within this algorithm the torque is proportional to the magnitude of the vector and in addition to this the joint will move an anticlockwise direction if the force points along the r and in an clockwise direction if the force points in the opposite direction to the r.

When these three properties are combined the following equation is apparent.

Torque = Mag(f) * SinVect(a, f) * SinVect(b, f) * sign(CosVect(r, f)) *


Within this equation SinVect and CosVect return the cos and sin of the angle between two vectors respectively, Mag returns the length of a vector, and sign returns the sign of a number. Sensitivity is a small scaler constant.

When this is done joint two within the object needs to be calculated. Vectors a,b and f, have to be recalculated as well as the torque for joint 2. Calculate the torque for all the joints in the whole structure, then add the torque to each joint to it's angle. The ‘End Point’ of the structure should now be closer to the target. This process must be repeated until the joint is either touching its target, however in some situations this may not be possible therefore this algorithm will move the joint as close as possible to its target,

Advantages of Inverse Kinematics:

Inverse kinematics is a popular approach to animation and mechanical movement due to the many benefits that this process offers.

The animator only needs to specify the end position of the structure when using the inverse kinematics approach therefore the animator does not need to specify how separate parts of the structure are to move ultimately reducing the time spent of the process and the complexity of the process.

A second advantage of inverse kinematics is that it allows the designer to rapidly create an animation sequence describing a difficult mechanical scenario that would have been difficult and time consuming via the use of another approach.

Inverse kinematics allows the animator to incorporate ‘energy constraints’ if s/he feels it is necessary in order to produce a visually convincing moving object e.g. a dog, this would entail satisfying both geometric and muscle constraints.

Inverse Kinematics is a good approach to use in order to improve the ‘gravity’ effect. An example would be a character walking using the Inverse Kinematics approach the walk will look more authentic and the feet will look like they connect to the ground whereas with ‘forward kinematics’ the walk would look less realistic and the feet would look like they are floating in air.

Disadvantages of Inverse Kinematics:

As with most areas of ‘character animation’ inverse kinematics is not perfect and possesses many flaws, which will require future development in order to enhance this mechanism.

One disadvantage of this approach is that as the articulated structure becomes more complex the inverse kinematics solutions become more difficult to work out.

Character animation is primarily about movements being made as natural and authentic as possible however with inverse kinematics the animator is not left with very much capacity to do this as the approach only requires the animator to specify the end position.

The objects movements are determined by the equation used to solve the ‘inverse kinematics’ problem. Therefore if the movements are unrealistic or unnatural the animator is unable to change them via this approach.

Within Inverse Kinematics the arcs are not as good as they would be in Forward Kinematics therefore the movement is often not as natural looking as it perhaps should be.

Inverse Kinematics in the real world:

Inverse kinematics have a very profound use in the real world and this has help establish this as a serious approach to animation.

One are is animation in which ‘inverse kinematics’ has been the preferred choice of many animators for a substantial period of time now. Several cartoon programmes such as ‘Scooby Doo’ incorporated this approach along with forward kinematics for several years as it made character movement realistic and natural looking. However Kinematics in recent times has subsided to a process called ‘motion capture’ which many animators now prefer to use due to the many disadvantages associated with the kinematics approach.

Another area where inverse kinematics is wildly used is in the field of ‘robot assemblers’ in which inverse kinematics calculations are often essential. An example of this would be an operator wishing to locate a ‘car part’ using a robot arm but not wanting to manipulate each joint individually.

Development trends and future research:

One major problem with ‘Inverse Kinematics is the fact that animation created via this process can often look unnatural and very armature therefore many animators prefer to use ‘forward kinematics for much of the animation process. Kinematics animation professionals are currently researching the idea of integrating both inverse and forward kinematics into one approach. Their theory is to have natural and high quality movement that is authentic at every level including physical connections with surfaces. This process in however still at a theoretical stage as the concept is proving difficult to implement.


Inverse kinematics is an important aspect of the animation process as it helps speed up the development as well as helping to make the final result both professional and natural looking. Inverse kinematics does however have many flaws such as its inability to allow animators to alter movements, which may look unnatural. However due to its current popularity in the animation field along with the research which is being carried out on it to readdress its problems it would seem that ‘Inverse Kinematics has an important role to play in the future of animation.

  03 March 2006
Hi, you should post this in the animation forum.

  03 March 2006
Thread automatically closed

This thread has been automatically closed as it remained inactive for 12 months. If you wish to continue the discussion, please create a new thread in the appropriate forum.
CGTalk Policy/Legalities
Note that as CGTalk Members, you agree to the terms and conditions of using this website.
Thread Closed share thread

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Society of Digital Artists

Powered by vBulletin
Copyright ©2000 - 2006,
Jelsoft Enterprises Ltd.
Minimize Ads
Forum Jump

All times are GMT. The time now is 07:04 AM.

Powered by vBulletin
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.