LE PROJET

Souvenirs d'eau est une installation interactive qui questionne l'expérience du "home cinéma", et plus particulièrement des souvenirs qui s'en dégagent. Divisé en deux termes, le "home cinéma" est la possibilité de (re)vivre l’expérience sonore et visuelle du cinéma chez soi, dans notre bulle de confort. En effet grâce aux avancées technologiques, nous pouvons maintenant recréer le dispositif du cinéma dans notre environnement personnel. Les usages que les gens avaient du cinéma ont donc changés ; cette expérience prend place en un lieu et temps choisi par l’utilisateur, mais surtout sur un support qui est aussi défini par ce dernier. Nous avons de plus en plus de contrôle sur ces installations, mais nous sommes aussi plus sujets aux stimulus extérieurs et donc à des "ruptures" ponctuelles de ces expériences. De ce fait, les émotions attendues et supposément ressenties sont amoindries, et les souvenirs que nous avons de ces expériences s’estompent au fil du temps ...

CONCEPT

Inspiré de l'installation Memory de Laure Milena et Raphaël Elig, Souvenirs d'eau permet aux utilisateurs de s’immerger dans leurs propres souvenirs. Cette immersion se fait au niveau intradiégétique, via la diffusion et l'appropriation de souvenirs d’autrui. Certains codes graphiques vont venir accentuer cette suggestion : les films seront filmés de façon "tremblée" (ou de façon stable à l'aide d'une steadycam par exemple), et légèrement floutés pour réduire le rapport iconique de l’utilisateur avec ceux-ci et pour permettre une meilleure immersion et une appropriation du souvenir plus forte. Ces souvenirs seront tous extrêmement anodins, mais feront référence à des moments de nos vies que nous avons tous vécus au moins une fois. De ce fait, nous avons pioché dans les "vlogs" des youtubeurs les plus célèbres. Durant le visionnage, la musique a une place importante puisqu'elle va permettre elle aussi d'accroître l'immersion, à l'aide de musiques d’ambiance. Dans la mesure où il s'agit d'une installation interactive, c'est à elle de "parler" en premier et d'appeler les spectateurs aux alentours (sinon il ne s'agit que d'une installation réactive). C'est lors de la phase précédente que l'on attirera ces derniers, et ce à l'aide d'un son bien particulier : des cliquetis d'eau. Les utilisateurs auront la possibilité de passer d’un souvenir à un autre via un balayage de la main, créant ainsi une anamorphose représentative du mouvement de l’eau. L’eau a une part extrêmement importante dans cette installation, puisque le souvenir ne prend place dans la tête de l’utilisateur que grâce a elle. En effet, l’eau (aussi relative au flux) possède un fort indice symbolique avec les souvenirs. Ce rapport est souvent utilisé et mis en avant au cinéma.

RÔLES

Pour réaliser ce projet, nous étions deux : Justine Gaudin s'est occupée de choisir les films et d'appliquer le traitement post-vidéo à l'aide d'Adobe Première. Pour ma part, je me suis occupé du développement du projet sous Processing. Nous avons établi le concept ensemble et choisi la technologie qui nous semblait la plus dans nos moyens et la plus optimale.

PLAN

Afin de mettre en place le projet, nous avions prévu d'utiliser le principe de la table lumineuse : sur un petit bac transparent qui contient de l'eau, nous collions du papier en dessous et sur l'extérieur du bac, afin que la projection ait une surface sur laquelle se poser. Le projecteur se trouvait en dessous, de même que l'ordinateur qui traitait les informations. Une Kinect se trouvait à l'inverse au-dessus de l'installation, pour détecter toute présence ainsi que le sens des balayements.

Mise en situation de l'installation Souvenirs d'eau
Première version du plan de l'installation

Malgré le fait que cette disposition soit optimale, nous avons dû la laisser tomber pour plusieurs raisons. Premièrement, il nous était impossible de trouver un bac transparent, esthétique et pas cher à l'achat. La meilleure solution consistait encore à le construire mais devant nos moyens limités, c'était impossible. Deuxièmement, après quelques recherches sur les librairies de Kinect, nous nous sommes rendus compte qu'il était plus simple de se servir de celles de Leap Motion. Troisième et dernièrement, le projecteur que nous avions est tombé en panne : nous avons donc utilisé ceux de l'école mais ils sont fixés dans des cages qu'il est impossible d'enlever. Il fallait composer avec la disposition imposée de l'école, ce qui nous a fait repenser l'installation.

Version finale du plan de l'installation

Heureusement, nous avons réussi à nous en sortir avec un miroir et du fil de pêche ! Le bac quand à lui était un plat de cuisine. La projection venant du dessus, il n'était plus nécessaire qu'il soit transparent. Pour obtenir l'effet graphique que nous voulions, nous avons mélangé de l'eau et du lait (il fallait tout de même s'assurer que le lait soit suffisamment loin de la chaleur émise par le projecteur, pour ne pas qu'il tourne !).

CODE & FONCTIONNEMENT

