A quoi ça sert les mathématiques ? Florine, artiste numérique

“Mais à quoi ça sert, les mathématiques ?” Cruelle question !

Pour trouver des éléments de réponse à partager avec vos élèves, nous vous proposons un nouveau type d’interview à la rencontre de femmes et d’hommes qui utilisent les mathématiques dans leur quotidien. C’est l’occasion de vous faire découvrir ou redécouvrir des domaines fascinants qui seront peut-être source d’inspiration dans vos cours !

Florine ‘Flopine’ Fouquart est une artiste numérique qui termine l’écriture d’une thèse sur le code et les mathématiques dans l’art numérique. Que ce soit à travers sa passion pour le shader coding ou dans son métier de technical artist pour le jeu vidéo, elle donne vie aux mathématiques à travers des œuvres sublimes, surréalistes et parfois hypnotiques.

Merci à elle de s’être prêtée à l’entretien, et n’hésitez pas à aller voir ses oeuvres dont nous partageons ici quelques extraits !

Bonjour Florine, tu te définis comme artiste numérique, est-ce que tu pourrais nous parler de ton art et de l’importance des mathématiques dans celui-ci ?

Mon medium est une pratique qui s’appelle le shader coding. Le shader, c’est un programme, un morceau de code qui décrit généralement une matière. Au-delà du rendu d’un simple “matériau”, c’est même une étape qui va permettre de représenter de la 3D sur nos écrans 2D.

Il faut se représenter nos écrans comme des grillages de pixels géants. Le shader va donner une couleur à chaque pixel en fonction de sa position sur la grille… et c’est là que les mathématiques entrent en jeu !

Pour commencer, un pixel est localisé par un système de coordonnées donc il faut des connaissances mathématiques, bien sûr, liées à du code. Mais même pour définir quelque chose de simple, comme un cercle par exemple, il existe plusieurs méthodes : on peut utiliser son équation cartésienne, mais on peut aussi le définir en utilisant la norme d’un vecteur. Souvent, on a besoin de décrire des formes, et on passe bien sûr par les mathématiques.

formes

Mais on peut aller plus loin : par exemple, lorsque l’on s’intéresse à la réaction de la lumière sur une sphère en plastique. On va considérer la lumière comme un vecteur et opérer des calculs en utilisant la normale à la surface pour en déduire l’angle avec lequel la lumière est réfléchie. On appelle ça la spécularité et il s’agit d’un pur calcul mathématique à partir de vecteurs et de produit scalaire.

Pour reproduire, sur un ordinateur, la diffusion de la lumière ou sa réaction sur un matériau, on va utiliser des modèles inspirés de la physique et approximés par des équations mathématiques. L’équation de rendu, notamment, décrit mathématiquement, pour une lumière incidente, l’intensité lumineuse qui est réfléchie.

C’est un modèle précis, exact, on dit “non-biaisé”, mais si on veut faire ce calcul en prenant en compte toutes les lumières présentes dans une scène, cela peut s’avérer très long, même pour les ordinateurs actuels. On va donc créer des modèles qui vont utiliser partiellement cette équation de rendu ou utiliser des petites astuces pour limiter les calculs. L’objectif est de reproduire quelque chose de cohérent visuellement mais pas physiquement vrai.

Après, il existe aussi des moteurs de rendu, c’est-à-dire des algorithmes, qui font des calculs de lumière et de réflexion de lumière, et qui ont pour objectif de résoudre à 100% cette équation de rendu. Mais ces moteurs impliquent de lancer des rayons à l’infini… Les calculs peuvent donc eux aussi tourner à l’infini ! On peut laisser tourner ce type de moteur sur une machine pendant un an, deux ans, si la machine le supporte… Ou seulement vingt minutes pour une qualité différente. Ainsi, on voit parfois des grains lumineux sur une image. Quand le rendu est grainé, on l’appelle “noisy”, et c’est typique d’un modèle d’un moteur de rendu qui n’a pas calculé, “convergé”, assez longtemps.

Autre exemple : le ray tracing est une méthode qui est utilisée pour modéliser le trajet de la lumière et repérer quels polygones de la scène en 3D sont visibles sur l’écran 2D. Pour cela, on a besoin de connaître l’intersection entre l’œil virtuel et l’objet, mais aussi connaître les intersections des objets entre eux pour comprendre les effets d’ombrages. Tout cela demande de résoudre des équations. Un exemple très simple : pour trouver l’intersection entre une droite et une sphère, on résout une équation du second degré. Et notamment, pour calculer la quantité de lumière réfléchie sur un objet ou une surface, on a besoin de résoudre une intégrale.

Dans la plupart des moteurs de rendu, on utilise la méthode de Monte Carlo : lorsqu’un rayon de lumière touche une surface, le moteur va simuler une grande quantité de rayons réfléchis dans des directions aléatoires et répartis sur un hémisphère dont le centre est le point de contact. C’est en faisant la moyenne des directions de tous ces rayons que l’on calcule une solution approximative de l’intégrale.

