Propositions de TER stage 2005
Deux propositions de TER stages :
- Conception et implantation d'un nouveau module d'animation pour la boîte à outils graphique ZVTM
- Intégration d'un analyseur syntaxique DOT dans ZGRViewer, un outil pour la visualisation multi-échelles de graphes
Conception et implantation d'un nouveau module d'animation pour la boîte à outils graphique ZVTM
Encadrant
Description
Contexte : les boîtes à outils (toolkits) pour la création d'interfaces graphiques telles que Java/Swing représentent des solutions puissantes, génériques et portables mais qui ne peuvent pas être utilisées pour certaines classes d'applications comme les éditeurs de graphes ou les environnements de développement associés aux langages de programmation visuelle. Les programmeurs doivent alors avoir recourt à des APIs de plus bas niveau telles que Java2D, qui sont plus expressives mais aussi plus difficiles à utiliser.
La ZVTM (Zoomable Visual Transformation Machine) est une boîte à outils Java pour la création d'interfaces zoomables (aussi appelées interfaces multi-échelles ou interfaces en 2,5 dimensions). Son but est de faciliter la création d'éditeurs visuels avancés devant gérer des représentations complexes tout en permettant d'expérimenter de nouvelles techniques d'interaction (vues déformantes, vues translucides superposées, auto-zoom fonction de la vitesse de translation, pointage sémantique, etc.). Elle permet au programmeur de se concentrer sur la qualité de l'interface en cours de conception en offrant une API simple et puissante, et en gérant automatiquement les opérations de bas niveau : multi-threading, clipping, rafraîchissement des fenêtres, cohérence des vues multiples, animations, etc.
La boîte à outils est basée sur la métaphore d'univers infinis pouvant être observés au moyen de caméras dont la position et l'altitude d'observation peuvent être changées. Elle est conçue pour prendre charge de grandes quantités d'objets aux formes géometriques complexes grâce à son propre modèle d'objets graphiques. La ZVTM tient son nom de la place importante qu'elle accorde au principe de continuité perceptuelle et donc aux animations de variables visuelles gérées par le module d'animation. Celui-ci permet d'animer la plupart des changements (transformations) effectués sur la représentation suivant différents schémas temporels : changement de position des caméras d'observation, modification des attributs perceptuels des objets graphiques (position, taille, orientation, couleur dans le système de coordonnées HSV), modification des propriétés des lentilles déformantes (fisheye views).
Travail demandé : le but de ce stage est de concevoir et d'implanter un nouveau module de gestion d'animations centré sur la coordination et l'interaction entre animations (le terme retenu pour désigner cette composante du module pourrait être animation choreography, s'inspirant du W3C Web Services Choreography Working Group). Il s'agit de définir l'architecture du module, son interaction avec les autres composants, ainsi que son API. Le nouveau module d'animation reprendra les fonctionnalités existant dans le module actuel et proposera si possible les extensions suivantes (en plus du mécanisme de chorégraphie) :
- animation du canal alpha des objets graphiques (translucidité),
- animation des vertices des objets VShape,
- extension des primitives d'animation de courbes quadratiques et cubiques déjà implémentées aux chemins (general paths).
L'ensemble de ces fonctionnalités devra être mis à la disposition du programmeur au moyen d'une API simple et unifiée.
Bibliographie
Initialement propriété de Xerox et du W3C, la boîte à outils ZVTM est distribuée sous license libre LGPL depuis 2002 (hébergement par SourceForge). Elle est utilisée par différents logiciels dont IsaViz (l'éditeur visuel de modèles RDF du W3C) et continue d'évoluer dans le cadre du projet In Situ.
- ZVTM
-
- ZVTM Web site
- E. Pietriga, Environnements et langages de programmation visuels pour le traitement de documents structurés, Institut National Polytechnique de Grenoble (PhD thesis), November 2002, Grenoble, France - Chapitre 5
- Applications fondées sur la ZVTM
-
- E. Pietriga, IsaViz: a Visual Environment for Browsing and Authoring RDF Models, WWW 2002, the 11th World Wide Web Conference (Developer’s day), Honolulu, Hawaii, USA, 7-11 May 2002
- E. Pietriga, Styling RDF Graphs with GSS, XML.com, 3 December 2003
- E. Pietriga, Environnements et langages de programmation visuels pour le traitement de documents structurés, Institut National Polytechnique de Grenoble (PhD thesis), November 2002, Grenoble, France - Chapitres 6 et 7
- E. Pietriga, V. Quint and J.-Y. Vion-Dury, VXT: A Visual Approach to XML Transformations, ACM Symposium on Document Engineering, Atlanta, USA, November 2001
- RDQL Plus, 2003
- A. Chan, R. Holmes, Prawn: An interactive Tool for Software Visualization, Course project of cs533 at UBC, 2003
Outils, langages utilisés
Java 1.4 ou 5.0, CVS, outils SourceForge
Intégration d'un analyseur syntaxique DOT dans ZGRViewer, un outil pour la visualisation multi-échelles de graphes
Encadrant
Description
Contexte : la bibliothèque GraphViz d'AT&T propose différents outils pour le calcul du placement des éléments d'un graphe en vue de sa visualisation. Chaque outil est spécialisé dans le placement de différents types de graphes, mais tous partagent le même but : optimiser de manière automatique le placement des éléments du graphe de manière à offrir une bonne lisibilité de la structure lors de sa visualisation. Les programmes dot et neato, qui font partie de cette bibliothèque, sont capables de traiter des graphes de taille importante (contenant plusieurs milliers de noeuds et d'arcs). La visualisation de tels graphes nécessite l'emploi d'outils de visualisation comme ZGRViewer, reposant sur des techniques d'interaction avancées : interface zoomable (multi-échelles), vues déformantes (focus+contexte), méthodes de navigation adaptées aux espaces d'information de grande taille, etc.
ZGRViewer, application Java implantée au-dessus de la bilbiothèque ZVTM, fait appel aux différents programmes de la bibliothèque GraphViz (implantés en C) et récupère la représentation engendrée par ces programmes sous la forme d'un fichier SVG facilement lisible par ZVTM. Cette approche simple présente un inconvénient majeur : le fichier SVG contient les informations géométriques/graphiques nécessaires à la représentation du graphe, mais aucune information concernant la structure logique du graphe. ZGRViewer est donc capable de représenter visuellement le graphe, mais le considère comme un simple ensemble d'objets graphiques et n'a pas connaissance de sa structuration logique. Cette connaissance n'est pas absolument nécessaire pour visualiser et naviguer dans le graphe, mais permettrait d'ajouter de nouvelles fonctionnalités intéressantes à l'application.
Travail demandé : un moyen de construire la représentation logique du graphe dans ZGRViewer consiste à utiliser un analyseur syntaxique (parser) pour le format DOT (utilisé pour la description des graphes en entrée des programmes de la bibliothèque GraphViz). Cet analyseur permettra de construire une représentation logique du graphe dans ZGRViewer et d'associer ses éléments aux éléments graphiques fournis par la représentation SVG. Le but de ce stage est d'intégrer un analyseur DOT dans ZGRViewer, soit en écrivant une nouvelle implantation, soit en intégrant et en améliorant une implantation existante, telle que celle de Grappa ou du toolkit InfoVis aussi développé dans le projet In Situ (INRIA/LRI). Une fois cette intégration effectuée, l'étudiant pourra optionnellement implanter de nouvelles fonctionnalités tirant parti de cette connaissance de la structure logique du graphe : nouvelles méthodes de navigation, modification de la représentation, etc.
Bibliographie
- ZGRViewer
- Applications et bibliothèques proposant des parsers DOT en Java
- Outils pour l'analyse syntaxique en Java
Outils, langages utilisés
Java 1.4 ou 5.0, outils pour l'analyse syntaxique tels que ANTLR ou CUP, CVS, outils SourceForge
Informations pratiques
Quelques instructions pour mettre en place l'environnement de développement.