L'objectif de ce stage est de coupler deux logiciels, Elkano et FlowVR, pour la mise en place d'applications 3D distribuées où le stockage des données, souvent massives, et les calculs sont effectués sur des machines puissantes, alors que les utilisateurs interagissent avec l'application à partir de plate-formes allant de la salle immersive de réalité virtuelle à des "smart phones". Nous disposons des deux logiciels de base pour la mise en place de telles applications. FlowVR est un intergiciel orienté composants pour le développement d'applications intéractives haute performance. Une application FlowVR est un assemblage de composants qui peuvent être, au lancement de l'application, distribuées sur différentes machines. L'application peut ainsi profiter de l'agrégation des capacités de calcul et de stockage de l'ensemble de ces machines. Elkano s'articule autour d'un modèle client/serveur, où le serveur tiens compte des capacités graphiques du client pour lui servir des données 3D qu'il pourra rendre en temps réel. Elkano utilise par exemple des techniques de rendu progressif ou d'analyse des zone de visibilité poussées.
Après une prise en main des deux logiciels, le stagiaire devra élaborer un mécanisme de couplage. Une approche possible consiste à encapsuler le serveur Elkano dans un composant FlowVR. Une application simple sera développée pour valider l'approche. Dans une deuxième temps le stagiaire étendra cette application au cadre distribué. Des composants FLowVR seront distribuées sur 3 sites (Grenoble, Orléans, Bordeaux), les utilisateurs, eux aussi présents sur ces 3 sites, s'y connectant via Elkano. Ce travail se fera en étroite collaboration avec l'équipe i-parla de Bordeaux et l'équipe PRV d'Orléans. La derniere phase du stage consitera à adapter une application FlowVR existante de gestion de modèles numériques de terrain de grand volume, pour que le rendu puisse être effectué par Elkano.
Pour les expérimentations le stagiaire aura acccès à la plateforme GrImage.
Le candidat devra être un bon programmeur, avec de préférence des compétences C++, et être familier avec Windows et Linux. Des connaissances OpenGL sont en plus.
FlowVR est un middleware pour le d�veloppement d'applications intèractives parallèles et distribuées. Nous utilisons en particulier FlowVR sur la plateforme de réalité virtuelle GrImage. Les applications FlowVR sont composées d'un assemblage de composants hiérarchiques (voir de schémas de graphe dans la galerie de FlowVR). Ces applications, dans le cas de la réalité virtuelle par exemple, peuvent souvent compter plusieurs milliers de composants. FlowVR fournit une librairie C++ pour la création et l'assemblage de ces composants. Cette librairie est actuellement dédiée à un public expérimenté. Elle n'est pas adaptée au prototypage rapide d'application ou aux utilisateurs débutants.
L'objectif du stage est de faciliter la construction d'application FlowVR en interfaçant la librairie C++ vers d'autres langages tels que Python, Ruby, Perl ou TCL. Ces langages de script, grâce à une prise en main rapide, permettraient de prototyper rapidement une application FlowVR.
Pour réaliser l'interface du C++ vers d'autres langages, le stagiaire pourra utiliser des outils tel que SWIG
Le travail pourra se découper de la façon suivante :
Les outils qui seront produits durant ce stage seront souvent utilisés lors du premier contact de l'utilisateur avec la suite FlowVR. Nous attendons donc du stage qu'il aboutisse à un outil de qualité, performant et ergonomique.
Le candidat devra être un bon programmeur avec de préférence des compétences C++.