Le shader coding ça donne une raison, une représentation visuelle aux mathématiques. Non seulement c’est une application des mathématiques dont tu visualises directement le résultat… mais en plus, c’est de l’art !

Tunnel

Tu fais des compétitions de shader coding, comment ça se déroule ?

Un shader showdown, c’est un tournoi : les participants ont 25 minutes pour coder à partir de rien un shader sur une machine, et tout ça en direct. Le code et sa représentation visuelle s’affichent sur des écrans géants pendant qu’un DJ s’occupe de la musique. C’est le public qui vote à la fin pour son shader préféré, et les participants évoluent de match en match, comme dans une compétition. Parfois le thème est imposé, parfois nous sommes complètement libres de nos créations.

Pour faire tout ça en live, ça demande de l’entraînement et des connaissances. Mais de la même manière qu’un peintre doit connaître des techniques, maîtriser ses couleurs, les propriétés des différents types de peinture qu’il emploie, et surtout s’entraîner pour devenir un maître de la peinture à l’huile, il faut de l’entraînement et creuser un peu l’aspect technique, mathématique, pour progresser en shader coding et faire ça en live devant un public, que ce soit dans le cadre d’un showdown ou d’un VJing (NdA : performance visuelle en temps réel, le VJ est l’équivalent visuel du DJ).

Flopine

Où trouves-tu l’inspiration pour tes shaders ?

Je m’inspire beaucoup d’artistes, pas forcément issus du creative coding, mais aussi de l’animation, de la peinture, … et aussi de la nature. Il y a des choses de la nature qui sont reproduisibles mathématiquement et donc dans un shader. Je recommande d’ailleurs l’excellent ouvrage de Daniel Shiffman, The nature of code, qui est fantastique pour celles et ceux qui sont intéressés par les mathématiques derrière la nature et de la possibilité de générer du code via le creative coding. Il tient aussi la chaîne YouTube “The coding train” qui est passionnante aussi et qui est le pendant vidéo du livre.

L’inspiration vient parfois aussi de la pure expérimentation mathématique et algorithmique. Je visualise parfois un peu moins le résultat, j’aime bien essayer et voir où ça va. Par exemple, si je sais faire un nœud torique dans un shader, je vais essayer, pourquoi pas, d’utiliser la forme du tore comme une courbe dans laquelle je vais faire bouger des objets, de manière à ce que mes objets s’entrecroisent. Mon inspiration, elle vient parfois de l’envie de combiner telle petite chose que je sais faire avec une autre, et de voir ce que ça donne. C’est ça que je trouve super avec le code créatif, c’est cette versatilité, cette potentialité incroyable qui provient de la combinaison de toutes petites techniques !

Tree

Tu es aussi technical artist dans une entreprise de jeux vidéos : en quoi cela consiste-t-il ?

Entre ma pratique artistique et mon métier de technical artist, il y a des liens qui s’auto alimentent parce que la profession de technical artist utilise aussi les mathématiques et c’est un métier qui existe surtout au sein des jeux vidéos.

Créer un jeu vidéo demande à la fois des capacités techniques et artistiques, et il est souvent nécessaire d’avoir un pont entre ces deux aspects pour mener à bien un projet. D’un point de vue technique, il faut connaître le fonctionnement d’un moteur graphique (NdA : ensembles des logiciels qui permettent la simulation d’un environnement 2D ou 3D). Côté graphique, on a besoin de produire des textures, des environnements, etc.

Concrètement, la définition du métier varie d’un studio à l’autre, mais chez DONTNOD Entertainment je produis des outils techniques qui vont aider les artistes dans leur travail tout en m’assurant que ces outils sont performants au sein du moteur graphique : cela peut aller de la simple automatisation des processus jusqu’à la création de modèles… de shaders ! Et c’est là que ça rejoint ma pratique artistique.

C’est d’ailleurs plutôt ma passion qui m’a menée vers ce métier que l’inverse.

Comment en es-tu arrivée à cette passion pour le shader coding ? Quel est ton parcours ?

Au lycée, j’aimais bien les mathématiques. J’ai fait un bac scientifique, spécialité mathématiques. Mon père est professeur de mathématiques ! C’était une matière qui me rassurait au collège et au lycée, parce que je pensais qu’en mathématiques, il n’y avait qu’une seule réponse possible… tout du moins, c’est ce que qu’on nous apprend ! On comprend par la suite que c’est plus complexe que ça mais bon, il y a eu un moment où je me suis désintéressée des réponses toutes faites et vers la fin du lycée, je me suis un peu éloignée des mathématiques. J’ai même envisagé une licence de philosophie !

