Réalisations

Cylindre Energie – Cité des Sciences

L’exposition intitulée « Expo Energies » à la Cité des Sciences et de l’Industrie propose à ses visiteurs de découvrir le monde de l’énergie d’aujourd’hui et d’explorer de nombreuses pistes pour fournir un début de réponse aux questions de l’énergie de demain, à travers un ensemble d’applications multimédia ludiques. A l’occasion de cette exposition, nous avons été choisis pour réaliser un certain nombre de dispositifs.

Le Cylindre Energie

Le cœur de l’exposition est un cylindre creux de 14 mètres de diamètre pour 10 mètres de haut. Il abrite en son sein un premier panorama à 180° degrés à hauteur du visiteur composé d’une fresque défilante animée, et agrémentée de liens tactiles déclenchant le démarrage d’applications ludiques thématiques. Ce premier panorama est lui-même surmonté d’un deuxième panorama plus grand et à 360° proposant diverses fonds liés aux grandes problématiques de l’énergie et recouverts d’un réseau de compteurs indiquant en temps réel l’évolution des chiffres les plus importants de la problématique donnée (démographie, production pétrolière…). Ces compteurs défilant en temps réel instaurent un climat de pression sur le visiteur, et se déplacent à travers le panorama géant en y déposant un genre de pollution visuelle. Seul le visiteur, à travers l’accomplissement de certaines tâches proposées par les applications ludiques du panorama tactile, peut déclencher des évènements bienfaiteurs qui viendront nettoyer cette pollution sur le grand panorama.

    • Client : Cité des Sciences et de l’Industrie
    • Projet : Cylindre Energie
    • Dates : Exposition permanente « Expo Energies » depuis Octobre 2010
    • Expertise : C#, architecture client/serveur, rendu distribué, projection sur surface non plane, multi-écran, interface tactile, contenu multimédia
 


Voir la vidéo de présentation de Tharsis, prestataire qui a réalisé certaines applications s’interfaçant à notre système

Réalisation technique

La réalisation du cylindre est scindée en deux parties. Une première couche gère l’affichage des différents panoramas, les différentes animations qu’ils abritent ainsi que les évènements tactiles de l’utilisateur. Une seconde couche consiste en un ensemble de logiciels isolés représentant les applications ludiques que le visiteur peut démarrer depuis le panorama interactif. Pour cette exposition, SIP Conseil a réalisé l’ensemble de la première couche qui sert de structure à l’ensemble du projet, ainsi que certaines des applications ludiques en surcouche.

Gestion des panoramas

Pour la réalisation des deux panoramas nous avons opté pour une architecture client-serveur composée d’un réseau de machines. Une première machine joue le rôle de serveur : elle exécute un logiciel dédié qui gère en temps réel l’ensemble des deux panoramas et met à jour leur apparence plusieurs fois par seconde pour assurer l’animation. Le reste du réseau est un ensemble de machines clients : chaque client exécute un logiciel dédié qui se connecte auprès du serveur et reçoit en temps réel un descriptif de l’apparence du panorama concerné par ce client. Le client va ensuite procéder à la synthèse de l’image correspondant à une sous-région du panorama.
Pour fonctionner, l’ensemble du cylindre a besoin de 19 vidéoprojecteurs pilotés par 18 machines sur un réseau. Afin de réaliser une transmission efficace d’au moins 30 images par seconde du serveur vers les clients, nous avons élaboré un protocole de description de scènes 2D permettant au serveur de communiquer rapidement aux clients la description des deux panoramas à chaque changement d’état (entre 30 et 60 mises à jour par secondes, pour assurer la fluidité des panoramas). Cette description gère différents types de contenu 2D (calques, composition de calques, images, vidéos, textes, courbes, particules, effets visuels…) et les présente sous forme hiérarchique (graphe de scène). Afin de permettre à une description de scène 2D d’être la plus compacte possible, des numéros uniques sont utilisés pour référencer les ressources volumineuses nécessaires à sa composition (fichiers image, vidéo, police de caractère…) et à chaque démarrage d’un client, celui-ci télécharge la liste des ressources requises depuis le serveur et met automatiquement à jour sa propre copie locale des fichiers correspondants.

