Construction de scènes 3D en XML

Encadrants : Florence Zara, Fabrice Jaillet (LIRIS-SAARA)
Détails : Le stage se déroulera au sein du laboratoire LIRIS (bâtiment Nautibus).
Domaine : Informatique graphique.
Compétences requises : C++, éventuellement XML ou Qt.

Sujet :

Le projet SAGA « Simulateurs pour l'Apprentissage des Gestes de l'Accouchement » vise le développement d'un environnement de Réalité Virtuelle permettant la réalisation d'un simulateur pour l'apprentissage du geste médical de l'accouchement. Ce simulateur est composé d'une simulation numérique couplée à un dispositif physique. Dans ce cadre, l'équipe SAARA du LIRIS est impliquée dans l'élaboration d'un modèle bio-mécanique optimal permettant la simulation des interactions entre la dynamique pelvienne de la femme enceinte et le fœtus durant l'accouchement, ceci en liaison avec une interface haptique.

La librairie NExT est employée au sein de l'équipe SAARA pour effectuer de la simulation d'objets 3D. Le stage vise à améliorer la gestion et la création des scènes lors de l'emploi de cette librairie. Une scène NExT se compose d'un certain nombre d'informations requises pour les différents objets pour effectuer leur simulation : géométrie des objets, modèle de simulation 3D, paramètres mécaniques, textures, etc.


[Image du simulateur SAGA avec scène 3D d'accouchement]

Au niveau de la gestion de la scène NexT, une première version a été réalisée permettant de décrire la scène plus simplement en XML, plutôt qu'en C++. Plusieurs exemples de scènes 3D ont été développés.

Il s'agira dans ce stage d'ajouter les fonctionnalités adéquates dans l'application NExT permettant :

  • de charger une scène NExT décrite à l'aide d'un fichier XML ou XSD,

  • d'automatiser le code lors de l'ajout de nouvelles classes C++,

  • de sauvegarder la scène NExT en cours d'exécution dans le formalisme XML ou XSD, incluant l'état du système (positions, vitesses, accélérations, forces des nœuds des éléments de la scène, pas de temps, textures, etc.) à un instant donné.

  • d'améliorer la gestion de la scène dans l'IHM de NexT, notamment en sélectionnant et manipulant les objets de manière plus interactive.

  • en extension, de proposer une création de scène automatique via la sélection des fonctionnalités dans des menus (via Qt).

Il sera possible d'employer une librairie telle que XERCES (http://xerces.apache.org) ou le module qtXMLpatterns (http://doc.qt.io/qt-5/qtxmlpatterns-index.html) de Qt pour gérer la lecture et création des fichiers XML ou XSD.