digitart-asso.

Réaction-diffusion : dans les coulisses du code organique

Technologies Créatives. Réaction-diffusion : dans les coulisses du code organique

Il y a cette scène qui se répète dans chaque exposition consacrée à l’art génératif: un visiteur s’arrête devant un écran où des motifs pulsent, s’étirent, se fragmentent — taches de léopard, réseaux…

Réaction-diffusion: dans les coulisses du code organique

Il y a cette scène qui se répète dans chaque exposition consacrée à l’art génératif: un visiteur s’arrête devant un écran où des motifs pulsent, s’étirent, se fragmentent — taches de léopard, réseaux labyrinthiques, structures coralloïdes — et pose la question qui revient invariablement. Comment un ordinateur peut-il produire quelque chose qui ressemble à de la vie? La réponse tient en deux mots presque trop modestes pour décrire ce qu’ils engendrent: réaction-diffusion. Derrière cette appellation de manuel de chimie se cache l’un des mécanismes les plus fascinants du code créatif contemporain, un système capable de simuler la morphogenèse — c’est-à-dire la naissance des formes biologiques — à partir de règles mathématiques d’une sobriété déconcertante.

C’est précisément cette sobriété qui nous intéresse ici: comprendre comment des équations différentielles couplées, appliquées à une grille de pixels, peuvent faire apparaître les taches d’un poisson-globe, les rayures d’un zèbre ou les ramifications d’un corail, et comment les artistes computationnels se sont emparés de ces modèles pour créer des œuvres où le code ne se contente pas de calculer — il fait émerger.

De la biologie théorique à l’algorithme: l’héritage d’Alan Turing

Tout commence, comme souvent dans l’histoire des idées, par une intuition formulée bien avant que les machines soient capables de la mettre en œuvre. En 1952, le mathématicien britannique Alan Turing — celui-là même qui avait déjà tant fait pour théoriser le calcul — publie un article fondateur dans les Philosophical Transactions of the Royal Society of London, intitulé The Chemical Basis of Morphogenesis. Sa proposition est audacieuse: les motifs réguliers que nous observons dans le monde vivant — les rayures, les taches, certaines organisations de pétales ou de structures cellulaires — pourraient résulter de l’interaction entre des substances chimiques qui réagissent et diffusent simultanément dans un milieu spatial.

Ce que Turing formalise, c’est le principe d’un système activateur-inhibiteur. L’activateur renforce localement sa propre présence ou celle du processus qui le produit. L’inhibiteur, lui, limite cette activation et se propage sur une distance plus grande. La portée respective de ces deux effets est essentielle: une activation locale peut faire naître un îlot, tandis qu’une inhibition plus lointaine empêche les îlots voisins de fusionner partout. Le motif ne vient donc pas d’un dessin préalable, mais d’un déséquilibre spatial entre deux dynamiques.

Cette précision est importante, car la version intuitive souvent donnée de la réaction-diffusion inverse facilement les rôles. Le mécanisme classique n’est pas celui d’un activateur qui se diffuserait rapidement et d’un inhibiteur confiné au voisinage immédiat. C’est au contraire la combinaison d’une activation locale et d’une inhibition à plus longue portée qui permet l’apparition de structures séparées, de bandes ou de réseaux.

Dans le modèle original, il ne s’agit pas encore de reproduire fidèlement une espèce animale particulière. Turing propose plutôt un cadre général pour expliquer comment une perturbation minuscule peut être amplifiée et organisée dans l’espace. Un état initial presque homogène devient instable: certaines zones se renforcent, leurs voisines sont freinées, puis un motif se stabilise ou continue d’évoluer selon les paramètres du système.

L’article de Turing reste largement théorique à l’époque. Les ordinateurs n’en sont qu’à leurs débuts et aucune simulation numérique ne peut encore illustrer concrètement ces motifs avec la souplesse que nous connaissons aujourd’hui. Pourtant, l’idée est plantée. Il faudra attendre plusieurs décennies pour que ce modèle soit repris, adapté et finalement incarné dans des systèmes informatiques accessibles. De la biologie, on passe au code; du code, on passe à l’image; et de l’image, à une nouvelle manière de penser l’autonomie de la forme.