Dans une installation, passé la phase de découverte, le fait de pouvoir interagir avec celle-ci est très plaisant et génère des émotions très puissantes, ce qui mène à la création de souvenirs. Même si nous n'aborderons pas la partie code en détails du fait de sa complexité, il était absolument vital que l'installation soit interactive, et que le statut de notre auditoire passe de spectateur à utilisateur.

Comme annoncé plus haut, nous avons décidé de nous séparer de la Kinect et de nous rapprocher de la Leap Motion. Cette dernière a une librairie (comprenait un ensemble de fonctions et de variables déjà établies dans lesquelles on peut venir "piocher") qui se nomme tout simplement Leap Motion for Processing. Les librairies sont généralement livrées avec des exemples d'utilisation pour comprendre comment appeler les différentes fonctions et pouvoir les utiliser. En plus des librairies pour traiter le son et la vidéo, on commence tout simplement par l'importer.

Import des librairies

Une fois que c'est fait, il faut définir dans le "setup()" l'objet Leap Motion, et lui préciser qu'il ne lira que des mouvements de type "swipe" (les lignes 106 et 107). Petit rappel : il est très très important de commenter votre code !

Définition de l'objet Leap Motion

Dans mon cas, j'ai aussi dû recoder les fonctions de "swipe" et selon le sens, je définissais le film suivant et précédent. J'ai d'abord dû me livrer à quelques tests concernant la vidéo : est-ce que toutes les extensions vidéo étaient lisibles et surtout, est-ce que mon ordinateur pouvait charger des fichiers très volumineux sans ralentir ? Il faut savoir qu'avec la librairie native de processing pour traiter la vidéo, seul les .mov sont compatibles. Ces fichiers vidéos sont conçus avec un algorithme de compression créé par Apple mais sont compatibles pour les plateformes Windows et Mac ; ça répondait à ma première question. Quand au poids du fichier vous vous en doutez, c'était trop beau pour être vrai et la solution était bien plus complexe que ce qu'il n'y paraît. Dans les grandes lignes, lorsque vous lisez un film sous processing les images sont préchargées par le CPU, le cœur du PC (Central Processing Unit). On aura tendance a vouloir le laisser tranquille pour qu'il puisse allouer son énergie à d'autres tâches, et c'est là que le GPU entre en jeu (Graphics Processing Unit) ! On va précharger les images avec ce dernier puisqu'en plus, c'est son rôle d'assurer les fonctions de calcul d'affichage !

Pour ce faire, on utilise deux shaders (des programmes exécutés par le GPU) qui sont "frag.glsl" et "vert.glsl", chargés dans l'objet PShader textShader (pour en savoir plus, je vous invite à aller sur le site d'OpenClassrooms). C'est la fonction computeFinalBufferScreen qui prend en paramètre un film et qui renvoie une image, qui va s'occuper de la lecture ; puisqu'elle est appelée dans la boucle draw(), elle vérifie si l'image suivante est "disponible" avant de la lire. Un gros avantage ici : même si l'image est lue par le GPU, les musiques reste lues par le CPU grâce à l'objet Movie.

Définition de la fonction computeFinalBufferScreen qui prend en charge les images via le GPU
Consulter le code

INSTALLATION

Vidéo présentant l'installation Souvenirs d'eau

Lorsque nous avions fini notre installation, quelle surprise de constater ce qu'il y avait au plafond ! La projection se reflétait dans le lait et apparaissait de manière encore plus sensible ! Les turbulences que nous faisions dans le liquide étaient amplifiées dans la réflexion !

Photo présentant l'installation Souvenirs d'eau

CONCLUSION

Souvenirs d'eau est probablement un des travaux qui me marquera le plus. Nous avons appris à utiliser une technologie que nous ne maîtrisions pas, et sommes passés par des problématiques que nous n'aurions jamais imaginé rencontrer ! Ce fut dur, mais quel soulagement et quelle satisfaction lorsque nous avons vu le rendu graphique, très doux, qui correspondait à notre intention de départ ... (Sans parler du reflet au plafond !)

Maison des Arts de Créteil

La Maison des Arts de Créteil est aussi venue nous rendre une petite visite pour filmer nos installations ! Elles ont servies de teaser pour le festival EXIT qui avait lieu du 26 mars au 5 avril 2015. Tous nos travaux avaient été très appréciés et quel honneur de recevoir des compliments de la part de tels professionnels !

LE MOT DE LA FIN

Un peu nostalgique, mais qu'il est bon de se replonger dans ses souvenirs d'enfance !

REMERCIEMENTS

Merci aussi à Alexandre Rivaux qui m'a aidé sur Processing pour que mon code ne ralentisse pas et soit lu plus rapidement ! Et bien évidemment, merci à Justine d'avoir réussi à canaliser mes idées et à les recentrer ! (:

Attention : il se peut que le code ne fonctionne pas sur votre support ! Il est simplement mis à disposition afin que vous puissiez en comprendre la logique.

Souvenirs d'eau est la propriété de ses auteurs, et ne saurait être utilisé, reproduit, représenté, ou utilisé sans leur accords préalables et explicites.