Ne faites pas du cinéma une cinématique

Attention. Ceci est un billet d’humeur écrit à chaud suite au visionnage du film Avatar: La Voie de l’Eau de James Cameron. Il décrit l’un des problèmes du film. Cet article ne sera pas objectif !

Alors voilà. Après treize ans d’attente, la suite d’Avatar est arrivée dans nos salles obscures. Et en entrant dans la salle, j’étais heureux: un retour à Pandora était plus que bienvenue pour un fanatique d’images de synthèses.

J’avais de grande attentes avant le visionnage de ce film: (re)découvrir un monde dans lequel onirisme et réalisme se côtoient dans une ode à la nature. Le tout dans un projet qui veut bousculer à lui seul le monde du cinéma.

Il y a deux annonces précédant la sortie du film qui m’ont intrigué:

– Une ambition artistique possible grâce à la technologie
– L’amélioration de la technique

Et ces deux éléments sont pour moi le problème et la solution à l’équation Avatar.

Au delà de l’acteur, le comédien

L’idée de la motion capture est désormais actée de tous: permettre à n’importe qui d’incarner n’importe quel personnage de fiction. Et faire incarner une jeune fille par une actrice confirmée est pour moi un retour de l’art théâtrale au cinéma.

Faire incarner des aliens par des acteurs était une première étape ambitieuse, mais ici le film va plus loin en permettant à l’acteur de s’émanciper de son âge, et c’est du génie !

L’introduction d’un personnage adolescent joué par une actrice de soixante-et-onze ans au travers de l’actrice légendaire Sigourney Weaver permet donc d’entrevoir une nouvelle étape dans le processus de casting d’un film qui se concentre sur la performance tout en mêlant de nouvelles manière de jouer le personnage. L’expérience d’un acteur qui s’entrechoque avec l’innocence de son personnage est un premier pas vers un retour des Comédiens au grand écran.

sigourney weaver incarne une adolescente

J’espère donc pouvoir entrevoir un cinéma qui abandonne ses têtes d’affiches pour des comédiens dont le talent ne se résume pas au CV.

Mais cette promesse est, hélas, également le moyen de ramener à la vie des acteurs d’outre tombe dont le visage rassure les équipes marketing.

Il faut cependant noter que la technologie de la « Mocap » utilisée en tant que telle dans le cinéma vient une fois de plus briser la frontière fine mais coriace entre le jeu vidéo et le cinéma.

L’art ne cesse de challenger la technique

Comme je le dis souvent, la créativité né de la contrainte. Mais ces dernières années, le numérique a abolit cette dynamique.

Pour la réalisation de ce film, de nouvelles technologies de motion capture sont venues remplacer le matériel vieillissant du premier film. Désormais, le matériel de capture faciale réduit le besoin en animateur pour retoucher les performances des acteurs altérées par l’outil primitif de 2009. D’ailleurs, la volonté de réalisme de Cameron a poussé les équipes de R&D de Lightstorm et ses prestataires à développer de nouveaux outils de captations de mouvements sous-marins.

Mais outre la prouesse technique permettant d’améliorer le tournage, les outils de productions visuelles sont aussi passés à l’étape supérieur.

avatar la voie de l'eau et ses visuels photorealistes

Alors, outre les outils de rendus graphique perfectionnés, je pense qu’il est important de souligner que ce niveau de détail résulte à la fois de puissances de calculs grandissantes, mais aussi de l’augmentation du nombre de paramètres pour chacun des éléments graphiques du films. On imagine donc que le Pipeline derrière la production du film a du être conséquente au vu des enjeux titanesques du projets: data management au niveau production, pour l’animation, le lightning, la conception 3D (modeling, rigging, texturing, hair artists…), l’archivage au niveau du département artistique (concept arts, storyboard, montages previz…), et bien sûr les rendu et ses démons.

Et c’est ici que mon problème se pose.

Le cinéma est devenu cinématique