Ce qui frappe, quand on relit l’article de 1952 avec le recul, c’est la portée de cette abstraction. Turing ne décrit pas seulement une réaction chimique particulière. Il propose un principe de formation des formes, applicable à toute situation où des agents interagissent dans l’espace et où la diffusion ne produit pas simplement un lissage uniforme. C’est précisément cette ouverture qui a séduit des générations de chercheurs, de biologistes et, surtout pour nous, de créateurs numériques.

Le modèle de Gray-Scott: décryptage des équations de la morphogenèse

Si Turing a posé les fondations théoriques, le modèle de Gray-Scott leur a donné une forme computationnelle directement exploitable. Développé par les chercheurs Peter Gray et Stephen Scott, ce système chimique se distingue par son élégance mathématique et par la variété des motifs qu’il peut produire à partir d’un petit nombre de règles.

Le modèle repose sur deux équations différentielles aux dérivées partielles décrivant l’évolution de deux concentrations, conventionnellement nommées A et B, sur une grille spatiale. Dans une écriture courante, on obtient:

  • dA/dt = D_A · ∇²A − A·B² + F·(1 − A)
  • dB/dt = D_B · ∇²B + A·B² − (F + k)·B

La première équation suit A, une substance alimentée en continu par le milieu. A diffuse, est consommée par la réaction avec B et revient dans le système à un taux défini par F, le taux d’alimentation (feed rate). La seconde suit B, produit de la réaction: B est créé par l’interaction non linéaire entre A et B, diffuse dans l’espace, puis disparaît selon les taux F et k, ce dernier correspondant au taux d’élimination (kill rate).

Il faut éviter de plaquer trop directement sur Gray-Scott le schéma verbal d’un activateur et d’un inhibiteur. Dans la description canonique de Turing, l’activateur s’amplifie localement et l’inhibiteur agit sur une portée plus grande. Dans Gray-Scott, B est une espèce autocatalytique: le terme A·B² signifie que la présence de B favorise la production de B à partir de A. A n’est donc pas simplement un inhibiteur qui se propagerait rapidement; c’est aussi le substrat alimentant la réaction. La dynamique activatrice-inhibitrice apparaît ici à travers l’ensemble du système: autocatalyse, consommation, alimentation, élimination et diffusion différentielle.

Le laplacien discret, noté ∇², représente la diffusion. Sur une grille bidimensionnelle, on l’approxime souvent avec un noyau de voisinage, par exemple une convolution 3×3. À chaque cellule, le calcul mesure l’écart entre la concentration locale et celles des cellules voisines. Une valeur positive ou négative indique alors dans quelle direction la matière tend à se redistribuer. Le système ne déplace pas des pixels comme des objets; il met à jour des champs continus échantillonnés par une grille.

Les termes en A·B² modélisent la réaction proprement dite. Leur non-linéarité est la condition de l’émergence de motifs complexes: si chaque composant se contentait de se diffuser ou de décroître selon une règle linéaire, le résultat tendrait vers un lissage beaucoup plus prévisible. Les paramètres F et k jouent, eux, le rôle de commandes globales. Ils ne changent pas la forme générale des équations, mais modifient radicalement le régime dans lequel le système évolue.

La beauté du modèle de Gray-Scott tient dans ce paradoxe: des équations d’une sobriété mathématique absolue engendrent une diversité visuelle qui rivalise avec la complexité du vivant.

La richesse du modèle vient aussi de son caractère temporel. Une image fixe peut être extraite de la simulation, mais elle n’est jamais qu’un état particulier du processus. Les taches peuvent se diviser, se rapprocher, disparaître ou se transformer en filaments. L’image garde la mémoire des étapes précédentes, notamment lorsque la simulation est initialisée à partir d’une petite perturbation au sein d’un champ uniforme.

Pour un artiste, cette dimension est décisive. Le résultat n’est pas une texture choisie dans une bibliothèque ni une forme dessinée point par point. C’est l’empreinte d’une histoire de calcul. Modifier le point de départ, la taille de la grille, le pas de temps ou la manière d’interpréter les concentrations suffit à produire une autre trajectoire. Le modèle devient ainsi un instrument de composition plutôt qu’un simple générateur d’effets.

Paramétrage et esthétique: jouer sur les taux d’alimentation et d’élimination

