Attracteurs étranges (Strange Attractors)
(blog.shashanktomar.com)- Projet de visualisation des attracteurs étranges (Strange Attractors) avec Three.js, montrant comment des équations mathématiques simples peuvent générer des motifs complexes et magnifiques
- Présente les concepts de base des systèmes dynamiques (Dynamical Systems) et de la théorie du chaos (Chaos Theory), en se concentrant sur l’état d’un système qui évolue dans le temps et sur les règles qui déterminent cette évolution
- Les attracteurs étranges sont définis par quatre caractéristiques : structure fractale, sensibilité aux conditions initiales, trajectoires apériodiques et ordre au sein du chaos
- Illustre l’effet papillon avec une visualisation du Thomas Attractor, en montrant comment de minuscules variations du paramètre
aproduisent des motifs totalement différents - Met en œuvre une visualisation en temps réel en calculant et en rendant efficacement des milliers de particules grâce à la technique GPU de ping-pong rendering
Systèmes dynamiques et théorie du chaos
-
Un système dynamique est une manière de modéliser mathématiquement des phénomènes qui évoluent dans le temps, avec des exemples variés comme le mouvement des planètes, la croissance démographique ou le marché boursier
- Il se compose de l’espace des phases (Phase Space), qui représente tous les états possibles du système, et de la dynamique (Dynamics), qui fait passer d’un état au suivant
- Par exemple, dans un modèle de croissance démographique, la taille de la population et son taux de croissance constituent l’état dans l’espace des phases, tandis que le taux de natalité, le taux de mortalité et la capacité de charge de l’environnement déterminent la dynamique
-
La théorie du chaos (Chaos Theory) est le domaine qui étudie les systèmes imprévisibles, et de nombreux phénomènes naturels relèvent de ces systèmes non linéaires et sensibles
- Elle explique des phénomènes où des règles existent, mais où la prédiction devient impossible à cause d’informations incomplètes
- L’effet papillon, où une petite différence dans les conditions initiales modifie fortement le résultat, en est une caractéristique emblématique
Attracteur (Attractor) et attracteur étrange (Strange Attractor)
-
Un attracteur (Attractor) est un ensemble d’états vers lequel un système converge au fil du temps, comme par exemple le point d’arrêt d’un pendule
- La convergence vers un attracteur s’explique par des facteurs comme la stabilité, la dissipation d’énergie (Dissipation) ou la contraction (Contraction)
-
Un attracteur étrange (Strange Attractor) est un attracteur dont les trajectoires deviennent imprévisibles à cause d’équations non linéaires complexes, avec les caractéristiques suivantes
- Structure fractale : des motifs complexes qui se répètent à différentes échelles
- Sensibilité aux conditions initiales : de petites variations conduisent à des résultats totalement différents
- Trajectoires apériodiques : elles ne répètent pas exactement le même chemin
- Ordre dans le chaos : l’ensemble peut sembler aléatoire, mais une structure interne subsiste
Effet papillon et visualisation du Thomas Attractor
- L’effet papillon désigne le phénomène par lequel un petit changement produit à long terme une grande différence, souvent illustré par la métaphore selon laquelle « le battement d’ailes d’un papillon en Chine provoque un ouragan dans les Caraïbes »
- Lorsque la valeur du paramètre
adu Thomas Attractor est modifiée à 0.10, 0.13, 0.19 ou 0.21, les trajectoires des particules et la forme globale changent complètement - Si l’état initial passe de
cubeàsphere surface, les particules suivent des chemins différents, mais convergent finalement vers le même état attracteur
Détails d’implémentation
- La visualisation utilise Three.js pour calculer et rendre directement sur le GPU un grand nombre de particules
- La technique de ping-pong rendering minimise les transferts de données entre CPU et GPU en alternant deux framebuffer objects (FBO)
- Les buffers
pingetpongstockent respectivement l’état courant et l’état suivant - Le programme de shader met à jour la position de chaque particule en fonction des équations de l’attracteur
- À chaque frame, les buffers sont échangés pour rendre le nouvel état des particules
- Les buffers
Références et ressources supplémentaires
- Les ressources citées incluent notamment la visualisation d’attracteurs de Maxim, Wikipedia: Attractor, List of Chaotic Maps et WebGLFundamentals: Ping Pong Rendering
- D’autres exemples de visualisations 3D d’attracteurs sont présentés sur chaoticatmospheres.com, dynamicmath.xyz et Reddit r/generative
- L’auteur recueille des retours via la page GitHub Discussion du blog et prévoit une intégration au blog à l’avenir
1 commentaires
Avis Hacker News
Ce type de visualisation d’espace des phases en 3D montre bien à quel point on peut extraire beaucoup d’informations
Mais en même temps, cela fait aussi sentir toute la richesse qui nous échappe dans les mondes à plus de trois dimensions
Je me demande s’il serait possible de visualiser du 4D et au-delà en regardant des coupes 3D, ou en suivant des particules lagrangiennes et en représentant en couleur les variations de la valeur D
Ce genre de visualisation rappelle les débuts de la mécanique statistique, quand Boltzmann et Gibbs débattaient de l’espace des phases et de la notion d’équilibre
On peut s’en approcher par le raisonnement ou une compréhension partielle, mais on ne peut pas les appréhender pleinement
En réalité, je pense même que la pensée en 3D est déjà une grande capacité adaptative accordée aux humains par rapport aux autres animaux
Vraiment superbe ! Ce serait bien d’avoir une fonction permettant d’ajuster les valeurs de a et b pour trouver ses propres motifs d’attracteur étrange (strange attractor)
Un mode libre serait amusant aussi
Sur mobile, elle est dans la barre de menu du bas, et sur desktop elle est visible immédiatement
À l’adolescence, il y a environ 25 ans, j’avais moi-même créé un visualiseur d’attracteurs chaotiques en 2D
Puis je me suis soudain demandé : « et si, au lieu de le visualiser, je le rendais en son ? »
J’ai fait correspondre la fréquence à l’angle et l’amplitude à la magnitude, et c’est en manipulant directement le format WAV que j’ai découvert pour la première fois la notion d’endianness
Le résultat n’était pas totalement inaudible, et ça ressemblait un peu aux effets sonores d’ordinateur dans les vieux films de SF
Par exemple Hypster by Nonlinear Circuits et Orbit 3 by Joranalogue, qui ajoutent au son des mouvements imprévisibles mais périodiques, ce qui est très amusant
Au lycée, quasiment à l’ère jurassique, je jouais souvent avec les attracteurs
À l’époque, sur un 486, il fallait 20 à 30 minutes pour en dessiner un seul, donc c’est impressionnant qu’on puisse aujourd’hui faire du rendu 3D en temps réel
Ce genre d’expérience a eu une grande influence sur ma pensée systémique, autour des orbites, de l’instabilité et de ce genre de notions
https://fractint.org/
Cette visualisation me fait penser à Phong
https://phong.com/
Cette semaine justement, j’ai ressorti un projet de générateur de fractales que j’avais réalisé en terminale en 2002, puis je l’ai modernisé avec la bibliothèque graphique SFML
https://github.com/gradientwolf/fractals_SFML
Voir ce billet me fait vraiment plaisir. Ce genre de petit projet me ramène à cette époque simple et pure de la curiosité adolescente
À propos de la phrase « je ne sais pas si c’est une extension mathématiquement exacte », en réalité il n’existe pas une seule bonne réponse pour une extension vers des dimensions supérieures
Il peut y en avoir plusieurs, ou même aucune
Cela dit, la tentative elle-même, dès lors qu’elle est « suffisamment proche », est intéressante
Par exemple, quand on regarde les tentatives de création d’un Mandelbrot 3D, il n’existe pas de solution parfaite, mais il y a des possibilités très intéressantes
C’est vraiment magnifique. On dirait presque le ballet d’un vol d’étourneaux
https://www.youtube.com/watch?v=V4f_1_r80RY
La façon d’expliquer la théorie mathématique est très intuitive et rafraîchissante
Ce serait vraiment intéressant si l’auteur écrivait aussi sur d’autres sujets
Cette visualisation me rappelle le module "strange" de xscreensaver