En décidant de faire de ce film une révolution du numérique, James Cameron a du faire des choix qui relèvent pour certains d’un avant-gardisme, et pour d’autres d’une grosse bêtise.

Avec le HFR (pour High Frame Rate), Cameron voulait rendre certaines séquences de son film plus impressionnante en démultipliant le nombre d’images diffusées en une seconde.
Au cinéma, la fréquence d’images est le plus souvent de vingt-quatre images par secondes. Le HFR veux bousculer cette tendance en doublant le nombre d’images (48 images par secondes).

Le HFR est née d’une volonté des développeurs de jeux vidéo en permettant au joueur de vivre l’aventure de son personnage avec une meilleure fréquence d’images: tuer des ennemis dans Doom devient plus joussif avec un gameplay frénétique qui profite pleinement de la cadence de productions d’images en temps réel des processeurs graphiques de votre ordinateur.

Et c’est pour cela que le HFR s’est ajoutée malgré lui dans la longue liste des innovations inutiles donc indispensables de l’Industrie du Cinéma.

Mais nous sommes en 2022, et le HFR accroit substantiellement le prix de la production d’un film.

Si on passe de 24 à 48 images par secondes d’un film, on double le nombre d’images. Et si on veut continuer d’exploiter le potentiel commercial de la 3D, on double une fois de plus le nombre d’images pour les deux yeux de notre spectateur.

Hélas, Cameron s’est décidé à faire varier la fréquence d’images durant le film: des séquences en 48 i/s sont entrecoupées de séquences en 24 i/s.

Et peu importe que cette décision est été motivée par des raisons d’économies ou une volonté de « déployer progressivement la technologie HFR », j’ai un problème.

Je dois avouer que je suis un gamer: j’aime jouer et parfois même créer des jeux vidéo. Et en tant que joueur, je n’aime pas voir mon jeu « lagger »: car cela entraine des baisses de la fréquence d’images (dit « framerate » en anglais).

Mais ce qui m’a conduit à être extirpé de l’intrigue fade et insipide du film est l’absence totale de motion blur dans les séquences en HFR. Car puisque le nombre de frames est doublée, il devient inutile de simuler l’effet de mouvement inhérent à notre capacité visuelle.

Et c’est pourquoi durant la projection de mon film en Dolby Vision j’ai eu l’impression de voir une cinématique douée d’un univers magnifique et sublimée par des effets visuels splendide, le tout dans une dynamique d’animation digne des meilleurs titres de Playstation 2.

Oups.

Alors voilà. Après le visionnage du film, une question se pose, une fois de plus: quelle est la place de la technologie au cinéma ?

Car après avoir rapatrié les savoirs-faire issus de l’animation, puis les talents du jeu vidéo, le cinéma se décide à prendre une direction qui me dérange.

Pour moi, le cinéma telle qu’il est présenté dans ce film est sur la frontière tenue entre le réalisme épatant et Uncanny Valley (en français « Vallée dérangeante » qui est une notion qui décrit la sensation de malaise provoquée par un personnage si réaliste que ses imperfections nous paraissent monstrueuses) issue malgré elle de la méthode de projection du film.

A mon humble avis, la technologie est ici utilisée pour une mauvaise raison: à savoir changer les méthodes de visionnage quitte à altérer l’oeuvre et son message.

Finalement, j’ai l’impression que les images photo-réalistes et les environnements sur-détaillés n’arrivent plus à satisfaire les ambitions de Cameron qui choisit ici l’ajout d’une technologie peu pertinente dans ses visions d’auteur. Peut-être pour rendre l’expérience en salle unique et la différencier de son re-visionnage sur petit-écran. N’était-ce pas l’objectif de la 3D ?

Mais personnellement, j’ai peur de préférer le framerate du prochain jeu Avatar à celui du film. J’espère que cela ne sera pas de même pour son scénario.

Oups.

Comment j’ai fait mon moteur de recherche web ?

