Seltsame Attraktoren (Strange Attractors)
(blog.shashanktomar.com)- Ein Projekt, das seltsame Attraktoren (Strange Attractors) mit Three.js visualisiert und zeigt, wie aus einfachen mathematischen Gleichungen komplexe und schöne Muster entstehen
- Es erklärt die Grundkonzepte von dynamischen Systemen (Dynamical Systems) und Chaostheorie (Chaos Theory) und ist um die Zustände eines Systems, die sich im Zeitverlauf ändern, sowie die Regeln aufgebaut, die ihre Entwicklung bestimmen
- Seltsame Attraktoren werden durch vier Merkmale definiert: Fraktalstruktur, Sensitivität gegenüber Anfangsbedingungen, aperiodische Bahnen und Ordnung im Chaos
- Der Schmetterlingseffekt wird anhand einer Visualisierung des Thomas-Attraktors gezeigt, wobei veranschaulicht wird, wie eine minimale Änderung des Parameters
avöllig andere Muster erzeugt - Durch den Einsatz der GPU-basierten Technik des Ping-Pong-Renderings werden Tausende von Partikeln effizient berechnet und gerendert, wodurch eine Echtzeitvisualisierung möglich wird
Dynamische Systeme und Chaostheorie
-
Ein dynamisches System ist eine mathematische Methode zur Modellierung von Phänomenen, die sich im Laufe der Zeit verändern, darunter Beispiele wie Planetenbewegungen, Bevölkerungswachstum und Aktienmärkte
- Es besteht aus dem Phasenraum (Phase Space), der alle möglichen Zustände des Systems beschreibt, und der Dynamik (Dynamics), die einen Zustand in den nächsten überführt
- Im Modell des Bevölkerungswachstums bilden zum Beispiel Bevölkerungsgröße und Wachstumsrate die Zustände im Phasenraum, während Geburtenrate, Sterberate und Umweltkapazität die Dynamik bestimmen
-
Die Chaostheorie (Chaos Theory) ist ein Forschungsgebiet zu unvorhersehbaren Systemen; viele Phänomene in der Natur gehören zu solchen nichtlinearen und sensitiven Systemen
- Sie erklärt Situationen, in denen zwar Regeln existieren, Vorhersagen aber wegen unvollständiger Informationen unmöglich werden
- Ein typisches Merkmal ist der Schmetterlingseffekt, bei dem kleine Unterschiede in den Anfangsbedingungen zu stark abweichenden Ergebnissen führen
Attraktor und seltsamer Attraktor
-
Ein Attraktor (Attractor) ist eine Menge von Zuständen, gegen die ein System im Laufe der Zeit konvergiert; ein Beispiel ist die Ruhelage eines Pendels
- Die Konvergenz zu einem Attraktor entsteht durch Faktoren wie Stabilität, Energiedissipation (Dissipation) und Kontraktion (Contraction)
-
Ein seltsamer Attraktor (Strange Attractor) ist ein Attraktor, der aufgrund komplexer nichtlinearer Gleichungen unvorhersehbare Bahnen zeigt, und hat folgende Eigenschaften
- Fraktalstruktur: komplexe Muster, die sich auf verschiedenen Skalen wiederholen
- Sensitivität gegenüber Anfangsbedingungen: kleine Änderungen führen zu völlig anderen Ergebnissen
- Aperiodische Bahnen: derselbe Pfad wird nicht wiederholt
- Ordnung im Chaos: wirkt zufällig, enthält aber eine innere Struktur
Schmetterlingseffekt und Visualisierung des Thomas-Attraktors
- Der Schmetterlingseffekt bezeichnet ein Phänomen, bei dem kleine Veränderungen langfristig große Unterschiede verursachen; oft erklärt mit der Metapher, dass „der Flügelschlag eines Schmetterlings in China einen Hurrikan in der Karibik auslöst“
- Wenn der Parameterwert
ades Thomas-Attraktors auf 0.10, 0.13, 0.19, 0.21 usw. geändert wird, verändern sich die Partikelbahnen und die Gesamtform vollständig - Werden die Anfangszustände auf
cubeundsphere surfacegeändert, folgen die Partikel unterschiedlichen Pfaden, konvergieren am Ende jedoch auf denselben Attraktorzustand
Implementierungsdetails
- Die Visualisierung verwendet Three.js, um zahlreiche Partikel direkt auf der GPU zu berechnen und zu rendern
- Mit der Technik des Ping-Pong-Renderings wird der Datentransfer zwischen CPU und GPU minimiert, indem zwei Framebuffer-Objekte (FBOs) abwechselnd verwendet werden
- Die Puffer
pingundpongspeichern jeweils den aktuellen und den nächsten Zustand - Ein Shader-Programm aktualisiert die Position jedes Partikels entsprechend den Attraktor-Gleichungen
- In jedem Frame werden die Puffer vertauscht und der neue Partikelzustand gerendert
- Die Puffer
Referenzen und weitere Materialien
- Als verwandte Materialien werden Maxims Attraktor-Visualisierung, Wikipedia: Attractor, List of Chaotic Maps und WebGLFundamentals: Ping Pong Rendering angeführt
- Weitere Beispiele für 3D-Attraktorvisualisierungen werden auf chaoticatmospheres.com, dynamicmath.xyz und Reddit r/generative gezeigt
- Auf der GitHub-Discussion-Seite des Blogs wird Feedback gesammelt; eine Integration in den Blog ist künftig geplant
1 Kommentare
Hacker-News-Kommentare
Solche 3D-Visualisierungen von Phasenräumen zeigen sehr gut, wie viele Informationen wir daraus gewinnen können
Gleichzeitig bekommt man aber auch ein Gefühl dafür, wie viel Reichtum uns in Welten mit mehr als drei Dimensionen entgeht
Ich frage mich, ob man mehr als 4D visualisieren könnte, etwa indem man 3D-Schnitte betrachtet oder Lagrange-Partikeln folgt und Änderungen des D-Werts farblich darstellt
Solche Visualisierungen erinnern an die Frühzeit der statistischen Mechanik, als Boltzmann und Gibbs über Phasenraum und das Gleichgewichtskonzept stritten
Wir können uns dem über Schlussfolgerungen oder ein teilweises Verständnis nähern, aber es nie vollständig graspen
Eigentlich halte ich selbst räumliches 3D-Denken für eine große adaptive Fähigkeit, die Menschen im Vergleich zu anderen Tieren mitbekommen haben
Wirklich großartig! Es wäre schön, wenn man die Werte a und b anpassen und eigene Strange-Attractor-Muster finden könnte
Eine Art freier Modus wäre sicher auch interessant
Auf Mobilgeräten im unteren Menü, auf dem Desktop sofort sichtbar
Als Teenager habe ich vor ungefähr 25 Jahren selbst einen 2D-Chaos-Attractor-Visualizer gebaut
Dann kam mir plötzlich der Gedanke: Was wäre, wenn man das nicht visualisiert, sondern als Klang rendert?
Ich habe Frequenz dem Winkel und Amplitude der Größe zugeordnet und beim direkten Umgang mit dem WAV-Format zum ersten Mal das Konzept der Endianness gelernt
Das Ergebnis war nicht völlig unhörbar und klang ein wenig wie Computer-Soundeffekte aus alten Sci-Fi-Filmen
Zum Beispiel Hypster by Nonlinear Circuits und Orbit 3 by Joranalogue, die mit unvorhersehbaren, aber periodischen Bewegungen dem Klang etwas sehr Spielerisches hinzufügen
In der Highschool, also praktisch noch im Jurazeitalter, habe ich oft mit Attraktoren herumgespielt
Auf einem 486er dauerte das Zeichnen eines einzelnen Bildes damals 20 bis 30 Minuten, und es ist beeindruckend, dass heute 3D-Rendering in Echtzeit möglich ist
Solche Erfahrungen haben mein systemisches Denken über Bahnen, Instabilität und Ähnliches stark geprägt
https://fractint.org/
Diese Visualisierung erinnert mich an Phong
https://phong.com/
Zufällig habe ich diese Woche ein Fraktalgenerator-Projekt hervorgeholt, das ich 2002 in der 11. Klasse gebaut hatte, und es mit der SFML-Grafikbibliothek modernisiert
https://github.com/gradientwolf/fractals_SFML
Dieser Beitrag macht mich wirklich froh. Solche kleinen Projekte versetzen mich zurück in die Zeit der einfachen, reinen Neugier meiner Jugend
Zu der Aussage „Ich weiß nicht, ob das eine mathematisch exakte Erweiterung ist“: Tatsächlich gibt es bei Erweiterungen in höhere Dimensionen nicht die eine richtige Antwort
Vieles ist möglich, oder vielleicht auch gar nichts
Trotzdem ist schon der Versuch einer „hinreichend guten Annäherung“ interessant
Wenn man sich zum Beispiel die Versuche anschaut, ein 3D-Mandelbrot zu erzeugen, gibt es keine perfekte Lösung, aber sehr interessante Möglichkeiten
Wirklich wunderschön. Es ist, als würde man dem Schwarmtanz von Staren zusehen
https://www.youtube.com/watch?v=V4f_1_r80RY
Die Art, wie die mathematische Theorie erklärt wurde, ist sehr intuitiv und erfrischend
Es wäre wirklich spannend, wenn auch über andere Themen geschrieben würde
Diese Visualisierung erinnert mich an das „strange“-Modul von xscreensaver