C’est ici que la science cède la place à la sensibilité artistique. Dans le modèle de Gray-Scott, les deux paramètres principaux — le taux d’alimentation F et le taux d’élimination k — dessinent un espace d’exploration esthétique d’une richesse insoupçonnée. En faisant varier ces deux valeurs dans un intervalle relativement restreint, on passe d’un motif à un autre de manière parfois graduelle, parfois très brusque.

Le taux d’alimentation F contrôle la vitesse à laquelle A revient dans le système. Le taux d’élimination k agit sur la disparition de B. Leur combinaison modifie l’équilibre entre naissance, propagation et extinction des structures. Les valeurs souvent utilisées en art génératif se situent dans de petites plages décimales, mais il serait trompeur de considérer ces plages comme une carte universelle: le motif dépend aussi de la résolution, de la diffusion, des conditions initiales, du nombre d’itérations et de la méthode d’intégration.

Le rapport de diffusion D_A/D_B est lui aussi un paramètre important. Un rapport de 2:1, par exemple avec D_A = 1,0 et D_B = 0,5, constitue un choix courant dans certaines implémentations. Mais il ne garantit pas à lui seul la stabilité d’un motif. Celle-ci dépend de l’ensemble des taux F et k, du rapport entre le pas spatial et le pas temporel, de l’état initial et de la précision numérique du calcul. Deux simulations utilisant le même rapport de diffusion peuvent diverger visuellement si elles ne partagent pas les mêmes autres paramètres.

Une lecture possible de l’espace paramétrique ressemble à ceci:

Zone relative de l’espace (F, k)Tendance observéeCaractère visuel
F faible, k faibleTaches ou îlotsPoints séparés, pigmentation irrégulière
F faible, k intermédiaireRayures et labyrinthesRéseaux entrelacés, bandes sinueuses
F modéré, k plus élevéDivision et recompositionTaches qui se scindent ou se réorganisent
F élevé, k faibleRamificationsStructures coralliennes, branches et filaments
F élevé, k élevéRégimes plus dissipatifsOndulations, fronts mobiles ou motifs qui s’effacent

Cette table ne doit pas être lue comme un catalogue de résultats garantis. Les frontières entre les régimes ne sont pas des lignes fixes: elles se déplacent avec la résolution de la grille, la taille du voisinage et les conditions de départ. C’est justement ce qui rend l’exploration intéressante. Le même couple de valeurs peut produire une famille de formes très différente selon que l’on part d’une tache centrale, d’un bruit léger ou d’un état déjà développé.

Ce qui est remarquable, c’est la nature souvent discrète des transitions. On ne passe pas toujours progressivement des spots aux rayures comme on tourne un curseur. Certaines zones de l’espace des paramètres correspondent à des basculements de régime: le motif se fragmente, se resserre, se met à pulser ou se transforme en réseau. Pour un artiste, ces frontières deviennent des territoires privilégiés. Les formes hybrides, instables ou incomplètement définies y sont parfois plus intéressantes que les configurations parfaitement reconnaissables.

Pour un créateur travaillant avec p5.js, Processing ou une implémentation WebGL, le paramétrage est souvent itératif. On déplace F ou k, on laisse la simulation avancer, puis on observe non seulement l’image obtenue mais aussi la manière dont elle y arrive. Un motif très spectaculaire après quelques dizaines d’itérations peut s’effondrer ensuite; un autre, discret au départ, finit par révéler une structure beaucoup plus riche.

Il est utile de noter que les paramètres n’agissent jamais isolément. Une variation minime de k peut avoir un effet très différent selon la valeur de F. Le même raisonnement vaut pour la diffusion et la résolution. À mesure que la grille devient plus fine, les structures peuvent se multiplier sans nécessairement gagner en lisibilité. La réaction-diffusion n’est donc pas une machine à produire automatiquement du détail. Elle demande une véritable direction artistique: choisir une échelle, une durée, une palette, un mode de projection et un moment d’arrêt.

Dans une installation interactive, le public peut influencer F ou k en temps réel. Mais là encore, l’interactivité ne consiste pas simplement à relier un curseur à une couleur. Le geste devient intéressant lorsqu’il agit sur la dynamique elle-même: une présence devant l’écran peut accélérer l’alimentation, un mouvement peut injecter une perturbation locale, un son peut modifier la vitesse d’élimination. Le visiteur ne choisit pas directement la forme; il intervient dans les conditions qui la rendent possible.