Parmi mes projets personnels les plus fous se trouve une idée un peu farfelue.

Il y a quelques année de cela, durant l’année 2016, je me suis passionné pour une dimension très spécifique de l’informatique, à savoir l’accès à l’information.

Je me suis alors intéressé au fonctionnement de moteurs de recherche dédiés aux web. 

Alors si il existe plein de moteurs de recherche aujourd’hui, celui qui détient le monopole aux Etats-Unis et en Europe est bien évidemment Google. Egérie des Start-ups Garages et autres disrupteurs du dimanche, c’est aujourd’hui un portail rassemblant plus qu’un outil de recherche de page web, mais bien un assortiment de data-centers et de compétences permettant de dompter les flux de données à l’échelle mondiale.

Mais si nous revenons à la base du concept de moteur de recherche, c’est une tout autre idée bien que la vision reste la même.

Derrière un moteur de recherche tel qu’ils existaient dans la fin des années 90, il y a trois entités bien distinctes. Pour ce cas d’usage, je développerai le fonctionnement d’un moteur de recherche web très basique.

Le Crawler, l’explorateur du web

Tout d’abord, il y a le Crawler, aussi appelé Spider. C’est un logiciel qui se balade de page en page pour enregistrer l’ensemble des données associées. Il y lit le contenu, en déduit les mots clés associés, y recense l’ensemble des liens vers lesquels la page courante redirige.
Finalement, il fait exactement ce que son nom nous induit. On peut alors imaginer une petite araignée parcourant le web et traçant sa toile.
Chose important à noter: notre araignée robotisée, avant de pénétrer dans la page web, est tenu de lire un fichier robot.txt qui lui dit ou non si elle a le droit d’accéder ou d’enregistrer la page en question.

Une fois notre page web traitée, notre araignée poursuit son chemin en allant suivre les autres liens.

L’index: stocker l’information

Chaque page visitée par notre araignée est inscrite dans une base de donnée appelée l’index, qui regroupe l’ensemble des données relative à la page web.
Les pages sont recensées dans l’index et sont couplées à leurs indice de pertinence: le pagerank.

Le Pagerank: classer l’information

Par la suite, c’est au pagerank de récupérer ces données brutes et de noter la page web en conséquence.

Il va d’abord enregistrer sa pertinence en comptant le nombre de lien qui redirigent vers cette page. Puis, il lui donner un score arbitraire en fonction de la pertinence des pages de ces liens sources.

Aujourd’hui, il existe des normes dédiées au SEO (Search Engine Optimisation, ou Optimisation pour le référencement naturel), à l’accessibilité et aux standards. Par exemple, si votre site est doté d’une bannière en flash avec des polices de caractères clignotantes tout en omettant d’être lisible sur un téléphone, c’est compliqué de se frayer un chemin vers la première page de résultats.

Le Pageranker va également associer ces pages aux mots clé les plus pertinents.

Un champs de recherche cache parfois autre chose

Enfin, il y a le front, qui est le site web ou l’application permettant d’interroger notre index.

En 2016, je rêvais déjà de construire un petit moteur dédié à la recherche web. Hélas, il me manquait à ce moment quelques notions qui m’ont empêché de programmer l’outil de mes rêves.

A ce moment là, j’ai donc travaillé sur un méta-moteur de recherche !

Un méta-moteur de recherche, c’est un site ou une application qui (de base) n’a ni crawler, ni index. En effet, ce système se contente d’aller piocher chez la concurrence les résultats de recherche pour les ressortir sur une page avec un autre logo.

Du coup, à ce moment là, puisque je n’avais pas les compétences en programmation, j’ai décidé de travailler une autre partie tout aussi interessante: l’interface utilisateur.

Je me suis donc appliqué à repenser l’ensemble avec les moyens du bord.

