2 points par GN⁺ 2025-11-01 | 1 commentaires | Partager sur WhatsApp
  • 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 a produisent 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

    1. Structure fractale : des motifs complexes qui se répètent à différentes échelles
    2. Sensibilité aux conditions initiales : de petites variations conduisent à des résultats totalement différents
    3. Trajectoires apériodiques : elles ne répètent pas exactement le même chemin
    4. 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 a du 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 ping et pong stockent 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

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

 
GN⁺ 2025-11-01
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

    • Après avoir vu des œuvres comme Flatland ou 4D Toys, j’en ai conclu que les circuits neuronaux humains ne sont tout simplement pas conçus pour comprendre intuitivement plus de trois dimensions
      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

    • C’est l’auteur. Cette fonction est déjà incluse
      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

  • 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

  • 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