Au-delà du simple motif: l’approche multi-échelle de Jonathan McCabe

Le modèle de Gray-Scott, aussi riche soit-il, génère souvent des motifs autour d’une échelle spatiale dominante. Les taches, les rayures ou les ramifications ont tendance à présenter une taille caractéristique relativement homogène sur l’ensemble de la grille. Or, dans le monde vivant, les structures pigmentaires sont rarement monolithiques. Elles imbriquent des motifs de tailles différentes et produisent une profondeur visuelle qui ne tient pas à un seul niveau de détail.

C’est le constat qui a nourri le travail de l’artiste génératif Jonathan McCabe avec ses motifs de Turing multi-échelle (Multi-Scale Turing Patterns). Son approche consiste à combiner plusieurs systèmes de réaction-diffusion fonctionnant à des résolutions différentes, puis à intégrer ces couches dans une composition commune. Une simulation peut faire apparaître de grandes masses, une autre des textures plus fines, tandis qu’une troisième introduit des variations intermédiaires.

Le motif final ne correspond donc plus à la sortie d’un système unique. Il résulte d’une superposition, d’un mélange ou d’une modulation entre plusieurs processus. Les couches peuvent être additionnées, multipliées, utilisées comme masques ou transformées avant leur combinaison. La couleur n’est plus nécessairement une simple traduction de la concentration de B: elle peut dépendre du rapport entre les couches, de leur vitesse d’évolution ou de leur distance à un seuil.

Ce qui distingue cette approche, c’est la manière dont elle pense la spatialisation. La grille n’est pas seulement un support où une réaction se déroule. Elle devient le lieu de rencontre de plusieurs dynamiques, chacune possédant sa propre granularité. Une couche lente donne une architecture générale; une couche plus rapide apporte des accidents et des textures; une autre peut perturber les deux précédentes sans les effacer.

Les contraintes de symétrie — rotationnelle ou axiale, par exemple — ajoutent une structure globale qui guide l’émergence sans la déterminer complètement. Elles peuvent être appliquées à l’initialisation, aux coordonnées ou au mélange des sorties. Le système conserve alors une part d’imprévisibilité, mais celle-ci s’inscrit dans une composition plus lisible.

En superposant plusieurs systèmes à des résolutions différentes, on ne multiplie pas simplement la complexité: on révèle une profondeur organique que le modèle unique laisse dans l’ombre.

L’influence de McCabe sur la communauté du code créatif tient à cette idée simple et féconde: la complexité visuelle vient souvent moins de règles individuelles sophistiquées que de l’interaction entre des règles simples opérant à des échelles différentes. Un motif pauvre observé seul peut devenir une texture remarquable lorsqu’il sert de fond à une autre simulation. À l’inverse, trop de couches peuvent produire une image saturée, où aucune dynamique n’est encore perceptible.

La multi-échelle impose donc ses propres choix de composition. Il faut décider quelle couche domine, laquelle reste à la limite de la perception et laquelle ne doit apparaître que par intermittence. Il faut aussi gérer les écarts de fréquence: si toutes les couches évoluent à la même vitesse, la superposition peut sembler uniforme; si elles avancent selon des rythmes différents, des configurations inédites apparaissent par battements successifs.

Cette logique trouve un écho particulier dans les œuvres destinées à la réalité augmentée. Une couche peut être visible dans l’image principale, tandis qu’une autre ne se révèle qu’à travers un filtre, un déplacement du téléphone ou une interaction avec l’espace. La réaction-diffusion devient alors une matière située: elle ne forme pas seulement une image, elle organise une relation entre surface, profondeur et mouvement.

Défis techniques: implémenter la simulation en temps réel via les shaders

Passer de la théorie du modèle de Gray-Scott à une simulation exécutable en temps réel dans un navigateur est un défi technique qui mérite qu’on s’y arrête. Le cœur du problème est simple à formuler: à chaque pas de simulation, il faut calculer le laplacien de chaque cellule, lire les concentrations voisines, appliquer les termes de réaction, puis écrire les nouvelles valeurs de A et de B.

Sur une grille de 512 × 512 cellules, cela représente plus de 260 000 cellules à traiter à chaque itération. Si plusieurs itérations sont nécessaires entre deux images affichées, la charge augmente très vite. Une implémentation naïve en JavaScript, avec des boucles imbriquées et des tableaux ordinaires, peut devenir insuffisante dès que la résolution ou le nombre de mises à jour augmente.