L’idée derrière ce projet était alors d’imaginer une nouvelle forme d’expérience utilisateur axée sur l’idée de personnifier le logiciel.
Inspirée par les mascottes de Microsoft Word comme Clippy qui conseillait l’utilisateur sur son usage du traitement de texte, Toast était voué à servir de visage à l’éternelle page blanche ornée du champs de recherche qui fait la réputation de l’internet.

Au delà le l’interaction sommaire, le personnage servirait également de champs de recherche qui s’affiche au gré des requêtes de l’utilisateur.

Mon objectif dans la réalisation de ce projet était de moderniser la manière dont l’utilisateur interagit avec son outil. C’était alors l’époque où les applications permettant d’échanger avec la machine avec leurs voix. Après tout, la voix de Siri permet de donner une dimension palpable à l’outil qu’on utilise. Humaniser un logiciel permet à mon sens de capter une nouvelle audience en ajoutant une couche de simplification au dessus d’un outil déjà simplifié à l’extrême.

Avant cela, j’avais déjà travaillé sur une autre mouture de l’interface du moteur un peu plus proche de ce qui existait déjà.

Parcourir le web, un lien à la fois

Maintenant, parlons de mon projet qui remonte à deux ans (en 2020 donc). A cet instant, je m’intéresse beaucoup moins à l’interface utilisateur, mais bien à la technologie derrière les outils que j’utilise au quotidien.

J’ai le besoin de mieux comprendre comment faire tourner un vrai crawler.

Et pour cela, la première idée qui me vient à l’esprit est littéralement une boucle récursive: un moulin qui ne s’arrête jamais puisqu’il persiste à parcourir toutes les branches d’un arbre dont la hauteur n’est probablement pas un représentable par un nombre raisonnable.

Du coup, j’ai commencé à la dure ! Une boucle récursive est initialisée par un appel de l’utilisateur au format ligne de commande. Par la suite, une partie du code (au format Objet) se connecte à notre base de donnée pour être rappelée autant de fois que nécéssaire en écriture.
La boucle va ajouter ou modifier les valeurs dans notre base de donnée correspondant à la page web et dont la clé est pour le moment le lien hypertexte de notre page.

L’outil que j’ai développé est disponible sur xalt.fr !

Ce que j’en ai appris

Tout cela, en plus de me servir d’exercice, m’a permis d’entrevoir les limites des outils que j’utilisais alors, mais aussi les contraintes qui en découlent.

D’abord, le language JAVA est un langage séduisant et robuste, mais condamné à tourner sur une machine virtuelle appelée JVM (JAVA Virtual Machine). Cette dernière est une machine à gaz, opaque et dont on ne peut percevoir le fonctionnement de l’extérieur. En gros, c’est une boite noire qui n’est pas du tout optimisée pour mon idée, puisqu’à terme, je veux pouvoir faire des Threads de mes différents Crawlers pour faire tourner plusieurs araignées en parallèle. Ce qui fait que sur une machine donnée, je veux pouvoir avoir un maximum de threads qui tournent en parallèle, et qui soient orchestrés par un outil plus automatisable qu’un appel de commande.

Ensuite, il y a la base de données que j’utilisais: une base MySQL toute simple. Mais encore une fois, ce n’est pas ce que je veux pour manipuler de grandes quantités de données de manière plus souple, tout en imaginant un système de classification qui soit plus performant qu’un simple attribut. De plus, j’imagine que si une base MySQL est amplement suffisante pour faire tourner un site classique, ce n’est pas le meilleur outil pour l’application de mes rêves.

Je pense me tourner à terme vers une solution en C plus plus. Mais j’hésite encore, et comme je vois de nouveaux langages apparaître régulièrement, je pense avoir l’opportunité de découvrir de nouvelles manières de construire le moteur de recherche de mes rêves !

Conclusion

J’essaie de découvrir de nouvelles technologies à apprivoiser très régulièrement, et mes projets personnels sont pour moi l’un des meilleurs moyens de rester à la page.

Je trouve néanmoins que l’évolution de mon petit projet personnel m’encourage à en apprendre plus !