Le but de ce projet est de pouvoir étudier certaines propriétés topologiques d'objets 3D. Pour cela nous procédons en plusieurs étapes, qui seront les différentes parties à développer dans ce projet. La première étape consiste à extraire un squelette curvilinéaire de l'objet 3D étudié. Le seconde partie consiste à transformer ce squelette en un graphe, les noeuds étant les points d'intersection du squelette. À partir de ce graphe il est donc possible d'extraire des caractéristiques purement topologiques sur notre objet (telles que les degrés des noeuds par exemple), mais aussi des caractéristiques combinant topologie et géométrie en fonction des données que l'on associe aux noeuds et arêtes, comme par exemple l'angle entre deux arêtes.
L'objectif de ce projet est d'implémenter un logiciel permettant de réaliser toutes ces étapes. Il devra donc permettre de charger un objet 3D, d'obtenir le squelette curvilinéaire (en utilisant un code libre choisi parmi les nombreux programmes existants), de le transformer en graphe (codé par exemple à l'aide de la bibliothèque lemon), puis d'associer une structure à chaque noeud et arête du graphe, en fonction des caractéristiques qui nous intéressent.
C++, lemon, une bibliothèque libre intégrant un algorithme de squelettisation.