Exploration des champs d'écoulement de bruit

Essayez de régler les paramètres vous-même : : : :

Champ de flux de bruit : comme si un vent invisible soufflait sur la toile

Imaginez une toile entièrement vierge. Nous y plaçons des milliers de minuscules particules et leur donnons pour instruction : « Avancez. »

Cependant, nous n'indiquons pas à chaque particule une destination précise. C'est parce qu'un « vent » invisible parcourt la toile. Ce vent peut souffler vers la gauche à un endroit et vers la droite à un autre. Un peu plus loin, il peut s'incurver. Par endroits, il tourbillonne en formant un vortex ; ailleurs, il s'écoule comme une rivière ; ou encore, il change progressivement de direction.

Les particules ne peuvent pas voir cette « carte des vents ». Elles se contentent de suivre la direction du vent là où elles se trouvent. À mesure que ces milliers de particules se déplacent, elles laissent derrière elles des traînées fines et délicates.

Peu à peu, un motif complexe se dessine. Il peut évoquer 🌬️ le vent, 🌊 l'eau en mouvement, ☁️ la fumée, 🪶 des plumes ou 🧵 de la soie, voire une force invisible traversant l'espace. C'est ce qu'on appelle un champ de flux de bruit.

Imaginez une « carte des vents »

La façon la plus simple de comprendre un champ de vecteurs de bruit n'est pas de commencer par des formules. Imaginez plutôt une carte des vents.

Supposons qu'il y ait du vent sur toute la surface de la zone de dessin. Ici : → → → le vent souffle vers la droite. Déplaçons-nous un peu : ↗ ↗ ↗ le vent commence à souffler vers le haut et la droite. Plus loin encore : ↑ ↑ ↑ le vent change de direction pour souffler vers le haut. Puis : ↖ ↖ ↖ il commence à tourner à nouveau. Si nous remplissons toute la zone de flèches de ce type, nous obtenons un champ de vecteurs (ou champ d'écoulement) : une carte indiquant la direction du flux en tout point de la zone. Dans un tel champ, les particules n'ont qu'à « suivre le vent ».

Plaçons maintenant une petite particule dans ce champ. Elle arrive à un endroit où la direction du vent est ↗ ; elle se déplace donc vers le haut et la droite. À l'étape suivante, elle atteint une nouvelle position où le vent souffle désormais vers la droite (→) ; elle se déplace alors vers la droite. L'étape d'après : ↘, elle commence donc à descendre vers la droite. Remarque : la particule elle-même ignore à quoi ressemble la carte dans son ensemble. Elle n'a même pas besoin de se demander « Où vais-je ? ». Elle doit simplement se poser la question : « Je suis ici en ce moment ; dans quelle direction souffle le vent ? » et ensuite : le suivre.

S'il n'y a qu'une seule particule, rien de bien particulier ne se produit. Elle se déplace, tourne, se déplace à nouveau, puis tourne encore.

Mais si nous introduisons 100 particules, les choses deviennent intéressantes.

Avec 1 000 particules, les trajectoires commencent à s'entremêler.

Avec 10 000 particules, un motif fluide et complet finit par émerger.

Le plus étonnant : nous n'avons pas tracé les lignes, et pourtant elles semblent si naturelles

En voyant le motif final, vous pourriez vous demander : « Des mathématiciens ont-ils tracé ces courbes directement ? » La réponse est non ; nous n'avons même pas donné l'instruction de « tracer une ligne courbe ici ». Nous avons simplement défini où les particules devaient aller et les avons laissées se déplacer d'elles-mêmes. À mesure qu'elles se déplacent, les particules laissent des traces derrière elles. La superposition de nombreuses traces de particules crée le motif final.

Ainsi, un champ de flux basé sur le bruit (noise flow field) ne consiste pas à tracer directement des lignes de flux ; il permet au flux lui-même de générer ces lignes.

Alors, pourquoi le résultat semble-t-il si naturel ?

Si nous devions déterminer la direction de manière aléatoire à chaque position, nous pourrions obtenir quelque chose comme : ↗ ← ↓ → ↖ ↑ ← ↘. Sans motif discernable, le mouvement des particules serait chaotique, rappelant la « neige » (le fourmillement) d'un vieux téléviseur. Cependant, le « bruit » utilisé dans un champ de flux basé sur le bruit n'est pas simplement une série de nombres aléatoires totalement indépendants ; c'est un type de bruit caractérisé par une continuité et des variations fluides. L'une des implémentations les plus courantes est le bruit de Perlin. Le bruit de Perlin génère des valeurs qui évoluent en douceur entre des positions adjacentes, ce qui le rend idéal pour construire des champs de flux continus.

