Back1 Back2 Back3 Wonderlamp Industries

Wonderlamp Industries
Inverse kinematics to revolutionize computer animation

BACK

Inverse kinematics to revolutionize computer animation

“It’s about this autonomous, self-reliant work.”

 

Robert Hödicke, CTO Wonderlamp Industries

 

-> Read full interview

Project key data

2 people

3 months

Inverse kinematics engine

Mathematical models

C++

Why we like showing this case

For over 100 years, Potsdam has been one of the film capitals of the world. Today, however, it is also an outstanding city of science. To work on a project that combines both disciplines was a challenge we gladly accepted.

Task and solution

Wonderlamp Industries pursued an ambitious goal: revolutionizing the production of computer-animated films with its "Djinni" animation software. Characters and objects should follow the director's instructions, just like in a feature film, with no need to animate every single step by hand. Such technology could mean a great simplification of the production workflow, giving producers and directors more freedom and flexibility on the one hand, and enabling animation productions at low budgets, thus opening up new markets, on the other. An inverse kinematics engine was central to the new technology. Using existing kinematics engines from gaming SDKs was not an option for licensing reasons. Since Wonderlamp Industries could not accomplish the development with its in-house team, Ambrosys was contracted.

With only two highly qualified employees, developer and analyst, both PhD physicists, the inverse kinematics component was ready after only a few weeks. Even the challenging target of developing in C++ was no problem, nor was the short-term porting from Gmake to Cmake, another build system, which we were able to realize in just a few days.

And today? "Djinni" unfortunately didn't make it to the screens and movie theaters; the new workflow was too foreign to the production studios. "Djinni" did, however, pioneer many other technologies used to produce animated films nowadays – visionary for AI technology in use today.

What is inverse kinematics, and what is it good for?

Inverse kinematics is a mathematical approach to help robotic or skeletal structures move properly. It simulates the human way of moving the body: If we want to take a glass that’s sitting on the table, we steer our hand into a position where our fingers can grab the glass. We don't think about what our shoulder or elbow is doing; their movement happens automatically.

This is exactly what inverse kinematics does in a mathematical approach: starting from the last element of the kinematic chain that should take a certain position, it calculates how all other elements have to move for it to happen.

The areas of application for inverse kinematics are manifold. In computer animation, it ensures smooth movements, as in our example. Advanced virtual and augmented reality applications rarely do without it. The most important area of application, however, is robotics, e.g. in manufacturing and assembly, or when robots are actually to learn to walk (motion planning). In the future, there will also be more and more areas of application in medicine, for example in surgical robots or intelligent prostheses.

Many Ambrosys employees have a background in physics or mathematics. That’s why solutions for inverse kinematics come relatively easy to us, regardless of their application.

The power of C++

C++ is a programming language that puts huge powers in a programmer's hand. C++ can handle most complex scientific simulations, physics engines, real-time graphics rendering, algorithmic fintech applications, and much more. It is often the language of choice for cross-platform development, because it can easily be compiled, deployed and executed across different operating systems or devices, including Windows, macOS, Linux, and embedded systems.

C++ allows a fine control over system resources, hence allows harnessing the full potential of hardware resources. This also makes it an ideal candidate for HPC (“supercomputing”) applications, be it in weather forecasting, climate modeling, or fluid dynamics. It comes with a rich library of functions and data structures, including algorithms, containers, and input/output operations.

The downside of this silver bullet? It’s not for beginners. Rather, it makes the highest demands on the programmer, for it is complex, has a vast set of features and rules, and lacks some of the safety features found in simpler languages. Compare it to a racing car!If not used with skill and care, it may result in errors and challenging debugging.  

Ambrosys has a strong base of “racing car drivers”, programmers with deep-rooted experience and skills needed to unleash the power of C++.

 

→ Questions or thoughts about inverse kinematics or C++? Dr. Markus Abel is looking forward to hearing from you.

Go back