La cinématique inverse va révolutionner l'animation par ordinateur
« Il s'agit d'un travail autonome et indépendant. »
Données clés du projet
2 personnes
3 mois
Moteur de cinématique inverse
Modèles mathématiques
C++
Pourquoi nous aimons présenter ce cas
Depuis plus de 100 ans, Potsdam est l'une des capitales mondiales du cinéma. Aujourd'hui, c'est également une ville scientifique de premier plan. Travailler sur un projet combinant ces deux disciplines était un défi que nous avons accepté avec plaisir.
Tâche et solution
Wonderlamp Industries s'est fixé un objectif ambitieux : révolutionner la production de films d'animation par ordinateur grâce à son logiciel d'animation « Djinni ». Les personnages et les objets doivent suivre les instructions du réalisateur, comme dans un long métrage, sans qu'il soit nécessaire d'animer chaque étape à la main. Une telle technologie pouvait simplifier considérablement le processus de production, offrant d'une part plus de liberté et de flexibilité aux producteurs et aux réalisateurs, et permettant d'autre part de réaliser des productions d'animation à faible budget, ouvrant ainsi de nouveaux marchés. Un moteur de cinématique inverse était au cœur de cette nouvelle technologie. L'utilisation des moteurs de cinématique existants des SDK de jeux vidéo n'était pas envisageable pour des raisons de licence. Wonderlamp Industries ne pouvant mener à bien le développement avec son équipe interne, Ambrosys a été engagé.
Avec seulement deux employés hautement qualifiés, un développeur et un analyste, tous deux docteurs en physique, le composant de cinématique inverse était prêt après seulement quelques semaines. Même l'objectif ambitieux de développer en C++ n'a posé aucun problème, pas plus que le portage à court terme de Gmake vers Cmake, un autre système de compilation, que nous avons pu réaliser en quelques jours seulement.
Et aujourd'hui ? « Djinni » n'a malheureusement pas été diffusé à la télévision ni dans les salles de cinéma ; le nouveau flux de travail était trop étranger aux studios de production. « Djinni » a toutefois été le précurseur de nombreuses autres technologies utilisées aujourd'hui pour produire des films d'animation, visionnaires pour la technologie d'IA utilisée aujourd'hui.
Qu'est-ce que la cinématique inverse et à quoi sert-elle ?
La cinématique inverse est une approche mathématique qui aide les structures robotiques ou squelettiques à se déplacer correctement. Elle simule la façon dont le corps humain bouge : si nous voulons prendre un verre posé sur une table, nous plaçons notre main dans une position qui permet à nos doigts de saisir le verre. Nous ne pensons pas à ce que font notre épaule ou notre coude ; leur mouvement se fait automatiquement.
C'est exactement ce que fait la cinématique inverse dans une approche mathématique : à partir du dernier élément de la chaîne cinématique qui doit prendre une certaine position, elle calcule comment tous les autres éléments doivent se déplacer pour que cela se produise.
Les domaines d'application de la cinématique inverse sont multiples. Dans l'animation par ordinateur, elle garantit des mouvements fluides, comme dans notre exemple. Les applications avancées de réalité virtuelle et augmentée s'en passent rarement. Le domaine d'application le plus important reste toutefois la robotique, par exemple dans la fabrication et l'assemblage, ou lorsque les robots doivent apprendre à marcher (planification du mouvement). À l'avenir, il y aura également de plus en plus de domaines d'application dans le domaine médical, par exemple dans les robots chirurgicaux ou les prothèses intelligentes.
De nombreux employés d'Ambrosys ont une formation en physique ou en mathématiques. C'est pourquoi les solutions de cinématique inverse nous viennent relativement facilement, quelle que soit leur application.
La puissance du C++
Le C++ est un langage de programmation qui offre d'énormes possibilités aux programmeurs. Le C++ permet de gérer les simulations scientifiques les plus complexes, les moteurs physiques, le rendu graphique en temps réel, les applications algorithmiques de technologie financière, et bien plus encore. Il est souvent le langage de prédilection pour le développement multiplateforme, car il peut être facilement compilé, déployé et exécuté sur différents systèmes d'exploitation ou appareils, notamment Windows, macOS, Linux et les systèmes embarqués.
Le C++ permet un contrôle précis des ressources système, ce qui permet d'exploiter tout le potentiel des ressources matérielles. Cela en fait également un candidat idéal pour les applications HPC (« supercalcul »), que ce soit dans le domaine des prévisions météorologiques, de la modélisation climatique ou de la dynamique des fluides. Il est livré avec une riche bibliothèque de fonctions et de structures de données, comprenant des algorithmes, des conteneurs et des opérations d'entrée/sortie.
L'inconvénient de cette solution miracle ? Elle n'est pas destinée aux débutants. Elle impose au contraire des exigences très élevées au programmeur, car elle est complexe, dispose d'un vaste ensemble de fonctionnalités et de règles, et ne dispose pas de certaines des fonctionnalités de sécurité présentes dans des langages plus simples. Comparez-la à une voiture de course ! Si elle n'est pas utilisée avec habileté et prudence, elle peut entraîner des erreurs et un débogage difficile.
Ambrosys dispose d'une solide base de « pilotes de course », des programmeurs possédant une expérience et des compétences approfondies nécessaires pour libérer la puissance du C
→ Vous avez des questions ou des remarques concernant la cinématique inverse ou le C++ ? Le Dr Markus Abel se fera un plaisir d'y répondre.