Le logiciel serveur implémente différents mécanismes pour s’assurer de la fluidité de la transmission des données vers les clients. Tout d’abord, les paquets transmis sont compressés pour éviter la saturation du réseau. Ensuite, un mécanisme de synchronisation permet au serveur d’annuler la transmission d’un ou plusieurs paquets vers un client afin d’autoriser celui-ci à rattraper un éventuel retard et ainsi éviter la désynchronisation entre les clients. Le traitement de tous les clients est parallélisé coté serveur, d’une part exploiter au mieux les performances des machines multi-cœur actuelles, et d’autre part pour assurer la fluidité du trafic pour chacun des clients connectés. Enfin, le serveur propose une interface de configuration qui permet de paramétrer et de personnaliser en temps réel tout le contenu des deux panoramas mais aussi de superviser en temps réel les performances de tous les clients.

Le logiciel client, quant à lui, est chargé de synthétiser une image de la région du panorama le concernant à chaque nouveau paquet reçu de la part du serveur. Pour ce faire, il exploite la carte graphique pour accélérer le processus de synthèse et utilise des shaders hardware développés spécifiquement (interpolation de courbes splines, composition des calques, effets visuels…). De plus, le logiciel client doit gérer de manière précise les ressources utilisées par le panorama car l’ensemble des données multimédia nécessaires au projet (images, vidéo parfois en très haute définition, polices d’écriture…) est très consommateur de ressources matérielles. C’est pourquoi le protocole de communication prévoit un ensemble de signaux permettant au serveur d’aiguiller ses clients sur la gestion de leurs ressources.

Panorama interactif

Le panorama interactif est composé d’un ensemble de 16 écrans tactiles. Chaque écran est composé d’une surface de projection en verre ainsi que d’un vidéoprojecteur connecté à un ordinateur qui est dédié à cet écran. Un faisceau laser infrarouge parcourt en permanence la surface de l’écran. L’utilisateur va interrompre ce faisceau lors d’une manipulation tactile, qui sera ainsi observée par une caméra infrarouge connectée à l’ordinateur. Le logiciel Shape Tracker développé par nos soins se charge alors d’analyser ces images en temps réel, et peut ainsi détecter et suivre les doigts de l’utilisateur à l’écran. Ces signaux sont envoyés au logiciel client ainsi qu’aux applications ludiques lorsqu’elles sont actives, via le protocole standard TUIO.

Panorama à 360°

Le panorama à 360° est composé de 3 vidéoprojecteurs couvrant des surfaces de projection courbes et partiellement superposées. Pour assurer la meilleure continuité possible du panorama et minimiser les déformations de l’image, les clients chargés de ce panorama gèrent directement la distorsion de l’image compensant la courbure de la surface de projection, ainsi que l’atténuation de l’image projetée faisant la transition avec l’image du vidéoprojecteur adjacent, le tout en temps réel lors de l’affichage (par le biais d’un shader hardware spécialisé). De plus, ces clients effectuent ces opérations suivant des paramètres transmis par le serveur et réglables en temps réel depuis l’interface de configuration de ce dernier.

Applications

Parmi les applications accessibles depuis le paysage figure l’application « Menu », qui permet de naviguer parmi la liste des autres applications dans une interface 3D sous la forme d’un carrousel.

Une autre application permet de visualiser des données géographiques sous la forme d’un histogramme présenté sur la surface d’un globe en 3D manipulable par l’utilisateur, le tout dans une interface soignée.

L’ensemble de ces logiciels a été développé en C# et utilise la technologie Microsoft Xna pour l’affichage.

Gallerie d'images