Tuhaf Çekiciler (Strange Attractors)
(blog.shashanktomar.com)- Three.js kullanarak Tuhaf Çekiciler (Strange Attractors) görselleştiren bir proje; basit matematik denklemlerinden karmaşık ve güzel desenlerin nasıl üretildiğini gösteriyor
- Dinamik sistemler (Dynamical Systems) ve kaos teorisinin (Chaos Theory) temel kavramlarını açıklıyor; zaman içinde değişen sistem durumlarına ve bu evrimi belirleyen kurallara odaklanıyor
- Tuhaf çekiciler, fraktal yapı, başlangıç koşullarına duyarlılık, periyodik olmayan yörüngeler ve kaos içindeki düzen olmak üzere dört özellikle tanımlanıyor
- Kelebek etkisi, Thomas Attractor görselleştirmesiyle gösteriliyor;
aparametresindeki küçük değişimlerin tamamen farklı desenler oluşturduğu sunuluyor - GPU tabanlı ping-pong rendering tekniği kullanılarak binlerce parçacık verimli biçimde hesaplanıp render ediliyor ve böylece gerçek zamanlı görselleştirme sağlanıyor
Dinamik Sistemler ve Kaos Teorisi
-
Dinamik sistemler, zamanla değişen olguları matematiksel olarak modelleme yöntemidir; gezegen hareketleri, nüfus artışı ve borsa gibi çeşitli örnekleri kapsar
- Sistemin tüm olası durumlarını gösteren faz uzayı (Phase Space) ile bir durumu bir sonrakine taşıyan dinamikler (Dynamics) bileşenlerinden oluşur
- Örneğin nüfus artışı modelinde nüfus büyüklüğü ve büyüme oranı faz uzayındaki durumu oluştururken, doğum oranı, ölüm oranı ve çevresel taşıma kapasitesi dinamikleri belirler
-
Kaos teorisi (Chaos Theory), öngörülemez sistemleri inceleyen alandır; doğadaki birçok olgu bu tür doğrusal olmayan ve hassas sistemlere girer
- Kurallar vardır, ancak eksik bilgi nedeniyle tahmin yapılamaz hale gelen durumları açıklar
- Başlangıç koşullarındaki küçük farkların sonucu büyük ölçüde değiştirdiği kelebek etkisi, bunun en tipik özelliğidir
Çekici (Attractor) ve Tuhaf Çekici (Strange Attractor)
-
Çekici (Attractor), sistemin zaman içinde yakınsadığı durumlar kümesidir; örneğin bir sarkacın durma noktası buna karşılık gelir
- Bir çekiciye yakınsama, kararlılık, enerji dağılımı (Dissipation) ve büzülme (Contraction) gibi etkenlerle ortaya çıkar
-
Tuhaf çekici (Strange Attractor), karmaşık doğrusal olmayan denklemler nedeniyle öngörülemez yörüngeler gösteren çekicidir ve şu özelliklere sahiptir
- Fraktal yapı: Farklı ölçeklerde tekrar eden karmaşık desenler
- Başlangıç koşullarına duyarlılık: Küçük değişimler tamamen farklı sonuçlara yol açar
- Periyodik olmayan yörüngeler: Aynı yolu tekrar etmez
- Kaos içindeki düzen: Rastgele görünse de içinde belirli bir yapı barındırır
Kelebek Etkisi ve Thomas Attractor Görselleştirmesi
- Kelebek etkisi, küçük bir değişimin uzun vadede büyük farklar yaratmasıdır; “Çin'de bir kelebeğin kanat çırpması Karayipler'de bir kasırgayı başlatır” benzetmesiyle açıklanır
- Thomas Attractor için
aparametresi 0.10, 0.13, 0.19 ve 0.21 gibi değerlere değiştirildiğinde, parçacık yörüngeleri ve genel biçim tamamen farklı hale gelir - Başlangıç durumu
cubevesphere surfaceolarak değiştirildiğinde parçacıklar farklı yollar izler, ancak sonunda aynı çekici durumuna yakınsar
Uygulama Ayrıntıları
- Görselleştirme, çok sayıdaki parçacığı doğrudan GPU üzerinde hesaplayıp render etmek için Three.js kullanıyor
- Ping-pong rendering tekniği sayesinde CPU ile GPU arasındaki veri aktarımı en aza indiriliyor ve iki frame buffer object (FBO) dönüşümlü kullanılıyor
pingvepongtamponları sırasıyla mevcut durumu ve sonraki durumu saklıyor- Shader programı, her parçacığın konumunu çekici denklemlerine göre güncelliyor
- Her karede tamponlar değiştirilerek yeni parçacık durumu render ediliyor
Referanslar ve Ek Kaynaklar
- İlgili kaynaklar arasında Maxim'in Attractor görselleştirmesi, Wikipedia: Attractor, List of Chaotic Maps ve WebGLFundamentals: Ping Pong Rendering yer alıyor
- Ek örnekler olarak chaoticatmospheres.com, dynamicmath.xyz ve Reddit r/generative üzerinde 3D çekici görselleştirmeleri sunuluyor
- Blogun GitHub Discussion sayfasında geri bildirim toplanıyor ve gelecekte blogla bütünleştirilmesi planlanıyor
1 yorum
Hacker News görüşleri
Bu tür 3D faz uzayı görselleştirmeleri, ne kadar çok bilgi elde edebildiğimizi çok iyi gösteriyor
Ama aynı zamanda 3 boyutun ötesindeki dünyalarda ne kadar fazla zenginliği kaçırdığımızı da hissettiriyor
3D kesitlere bakarak ya da Lagrangian parçacıkları takip edip D değerindeki değişimi renkle göstererek 4D ve ötesini görselleştirmenin mümkün olup olmadığını merak ediyorum
Bu tür görselleştirmeler, istatistiksel mekaniğin ilk dönemlerinde Boltzmann ve Gibbs gibilerinin faz uzayı ve denge kavramı üzerine tartıştığı zamanları hatırlatıyor
Buna akıl yürütme ya da kısmi anlayışla yaklaşabiliyoruz, ama tamamen kavrayamıyoruz
Aslında 3D düşünmenin kendisinin bile diğer hayvanlara kıyasla insana verilmiş büyük bir uyumsal yetenek olduğunu düşünüyorum
Gerçekten harika! a ve b değerlerini ayarlayarak herkesin kendi garip çekici (strange attractor) desenlerini bulabildiği bir özellik olsa güzel olurdu
Serbest mod gibi bir şey de olsa eğlenceli olabilir
Mobilde alt menü çubuğunda, masaüstünde ise doğrudan göze çarpıyor
Gençliğimde, yaklaşık 25 yıl önce, 2D bir kaotik çekici görselleştiricisini kendim yapmıştım
Sonra bir anda “bunu görselleştirme yerine ses olarak render etsem nasıl olur?” diye düşündüm
Frekansı açıya, genliği büyüklüğe eşleştirdim ve WAV formatını doğrudan kurcalarken endianness kavramını ilk kez öğrendim
Ortaya çıkan şey tamamen dinlenemez değildi; eski bilimkurgu filmlerindeki bilgisayar efekt sesleri gibi bir havası vardı
Mesela Hypster by Nonlinear Circuits ve Orbit 3 by Joranalogue; öngörülemez ama periyodik hareketi sese katmaları oldukça eğlenceli
Lisedeyken, neredeyse Jura devri denecek kadar eski zamanlarda, çekicilerle oynardım
O zamanlar bir 486 bilgisayarda tek bir görüntü çizmek 20-30 dakika sürüyordu; şimdi ise gerçek zamanlı 3D render mümkün, buna şaşırıyorum
Bu deneyim, yörünge, kararsızlık gibi sistemsel düşünme biçimim üzerinde büyük etki bıraktı
https://fractint.org/
Bu görselleştirme bana Phong'u hatırlattı
https://phong.com/
Tesadüfen bu hafta, 2002'de lise 11. sınıftayken yaptığım fraktal üreteci projesini çıkarıp SFML grafik kütüphanesiyle modernize ettim
https://github.com/gradientwolf/fractals_SFML
Bu yazıyı görmek beni gerçekten çok mutlu etti. Böyle küçük projeler beni ergenlik yıllarımın o basit ve saf merak dönemine geri götürüyor
“Bunun matematiksel olarak doğru bir genişleme olup olmadığını bilmiyorum” sözüne gelirsek, aslında daha yüksek boyutlara genişletmede tek bir doğru cevap yok
Birden fazla yol olabilir, hatta hiç olmayabilir
Yine de ‘yeterince yakın’ denemelerin kendisi ilgi çekici
Örneğin 3D Mandelbrot yapmaya çalışanların denemelerine bakarsanız, kusursuz bir çözüm yok ama son derece ilginç olasılıklar var
Gerçekten çok güzel. Adeta sığırcık sürüsünün hava dansını izlemek gibi
https://www.youtube.com/watch?v=V4f_1_r80RY
Matematiksel teorinin açıklanış biçimi çok sezgisel ve taze
Başka konular hakkında da yazarsa gerçekten çok ilgi çekici olur
Bu görselleştirme bana xscreensaver'ın “strange” modülünü hatırlattı