Les accélérateurs matériels et les textures flottantes permettent de conserver une meilleure précision que des textures limitées aux entiers sur huit bits. Selon l’environnement WebGL et le matériel utilisé, la disponibilité de certaines extensions doit toutefois être vérifiée. Il ne suffit pas de demander une texture flottante: il faut aussi s’assurer que le format peut être lu, écrit et filtré dans le contexte choisi.

L’alternative la plus efficace consiste à implémenter le calcul dans des shaders GLSL. Chaque invocation du fragment shader traite une position de la grille, lit les valeurs de ses voisines dans une texture et écrit la concentration mise à jour dans une autre. Le processeur graphique effectue ainsi un grand nombre de calculs en parallèle, ce qui correspond particulièrement bien à la structure locale de la réaction-diffusion.

L’implémentation la plus courante repose sur une technique de double tampon, ou ping-pong. Deux textures contiennent les états successifs de la simulation. Pendant qu’un shader lit la texture source, il écrit le résultat dans la texture de destination. Au pas suivant, les deux rôles sont inversés. Cette séparation est indispensable: lire et écrire dans la même texture pendant le calcul créerait des dépendances imprévisibles entre les cellules déjà mises à jour et celles qui ne le sont pas encore.

Mais le passage au GPU ne règle pas tout. Trois difficultés reviennent régulièrement.

1. La stabilité numérique. Le modèle de Gray-Scott est sensible aux conditions initiales et aux paramètres. Un pas de temps trop grand ou un schéma d’intégration trop grossier peut faire diverger la simulation: les concentrations sortent de la plage attendue, des valeurs négatives apparaissent ou le motif se transforme en bruit. L’intégration d’Euler explicite est simple à mettre en œuvre, mais elle impose un choix prudent du pas de temps. Réduire ce pas ou employer une méthode plus robuste peut améliorer la stabilité, au prix d’un plus grand nombre de calculs.

2. La gestion des frontières. Les conditions aux limites influencent fortement le motif final. Avec des frontières périodiques, une cellule située au bord peut considérer comme voisines les cellules du bord opposé: la grille se comporte alors comme une surface refermée sur elle-même. Des conditions de Neumann cherchent plutôt à limiter le flux à la frontière, tandis que d’autres choix peuvent maintenir une concentration imposée. Une œuvre dont le motif doit se prolonger sans rupture n’aura pas les mêmes besoins qu’une image destinée à rester contenue dans un cadre.

3. La précision des données. Une simulation peut sembler correcte avec une texture de faible précision, puis révéler des artefacts lorsque les paramètres s’approchent d’une zone de transition. Les erreurs d’arrondi s’accumulent au fil des itérations. Il faut surveiller les valeurs produites par le shader, les bornes de concentration et le comportement des conversions lors de l’affichage. La texture qui sert au calcul n’a pas nécessairement besoin d’être la même que celle qui sert à colorer l’image.

Un quatrième enjeu est moins mathématique que visuel: le rythme de la simulation. Une œuvre peut calculer plusieurs pas internes entre deux images affichées, ou au contraire ralentir volontairement l’évolution. Dans le premier cas, les motifs paraissent plus fluides mais risquent de sauter des états intéressants. Dans le second, chaque transformation devient lisible, au prix d’une sensation plus contemplative. Le temps de calcul et le temps perçu ne sont pas obligés de coïncider.

La coloration mérite également une attention particulière. Afficher directement A ou B en niveaux de gris est utile pour observer la dynamique, mais rarement suffisant pour une œuvre finale. On peut utiliser une palette indexée, interpoler entre plusieurs teintes ou convertir la concentration en luminosité, saturation et contraste. Les seuils de couleur doivent rester cohérents avec la dynamique: une palette trop agressive peut donner l’impression que le motif change de nature alors que seule sa concentration varie légèrement.

Dans une pratique de code créatif, il est souvent préférable de séparer clairement trois étapes: la simulation, l’interprétation et la composition. La simulation calcule les champs A et B. L’interprétation transforme ces champs en valeurs visuelles. La composition ajoute les couches, les transformations, les effets de caméra ou les éléments d’interface. Cette séparation facilite les expérimentations sans obliger à modifier le cœur mathématique à chaque changement esthétique.