Cela signifie que si la direction à un point donné est « vers la droite », le point adjacent sera également orienté, en gros, « vers la droite ». Le point suivant pourrait dévier légèrement vers le « haut-droite », et plus loin, la direction continue de pivoter progressivement. Cela évite les changements brusques, comme passer de « droite » à un endroit à « bas » juste après. Au lieu de cela, la direction change par incréments — → → ↗ ↗ ↑ ↖ ↖ ← — permettant aux particules de tourner en douceur. C'est pourquoi les champs de flux basés sur le bruit créent souvent un rendu si naturel et organique.

Qu'est-ce que le « bruit » exactement ?

À ce stade, vous pourriez vous demander : « Mais cela semble si régulier... pourquoi l'appelle-t-on du bruit ? »

Le « bruit » dont il est question ici ne doit pas être perçu comme un chaos totalement aléatoire. Le bruit de Perlin s'apparente davantage à une variation fluide, continue, mais aléatoire. Par exemple : 0,41, 0,43, 0,45, 0,48, 0,52, 0,55... Les valeurs changent, mais sans effectuer de sauts brusques ou radicaux comme 0,42 → 0,97 → 0,03 → 0,81.

Il n'est donc ni totalement régulier ni totalement chaotique ; il se situe précisément entre ordre et hasard. C'est précisément pour cette raison qu'il est idéal pour générer des visuels d'aspect naturel. L'un des objectifs de conception du bruit de Perlin est de produire des variations numériques plus continues et plus naturelles que celles obtenues avec des nombres aléatoires classiques.

C'est ainsi que nous avons transformé le bruit en « vent ».

Le bruit en lui-même ne se compose que de valeurs numériques, mais nous pouvons convertir ces valeurs en angles. Par exemple : une valeur de bruit à un endroit précis → convertie en angle → donne une direction → devient une flèche → s'intègre dans un champ de flux. Lorsque ce calcul est appliqué à l'ensemble de la zone de dessin, la progression devient : bruit → direction → champ de flux → particules → trajectoires → champ de flux basé sur le bruit.

Récapitulatif du processus

Assemblons les différentes étapes du processus :

Étape 1 : Générer un champ de bruit aux variations fluides.

Étape 2 : Convertir ce bruit en vecteurs directionnels.

Étape 3 : Ces vecteurs forment un champ de flux invisible.

Étape 4 : Placer un grand nombre de particules sur la zone de dessin superposée au champ de flux.

Étape 5 : Chaque particule interroge en continu la direction du champ de flux à sa position actuelle.

Étape 6 : Les particules se déplacent selon la direction indiquée par le champ de flux.

Étape 7 : Les particules laissent des traînées derrière elles.

Enfin, un motif fluide basé sur le champ de flux généré par le bruit apparaît.

Pourquoi cela ressemble-t-il parfois à de l'eau et d'autres fois à de la fumée ?

Cela s'explique par le fait que les champs de flux peuvent varier en termes d'échelle et de comportement. Si le champ de flux évolue très lentement, la direction reste relativement constante sur de vastes zones, amenant les particules à former des flux larges et fluides. Si le champ de flux présente des variations plus fines, le mouvement des particules devient plus complexe, pouvant créer des volutes élaborées et des motifs entrelacés. Ainsi, il suffit d'ajuster quelques paramètres pour qu'un même système produise des effets visuels radicalement différents.

Un paramètre crucial est l'échelle du bruit — ou la finesse de la turbulence — que l'on peut grossièrement définir comme « l'intensité des variations du vent ». Si l'échelle est grande, la direction du vent change lentement et les particules peuvent former 🌊 de vastes lignes de courant. Si l'échelle est petite, la direction du vent varie plus finement et les particules peuvent créer 🌀 des textures plus complexes et denses.

Une autre question intéressante se pose : le vent lui-même peut-il se déplacer ? Absolument. Si l'on étend le bruit au-delà des dimensions horizontales et verticales pour y inclure une dimension temporelle, la direction du vent en un point donné peut varier légèrement d'un instant à l'autre. Par conséquent, l'ensemble du champ de flux commence à se déplacer lentement ; à mesure que les particules continuent leur course, le « vent » qui les influence évolue également. Le résultat n'est plus une image statique, mais un monde qui respire, s'écoule et évolue en permanence.

Ce que vous voyez, c'est du « vent », et pourtant il n'y a pas de vent

Si nous n'affichions que les particules elles-mêmes, vous ne verriez qu'une multitude de minuscules points. Toutefois, l'image change radicalement lorsque chaque particule laisse une traînée derrière elle. Une particule (●) se déplace (——) en poursuivant sa trajectoire. Peu à peu, une ligne de courant complète se dessine. L'entrelacement des lignes de courant formées par une multitude de particules crée le champ d'écoulement complexe que nous observons. Ainsi, l'attrait esthétique final naît de la combinaison du mouvement des particules et de l'accumulation des traînées.

