[Page travaux] [Exercice 4] [Rapport ex4]

Rapport exercice 4

Objectifs

J'ai profité de cet exercice VRML pour tenter de construire un petit dispositif sur la visualisation de l'information, vaste domaine qui m'intéresse tout particulièrement. Mon objectif consistait à créer un petit outil de visualisation pour représenter des bookmarks dans un espace 3D. Il fallait de plus que la 3D apporte quelque chose dans la visualisation, que ce ne soit pas une simple transposition d'un ensemble d'informations de 2D en 3D.
Je tenais ainsi a apprendre les bases du VRML (formes, apparences, interactivité et animations de base). Comme j'aime bien construire un dispositif plus complet qu'une simple scène, j'ai aussi voulu incorporer une interaction avec l'utilisateur. J'ai donc voulu faire générer du VRML par php.
Je suis également très minimaliste, donc j'ai tenu a taper le code a la main, je n'ai pas utilisé d'outils comme cosmoworld; les formes créées sont de ce fait très simples.

Asepcts théoriques : InfoViz

Le but de ce petit dispositif est de représenter des bookmarks au sein de catégories dans un espace 3D. Comme c'est un petit dispositif expérimental, je n'ai fait que 2 catégories. On peut alors envisager trois possibilités : L'intérêt de représenter cela par une scène 3D réside dans le fait que l'on peut mieux visualiser les bookmarks se situant à cheval sur les deux catégories; cela par rapport à une simple liste. On arrive alors à "compacter" plus d'informations.
En ce qui concerne la représentation en VRML, je me suis inspiré des travaux de Chaomei Chen [1] ou encore de ceux de Tim Bray[2,3]. Chen propose, grâce à un système automatique, une représentation de l'information dans un espace 3D sémantique [4]. Ces scènes 3D forment ainsi une grosse "site map" sous forme de graphe (les liens sont sémantiques) dans un pasyage. Quant à Tim Bray, ses "Web space visualizations" nous montrent une site map générées automatiquement (sur des critères d'analyse sémantique) : la distance spatiale dans l'espace virtuelle (codé en VRML) reflète alors la distance sémantique.
Mon but n'est pas de faire de l'analyse sémantique, ni d'introduire la notion de distance spatiale virtuelle. Il s'agit plutôt de s'inspirer de l'idée directrice de ces travaux pour faire une simple catégorisation en 3D. Ce sera ainsi à l'utilisateur de proposer 6 bookmarks (j'ai pris un petit nombre pour limiter la taille du dispositif) et de spécifier une des trois catégories possibles.

Aspects techniques

Ce dispositif a été développé avec Emacs (pour le code html et php) et Vrmlpad (pour le Vrml). Ce dernier comportant des fonctionnalités assez sympa (que n'avait pas Emacs en mode vrml) comme, entre autres, un vérificateur de syntaxe... Je me suis servis du primer tutorial de Tecfa et un peu du Siggraph tutorial. J'ai procédé de manière incrémentale en éditant du code, le modifiant, regardant les scénes VRML... pour voir les effets des modifications
J'ai commencé par construire un premier fichier vrml (debut.wrl) qui comporte les deux zones de bookmarks sous forme de gros cylindres plats, les prototypes des formes représentant les bookmarks (deux cylindres, une sphère et du texte). J'ai ainsi pu me familiariser avec la syntaxe de création des objets, de modifications de certaines caractéristiques (position, rotation, lumière, transparence...) L'utlisation de prototype étant évidemment très pratique pour pouvoir produire plusieurs mêmes objets avec des attributs différents (position dans l'espace, titre...). Ce fichier contient également une zone d'aide sous forme d'un cube en rotation sous lui-même grâce à l'utilisation d'un Time Sensor. Quand on passe la souris sur le cube, un petit texte d'aide apparait à sa gauche, pour guider l'utilisateur. Pour faire cela, j'ai placé un Touch Sensor dans ce cube et j'ai utilisé un petit script ECMA que j'ai trouvé chez David Ott (thanx Dao :).
Ensuite, j'ai fait quelques essais de création de bookmarks à partir de ce fichier debut.wrl qui est incorpore dans un autre fichier wrl, j'ai placé les boules sur les 3 zones (catégorie 1, 2 et recouvrement). Je me suis décidé a placer quatre vues différentes : une vue d'ensemble et une vue sur chaque catégorie. Tout cela est expliqué dans l'aide qui apparit lorsque l'on passe la souris sur le cube en rotation.
Je suis alors passé à la gestion de l'interactivité avec l'utilisateur. J'ai créé un formulaire html qui prend les propositions de l'utilisateur (les noms des catégories, les url des bookmarks, leur titre et description). Aprés c'est un script php qui va générer la scène. CE petit programme, récupère les paramètres donnés par l'utilisateur, leur enlève les slashs, puis va écrire un fichier nommé chose.wrl. J'ai mis une boucle switch qui va regarder à quel catégorie appartient chaque bookmark et ainsi définir une position dans l'espace (sur les trois zones). Des varibles récupèrent ainsi tous les enfants du prototype bookmark avec leur position et leur titres définis. Le php récupère le fichier debut.wrl qui comporte les élèments contextuels (les zones, l'aide et les prototypes) et l'écrit au début du fichier chose.wrl. Sur la page qui suit le formulaire html, j'ai mis un refresh qui amène directement l'utilisateur sur la scène VRML.

Critiques, limites et conclusion

Ce dispositif est évidemment très limité, tant par le nombre de catégories que par celui de bookmarks inscriptibles. Il y a aussi un problème quant à l'emplacement des bookmarks sur les zones : il n'y a pas de rôle de la distance, seule la catégorie importe; cela peut pourtant induire en erreur l'utilisateur.Celui-ci, intuitivement, se dira que si un bookmark est plus proche de la la zone centrale il doit alors être plus proche de la seconde catégorie, ce qui est faux, puisqu'il n'y a que trois "sémantiques" (les trois catégories).
On peut également critiquer l'aspect des repésentations : les formes et les couleurs. J'ai opéré un choix arbitraire, esthétique pronant un certain minimalisme, mais qui n'a pas de fondement (à part peut être singer les représentations qu'utilisait Time Bray ;). J'ai donc pu me rendre compte de la difficulté de ce domaine qu'est la visualisation d'informations, puisque quantité de problèmes apparaissent lors de la conception d'un dispositif de ce genre : que représenter ? comment représenter ? pourquoi utiliser la 3D ?

Ressources/Bibliographie


© N.Nova (Février 2001).