Elle permet aussi de conserver une forme de lisibilité dans l’œuvre. Le spectateur n’a pas besoin de connaître les équations pour percevoir qu’un motif est en train de se former, mais cette perception dépend de la cohérence du mouvement. Une image qui scintille à cause d’un problème numérique ne produit pas la même impression qu’une structure qui se divise et se réorganise selon une dynamique maîtrisée.

Une esthétique de l’émergence

La réaction-diffusion intéresse autant les artistes parce qu’elle déplace le geste de création. Au lieu de fabriquer directement une forme, on définit les conditions dans lesquelles une forme peut apparaître. Le contrôle ne disparaît pas; il change de niveau. Il ne porte plus seulement sur le contour ou la couleur, mais sur les règles, les échelles, les perturbations et le temps laissé au système.

Cette position est particulièrement féconde pour l’art numérique et la réalité augmentée. Une forme générée par réaction-diffusion peut être recalculée à chaque session, réagir à un environnement ou se transformer selon la position du spectateur. Elle peut rester identique dans sa logique tout en étant différente dans son état. L’œuvre n’est plus uniquement une image enregistrée: c’est un comportement rendu visible.

Il faut toutefois résister à la tentation de présenter ces simulations comme une reproduction automatique du vivant. Elles ne recréent pas une cellule, un tissu ou une peau animale dans toute leur complexité. Elles en extraient certains principes — la diffusion, l’amplification locale, l’inhibition, la compétition spatiale — puis les déplacent vers un contexte artistique. La ressemblance avec le biologique vient moins d’une copie fidèle que d’une parenté de comportement.

C’est pourquoi le modèle reste intéressant même lorsque le résultat ne ressemble plus à une tache ou à un corail. En modifiant la palette, la géométrie de la grille, les échelles ou la relation entre plusieurs couches, on obtient des topographies, des cartes abstraites, des textures minérales ou des paysages impossibles. Le code organique ne désigne pas un style visuel unique. Il désigne une manière de laisser les formes se construire.

La réaction-diffusion n’est donc pas une recette permettant d’obtenir instantanément une image naturelle. C’est un espace de négociation entre intention et autonomie. L’artiste choisit les conditions, observe les bifurcations, conserve certains états et élimine les autres. La machine ne remplace pas la composition: elle en déplace le terrain.

Dans cette tension se trouve sa force. Quelques équations suffisent à produire des formes qui semblent vivantes, mais aucune équation ne décide seule de ce qui mérite d’être montré. Entre l’algorithme et l’œuvre, il reste le choix d’une échelle, d’un rythme, d’une couleur, d’une frontière et d’un moment d’arrêt. C’est là, dans cet écart entre le calcul et le regard, que la réaction-diffusion devient véritablement une matière artistique.

Questions fréquentes

Qu'est-ce que le mécanisme de réaction-diffusion ?
Il s'agit d'un système où des substances chimiques réagissent et diffusent simultanément dans un espace, créant des motifs réguliers par un déséquilibre spatial entre une activation locale et une inhibition à plus longue portée.
Quel est le rôle des paramètres F et k dans le modèle de Gray-Scott ?
Le paramètre F représente le taux d'alimentation en substance A, tandis que k correspond au taux d'élimination de la substance B. Leur combinaison modifie l'équilibre entre la naissance, la propagation et l'extinction des structures visuelles.
Pourquoi utilise-t-on des shaders pour ces simulations ?
Les shaders permettent d'exploiter la puissance de calcul parallèle du processeur graphique (GPU) pour traiter simultanément des centaines de milliers de cellules, ce qui est nécessaire pour une simulation fluide en temps réel.
Qu'est-ce que la technique du double tampon (ping-pong) ?
C'est une méthode consistant à utiliser deux textures pour stocker les états successifs de la simulation. Pendant qu'un shader lit la texture source, il écrit le résultat dans la texture de destination, évitant ainsi des dépendances imprévisibles lors du calcul.
Comment obtenir des motifs plus complexes que de simples taches ?
L'approche multi-échelle, popularisée par Jonathan McCabe, consiste à superposer plusieurs systèmes de réaction-diffusion fonctionnant à des résolutions différentes pour créer une profondeur visuelle plus organique.