Finalement, je suis partie en licence d’audiovisuel. J’avais déjà envie d’être dans l’image, dans l’infographie. Puis je suis allée en Arts et Technologie de l’Image (ATI) à Paris 8. J’y ai appris énormément de choses, comme de la modélisation 3D classique ou du code, notamment Python pour automatiser les processus et créer des petits outils pour être plus productif. J’ai aussi appris à coder en C# sur Unity, un moteur de rendu qui est utilisé dans le jeu vidéo.

J’ai fait un mémoire de M2 sur la réalité virtuelle nourrie par le surréalisme. Je m’y appuyais sur notre projet d’étudiant, un petit jeu en réalité virtuelle dans lequel il fallait retrouver son chat. Écrire ce mémoire m’a beaucoup plu, donc j’ai choisi d’aller en thèse… J’y suis encore ! Mais c’est à peu près à ce moment-là que j’ai rencontré une communauté qui s’appelle la demoscene, ou scène démo.

Psyché

Tu peux nous en dire plus sur la scène démo ?

La démo scène est une communauté qui date des années 80/90, ce qui correspond à peu près au début de la démocratisation de l’ordinateur. Cette communauté s’est d’abord organisée pour mettre à disposition des logiciels propriétaires : c’est le début du hack, du crack de logiciels. A l’époque, on pratiquait l’échange de disquettes de logiciels crackés, parfois organisés dans le cadre de “copy parties”. Souvent le groupe qui avait réussi à cracker tel ou tel logiciel mettait le nom du groupe dans le crack, sous forme graphique, pour faire connaître leur prouesse ! C’était aussi un challenge technique que d’ajouter son nom sous forme graphique, avec une police stylisée, dans le peu de place qu’il restait sur la disquette.

Et parmi cette communauté, certains ont voulu se concentrer sur la possibilité de faire de l’image sur différents supports informatiques avec de fortes contraintes techniques. C’est ça la demoscene. C’est une communauté qui fait de l’art avec la machine avec des contraintes importantes.

Et donc aujourd’hui il y a des demoparty, où règne cette volonté de se montrer les uns les autres ce qu’on sait faire sur un écran géant. Il y a des catégories, visuelles, musicales, des compétitions, mais c’est bon enfant.

Lorsque je suis allée à ma toute première demoparty, il y avait un shader showdown. Moi, je venais tout juste de faire mes études de 3D très classiques, et c’était fou : en dix minutes, je vois des codeurs capables de générer un tunnel infini avec plein d’animations dans tous les sens, des couleurs vibrantes, … À ce moment-là, je me suis dit : “Dans deux ans, c’est moi sur scène !”

J’ai appris… Et deux ans plus tard, j’y étais !

J’ai été aidée dans mon apprentissage par des personnes qui m’ont donné les bases mathématiques nécessaires à comprendre ce que je pouvais voir ou lire sur Internet. Et surtout, j’ai expérimenté. Aujourd’hui, j’en suis à 200 shaders !

Il y a des personnes qui font un travail incroyable pour partager leurs techniques, et qui font de la vulgarisation en mathématiques comme par exemple Freya Holmer.

NdA : Et non seulement Flopine a déjà participé à des compétitions… mais elle en a même gagné !

Trophées

Est-ce difficile de trouver sa place en tant que femme dans ce genre de milieu ?

Malheureusement, il y a des problèmes de sexisme dans la demoscene. Je pense à quelqu’un qui a quitté le milieu à cause de ce qu’elle y a vécu. J’ai aussi rencontré des femmes dont on mettait en doute les capacités seulement en raison de leur genre. C’est parfois pas évident de faire ses preuves. Certains oublient que la compétition peut être amusante et bon enfant !

Mais heureusement, il y a aussi une bonne partie de la communauté qui essaye de lutter contre cette tendance et qui fait preuve de bienveillance. D’ailleurs, on trouve beaucoup de personnes transgenres et non-binaires dans le milieu du code créatif, c’est très diversifié, et tant mieux !

Où peut-on admirer ton travail ?

Tous mes codes sont accessibles sur shadertoy, une plate-forme d’échange de shaders. On y voit le code et le résultat en même temps. Tout est en creative common donc on peut récupérer les codes d’autres gens, les modifier pour apprendre, etc.

J’ai aussi une chaîne Twitch. J’ai commencé par y proposer des sessions de shader coding en anglais. Je démarrais de rien, je faisais une œuvre en live en expliquant mon code, et tout ça en anglais. Aujourd’hui j’y partage surtout des choses liées à l’écriture de ma thèse et en français mais je vais revenir aux cours de shader pour débutants. A une époque, je faisais une session par semaine, pour me forcer à faire au moins un shader par semaine et avancer dans ma thèse. Comparativement à Youtube où il y a beaucoup de travail d’édition, le streaming est vraiment idéal, ne serait-ce que pour pouvoir échanger en direct et répondre aux questions des spectateurs.

Twitch