Il n'y a ni vent, ni eau, ni fumée, ni même de particules physiques réelles dans l'image ; tout résulte de calculs mathématiques.

Pourtant, lorsqu'un grand nombre de particules se déplacent selon un champ directionnel aux variations fluides, nos yeux interprètent naturellement ce motif comme un écoulement. De cette manière, les mathématiques se transforment en mouvement, le mouvement en traînées, les traînées en images, et ces images évoquent le monde naturel.

En quoi les champs de vecteurs basés sur le bruit diffèrent-ils des attracteurs ?

Si vous avez déjà exploré les attracteurs mathématiques, un champ de vecteurs basé sur le bruit (ou « noise flow field ») offre une expérience très différente.

Par exemple, l'attracteur de De Jong se concentre sur un point unique calculé de manière itérative à partir d'une formule de récurrence.

L'attracteur d'Ikeda s'articule autour de la rétroaction entre rotation, mise à l'échelle et position.

L'attracteur de Lorenz met l'accent sur les systèmes dynamiques tridimensionnels et le chaos.

À l'inverse, un champ de vecteurs basé sur le bruit ne cherche pas à déterminer vers quel point une particule finit par converger ; il met plutôt en évidence la manière dont une multitude de particules se déplacent le long d'un « champ de flux invisible », s'apparentant ainsi davantage à une carte des vents mathématique.

Ces champs de vecteurs ne nécessitent pas nécessairement de notion d'« attraction ». Alors que les attracteurs soulignent généralement la formation d'une structure stable après une longue évolution du système, un champ de vecteurs basé sur le bruit peut ne pas avoir de telle « destination ». Les particules peuvent simplement avancer et réapparaître après avoir atteint une limite, ou de nouvelles particules peuvent être générées en continu. Le champ de vecteurs lui-même peut même évoluer au fil du temps. Il convient donc de le considérer comme un système d'art génératif piloté par un champ de vecteurs plutôt que comme un « attracteur » au sens strict.

Une carte invisible

Pour résumer le concept de champ de flux basé sur le bruit (noise flow field) de la manière la plus simple possible, imaginez la situation suivante : une carte invisible est tracée sur une toile. Chaque point de cette carte comporte une flèche. Ces flèches ne sont pas disposées au hasard ; elles s'incurvent progressivement et se rejoignent pour former un flux continu. Ensuite, nous introduisons des milliers de particules. Ces particules ignorent tout de la carte ; elles ne connaissent que deux choses : « Où suis-je en ce moment ? » et « Dans quelle direction souffle le vent ici ? » Elles se mettent alors en mouvement, laissant des traînées dans leur sillage. Au final, les trajectoires suivies par ces particules révèlent cette carte invisible.

Ce que vous voyez n'est pas simplement une image statique, mais les traces laissées par le mouvement. Sans le déplacement des particules, il n'y aurait pas de traînées. Sans champ de flux, les particules ne sauraient pas où aller. Sans le « bruit », il n'y aurait pas ces changements de direction fluides et naturels. Lorsque ces éléments s'associent — bruit → direction → champ de flux → particules → traînées → champ de flux basé sur le bruit — un « champ de vent mathématique » invisible devient enfin visible à nos yeux.

Continuez à explorer l'univers des attracteurs

Tout comme les attracteurs, les champs de vecteurs basés sur le bruit illustrent un concept fascinant : des règles simples peuvent engendrer des univers visuels complexes.

Si vous aimez créer des textures abstraites en jouant sur les paramètres, vous pourriez explorer l'attracteur de De Jong et celui de Clifford.

Si les notions de rotation, de rétroaction et de chaos vous intéressent, essayez d'explorer l'attracteur d'Ikeda.

Si vous préférez les mouvements singuliers dans l'espace 3D, vous pouvez expérimenter avec les attracteurs d'Aizawa et de Lorenz.

Les champs de vecteurs basés sur le bruit offrent une expérience différente : au lieu d'attendre qu'un point unique atteigne sa destination, vous observez des milliers de points s'écouler ensemble le long d'une carte invisible.

Vous ne pouvez voir ni le vent, ni le champ de vecteurs, ni même les règles mathématiques qui les régissent ; vous ne voyez que les trajectoires qu'ils dessinent. Au final, ces chemins se combinent pour former une peinture mathématique en mouvement.

Vous pouvez également découvrir d'autres motifs mathématiques fascinants ou en apprendre davantage sur le bruit sur Wikipédia.

Envie de voir ces superbes visuels mathématiques à chaque ouverture d'un nouvel onglet ? Installez l'extension Chrome dès maintenant et définissez « Boîte à Surprises Mathématiques » comme page de nouvel onglet.🚀

En savoir plus