« Géométrie discrète » : différence entre les versions
Aller à la navigation
Aller à la recherche
Ligne 9 : | Ligne 9 : | ||
* accélérer la formation des nouveaux arrivants en géométrie discrète, faciliter le démarrage des thèses, accroître le développement de la communauté |
* accélérer la formation des nouveaux arrivants en géométrie discrète, faciliter le démarrage des thèses, accroître le développement de la communauté |
||
=== Wishlist === |
=== Wishlist technique === |
||
* Langage, systèmes |
* Langage, systèmes |
Version du 17 juin 2009 à 08:34
Discussion autour de bibliothèques et de codes sur la géométrie discrète
Objectifs généraux
L'objectif est de fournir un noyau stable pour développer des applications utilisant des techniques de géométrie discrète. Autour de ce noyau, un certain nombre de petits applicatifs pourra être proposé. De même, la création de certains plug-in pour des plateformes classiques sera envisagé. Un tel effort collectif de la communauté vise à répondre aux enjeux suivants :
- faciliter le développement de nouveaux algorithmes/outils en géométrie discrète ;
- faciliter la communication de résultats concrets à la communauté, permettre par exemple des comparisons précisions/robustesse/temps de calcul entre différentes approches ;
- mieux diffuser les travaux de géométrie discrète dans d'autres communautés, notamment le traitement et l'analyse d'image, la reconnaissance des formes, la géométrie algorithmique
- accélérer la formation des nouveaux arrivants en géométrie discrète, faciliter le démarrage des thèses, accroître le développement de la communauté
Wishlist technique
- Langage, systèmes
- Langage choisi : C++ ?
- Systèmes : Linux, MacOS, Windows ?
- Noyau(x) commun(s)
Contenu du ou des noyaux, dépendance par rapport à d'autres bibliothèques
- Packages
- Plugs-in
- Ponts avec d'autres bibliothèque (non GeoDis) au niveau structure de données.
- Rendus possibles et faciles à mettre en place ? C'est un minimum. Un utilisateur peut être contraint pour une raison X ou Y de combiner l'utilisation du noyau avec une autre bibliothèque, au niveau structure de données au moins.
- Offrir d'emblée un certain nombre de ponts ?
- Oui, notamment ponts pour faciliter le développement de plugs-in (ex Paraview), importer/exporter de CGAL ou de bibliothèques image
Bibliothèques/Outils existants
- Bibliothèques "image"
- Visualisation
- VTK (opensource, kitware)
- Paraview (opensource, kitware) : outils de visualisation de données scientifiques basées sur les pipeline VTK
- + Interface très bien pensée
- + Système de plugin basé sur les classes VTK très simple
- + Tous les filtres VTK sont utilisables dans Paraview
- + Gestion utlra-simple de cluster de calcul de rendu via MPI
- QVox (Seb Fourey) : interface de visualistion/manipulation d'objets discrets
- + Très efficace même sur de gros volumes
- + mécanisme de plugin 'ligne de commande + interface automatique' très utile
- - ne permet pas de visualiser d'autres types d'objets (maillages,...)
- Géométrie/topologie discrète
- ImaGene (J.-O. Lachaud) : bibliothèque de représentation des sous-ensembles de la grille discrète: objets, surfaces discrètes, ensembles de cellules, contours, etc.
- + une bonne partie des outils, algorithmes, structures de données sont écrits en dimension quelconque, e.g. suivi de surface nD, estimateurs discrets nD, export en surface triangulée
- + la géométrie discrète 2D arithmétique est assez complète (couverture tangentielle, tangentes, courbures) et assez générique
- + pas mal d'outils de type ligne de commande pour traiter les images binaires 2D, contours, analyser/afficher les segments max, avec exportation sous Xfig
- - la visu 3D est externe (ImaGeneUtils), utilise Coin/OpenInventor et est non-interactive
- - manque des I/O nD (seul le cas 2D est bien traité)
- - documentation en ligne essentiellement, peu de doc utilisateur
- ImaGene (J.-O. Lachaud) : bibliothèque de représentation des sous-ensembles de la grille discrète: objets, surfaces discrètes, ensembles de cellules, contours, etc.
- Gestion projet/compilation/...
- cmake langage de description d'un projet pour une compilation multi-plateforme (Makefile sous linux, Visual Project, KDevelop, Xcode...)
Méthodologie
- groupe de travail réduit couvrant les différents champs de la géométrie discrète
- discussion et préparation par interaction sur wiki, mail, téléphone, rencontre
- mise en valeur des qualités et défauts des codes existants
- se mettre d'accord sur les objectifs, sur l'architecture générale et le découpage
- identifier les tâches prioritaires, les intérêts communs, les cibler et attribuer des responsables
- identifier les codes qui doivent servir de base de travail
- prévoir le programme des journées prévues
- 3 jours de rencontre/travail en continu fin août/début septembre 2008
- ...