अजीब आकर्षक (Strange Attractors)
(blog.shashanktomar.com)- Three.js का उपयोग करके अजीब आकर्षक (Strange Attractors) को विज़ुअलाइज़ करने वाला एक प्रोजेक्ट, जो दिखाता है कि सरल गणितीय समीकरणों से जटिल और सुंदर पैटर्न कैसे बनते हैं
- Dynamical Systems और Chaos Theory की बुनियादी अवधारणाओं को समझाता है, और समय के साथ बदलती सिस्टम की स्थिति तथा उसके विकास को तय करने वाले नियमों पर केंद्रित है
- अजीब आकर्षक को चार विशेषताओं से परिभाषित किया गया है: fractal संरचना, शुरुआती स्थितियों के प्रति संवेदनशीलता, aperiodic trajectories, और chaos के भीतर व्यवस्था
- Butterfly Effect को Thomas Attractor के विज़ुअलाइज़ेशन के जरिए दिखाया गया है, जहाँ parameter
aमें बहुत छोटा बदलाव भी पूरी तरह अलग पैटर्न बना देता है - GPU-आधारित ping-pong rendering तकनीक का उपयोग करके हज़ारों particles की कुशलतापूर्वक गणना और rendering की जाती है, जिससे real-time visualization संभव होता है
Dynamical Systems और Chaos Theory
-
Dynamical Systems समय के साथ बदलने वाली घटनाओं को गणितीय रूप से मॉडल करने का तरीका है, जिसमें ग्रहों की गति, जनसंख्या वृद्धि, और stock market जैसे कई उदाहरण शामिल हैं
- यह सिस्टम की सभी संभावित अवस्थाओं को दर्शाने वाले Phase Space और एक अवस्था से अगली अवस्था में ले जाने वाले Dynamics से मिलकर बना होता है
- उदाहरण के लिए, population growth model में जनसंख्या का आकार और growth rate phase space की state बनाते हैं, जबकि birth rate, death rate, और environmental carrying capacity dynamics को निर्धारित करते हैं
-
Chaos Theory ऐसे systems का अध्ययन करने वाला क्षेत्र है जो देखने में अप्रत्याशित लगते हैं, और प्रकृति की कई घटनाएँ ऐसे nonlinear और sensitive systems में आती हैं
- यह बताता है कि नियम मौजूद होने के बावजूद, अधूरी जानकारी के कारण भविष्यवाणी असंभव हो सकती है
- शुरुआती स्थितियों में छोटे अंतर से परिणामों में बड़ा बदलाव आने वाला Butterfly Effect इसकी प्रमुख विशेषता है
आकर्षक (Attractor) और अजीब आकर्षक (Strange Attractor)
-
आकर्षक (Attractor) उन अवस्थाओं का समूह है जिनकी ओर कोई सिस्टम समय के साथ अभिसरित होता है; उदाहरण के लिए, pendulum का स्थिर रुकने का बिंदु
- आकर्षक की ओर अभिसरण stability, energy dissipation, और contraction जैसे कारकों के कारण होता है
-
अजीब आकर्षक (Strange Attractor) ऐसा attractor है जो जटिल nonlinear समीकरणों के कारण अप्रत्याशित trajectories दिखाता है, और इसकी निम्नलिखित विशेषताएँ होती हैं
- Fractal संरचना: अलग-अलग scales पर दोहराए जाने वाले जटिल पैटर्न
- शुरुआती स्थितियों के प्रति संवेदनशीलता: छोटा बदलाव पूरी तरह अलग परिणाम दे सकता है
- Aperiodic trajectories: वही path दोबारा नहीं दोहराया जाता
- Chaos के भीतर व्यवस्था: यह यादृच्छिक दिख सकता है, लेकिन भीतर एक निश्चित संरचना होती है
Butterfly Effect और Thomas Attractor visualization
- Butterfly Effect वह घटना है जिसमें छोटा बदलाव लंबे समय में बड़ा अंतर पैदा करता है; इसे अक्सर इस रूपक से समझाया जाता है कि “चीन में तितली के पंख फड़फड़ाने से Caribbean में hurricane आ सकता है”
- Thomas Attractor के parameter
aको 0.10, 0.13, 0.19, 0.21 आदि में बदलने पर particle trajectories और पूरी आकृति पूरी तरह बदल जाती है - शुरुआती state को
cubeऔरsphere surfaceमें बदलने पर particles अलग-अलग रास्तों का अनुसरण करते हैं, लेकिन अंततः वही attractor state प्राप्त करते हैं
इम्प्लीमेंटेशन विवरण
- visualization में Three.js का उपयोग करके बड़ी संख्या में particles की गणना और rendering सीधे GPU पर की जाती है
- ping-pong rendering तकनीक के माध्यम से CPU और GPU के बीच data transfer को न्यूनतम रखा जाता है, और दो frame buffer objects (FBO) को बारी-बारी से उपयोग किया जाता है
pingऔरpongbuffers क्रमशः current state और next state को स्टोर करते हैं- shader program प्रत्येक particle की स्थिति को attractor equations के अनुसार update करता है
- हर frame पर buffer बदलते हुए नई particle state को render किया जाता है
संदर्भ और अतिरिक्त सामग्री
- संबंधित सामग्री के रूप में Maxim का Attractor visualization, Wikipedia: Attractor, List of Chaotic Maps, और WebGLFundamentals: Ping Pong Rendering का उल्लेख किया गया है
- अतिरिक्त उदाहरणों के लिए chaoticatmospheres.com, dynamicmath.xyz, और Reddit r/generative में 3D attractor visualization के उदाहरण दिए गए हैं
- ब्लॉग के GitHub Discussion पेज पर feedback लिया जा रहा है, और भविष्य में ब्लॉग में integration की योजना है
1 टिप्पणियां
Hacker News राय
इस तरह की 3D phase space visualization बहुत अच्छी तरह दिखाती है कि हम इससे कितनी जानकारी हासिल कर सकते हैं
लेकिन साथ ही यह भी महसूस होता है कि 3D से ऊपर की दुनिया में हम कितनी समृद्धि को मिस कर रहे हैं
सोचता हूँ कि क्या 4D या उससे ऊपर को 3D cross-section देखकर, या Lagrangian particles को फॉलो करते हुए D value के बदलाव को रंगों से दिखाने जैसे तरीकों से visualize किया जा सकता है
ऐसी visualization statistical mechanics के शुरुआती दौर की याद दिलाती है, जब Boltzmann और Gibbs जैसे लोग phase space और equilibrium की अवधारणा पर बहस कर रहे थे
हम reasoning या आंशिक समझ के ज़रिए उसके करीब जा सकते हैं, लेकिन उसे पूरी तरह grasp नहीं कर सकते
सच कहूँ तो मुझे लगता है कि 3D सोच भी इंसानों को दूसरे जानवरों की तुलना में मिली एक बड़ी adaptive capability है
सच में कमाल है! अगर a और b values को adjust करके अपनी खुद की strange attractor patterns खोजने की सुविधा हो, तो बहुत अच्छा होगा
कोई free mode भी हो तो मज़ा आएगा
मोबाइल पर bottom menu bar में, और desktop पर तो तुरंत नज़र आ जाती है
किशोरावस्था में, लगभग 25 साल पहले, मैंने खुद 2D chaotic attractor visualizer बनाया था
फिर अचानक खयाल आया, “अगर इसे visualization की जगह sound में render किया जाए तो कैसा होगा?”
मैंने frequency को angle से और amplitude को magnitude से map किया, और WAV format को सीधे संभालते हुए पहली बार endianness का कॉन्सेप्ट सीखा
नतीजा इतना भी नहीं था कि सुना ही न जा सके; उसका एहसास पुराने sci-fi फिल्मों के computer sound effects जैसा था
उदाहरण के लिए Hypster by Nonlinear Circuits और Orbit 3 by Joranalogue, और अनिश्चित लेकिन आवर्ती मूवमेंट को sound में जोड़ने का मज़ा बहुत है
हाई स्कूल के दिनों में, लगभग जुरासिक युग जैसा लगने वाले समय में, मैं attractors के साथ खेला करता था
उस समय 486 कंप्यूटर पर एक इमेज बनाने में 20~30 मिनट लगते थे, इसलिए आज real-time 3D rendering संभव होना हैरान करता है
ऐसे अनुभवों ने orbit, instability जैसी system-level thinking पर बहुत असर डाला
https://fractint.org/
यह visualization देखकर Phong याद आ गया
https://phong.com/
संयोग से मैंने इसी हफ्ते 2002 में हाई स्कूल की 11वीं कक्षा में बनाया अपना fractal generator project निकाला और उसे SFML graphics library के साथ modernize किया
https://github.com/gradientwolf/fractals_SFML
यह पोस्ट देखकर सच में बहुत खुशी हुई। ऐसे छोटे प्रोजेक्ट मुझे किशोरावस्था की उस सरल और शुद्ध जिज्ञासा के दौर में वापस ले जाते हैं
“यह गणितीय रूप से सही extension है या नहीं, पता नहीं” वाली बात पर, असल में higher dimensions में extension का एक ही सही जवाब नहीं होता
कई तरीके संभव हैं, या फिर शायद कोई भी नहीं
फिर भी ‘काफ़ी करीब’ पहुँचने की कोशिश अपने आप में दिलचस्प है
उदाहरण के लिए, 3D Mandelbrot बनाने की कोशिश करने वाले लोगों को देखें तो कोई परफेक्ट जवाब नहीं है, लेकिन बहुत दिलचस्प संभावनाएँ ज़रूर हैं
सच में बहुत सुंदर है। जैसे starling murmurations का सामूहिक नृत्य देख रहे हों
https://www.youtube.com/watch?v=V4f_1_r80RY
गणितीय सिद्धांत को समझाने का तरीका बहुत intuitive और ताज़गीभरा है
अगर वे दूसरे विषयों पर भी लिखें, तो वह भी बेहद दिलचस्प होगा
यह visualization देखकर xscreensaver का “strange” module याद आ गया