ตัวดึงดูดประหลาด (Strange Attractors)
(blog.shashanktomar.com)- โปรเจ็กต์ที่ใช้ Three.js เพื่อสร้างภาพ ตัวดึงดูดประหลาด (Strange Attractors) แสดงให้เห็นกระบวนการที่สมการคณิตศาสตร์อย่างง่ายสามารถสร้างรูปแบบที่ซับซ้อนและสวยงามได้
- อธิบายแนวคิดพื้นฐานของ ระบบพลวัต (Dynamical Systems) และ ทฤษฎีความโกลาหล (Chaos Theory) โดยมุ่งเน้นที่สถานะของระบบที่เปลี่ยนแปลงไปตามเวลาและกฎที่กำหนดวิวัฒนาการของมัน
- ตัวดึงดูดประหลาด ถูกนิยามด้วยคุณลักษณะ 4 ประการ ได้แก่ โครงสร้างแฟรกทัล ความไวต่อเงื่อนไขตั้งต้น วิถีไม่เป็นคาบ และระเบียบที่ซ่อนอยู่ในความโกลาหล
- แสดง ผลกระทบผีเสื้อ (Butterfly Effect) ผ่านภาพของ Thomas Attractor พร้อมนำเสนอว่าการเปลี่ยนแปลงเล็กน้อยของพารามิเตอร์
aสามารถสร้างรูปแบบที่แตกต่างกันโดยสิ้นเชิงได้อย่างไร - ใช้เทคนิค ping-pong rendering บน GPU เพื่อคำนวณและเรนเดอร์อนุภาคหลายพันตัวอย่างมีประสิทธิภาพ จนสามารถแสดงผลแบบเรียลไทม์ได้
ระบบพลวัตและทฤษฎีความโกลาหล
-
ระบบพลวัต คือวิธีการสร้างแบบจำลองทางคณิตศาสตร์ของปรากฏการณ์ที่เปลี่ยนแปลงไปตามเวลา โดยมีตัวอย่างหลากหลาย เช่น การเคลื่อนที่ของดาวเคราะห์ การเติบโตของประชากร และตลาดหุ้น
- ประกอบด้วย ปริภูมิสถานะ (Phase Space) ที่แสดงสถานะทั้งหมดที่เป็นไปได้ของระบบ และ พลวัต (Dynamics) ที่ทำให้ระบบเปลี่ยนจากสถานะหนึ่งไปสู่อีกสถานะหนึ่ง
- ตัวอย่างเช่น ในแบบจำลองการเติบโตของประชากร ขนาดประชากรและอัตราการเติบโตจะเป็นสถานะในปริภูมิสถานะ ขณะที่อัตราการเกิด อัตราการตาย และขีดความสามารถในการรองรับของสิ่งแวดล้อมจะเป็นตัวกำหนดพลวัต
-
ทฤษฎีความโกลาหล (Chaos Theory) คือสาขาที่ศึกษาระบบที่คาดการณ์ได้ยาก โดยปรากฏการณ์จำนวนมากในธรรมชาติจัดอยู่ในกลุ่ม ระบบไม่เชิงเส้นและไวต่อการเปลี่ยนแปลง เช่นนี้
- อธิบายปรากฏการณ์ที่แม้จะมีกฎอยู่ แต่กลับไม่สามารถคาดการณ์ได้เนื่องจากข้อมูลไม่สมบูรณ์
- ลักษณะเด่นที่สำคัญคือ ผลกระทบผีเสื้อ ซึ่งความแตกต่างเล็กน้อยของเงื่อนไขตั้งต้นสามารถเปลี่ยนผลลัพธ์ได้อย่างมาก
ตัวดึงดูด (Attractor) และตัวดึงดูดประหลาด (Strange Attractor)
-
ตัวดึงดูด (Attractor) คือชุดของสถานะที่ระบบจะค่อย ๆ ลู่เข้าเมื่อเวลาผ่านไป เช่น จุดหยุดนิ่งของลูกตุ้ม
- การลู่เข้าสู่ตัวดึงดูดเกิดจากปัจจัยอย่าง เสถียรภาพ, การสูญเสียพลังงาน (Dissipation) และ การหดตัว (Contraction)
-
ตัวดึงดูดประหลาด (Strange Attractor) คือตัวดึงดูดที่แสดงวิถีซึ่งคาดการณ์ได้ยากจากสมการไม่เชิงเส้นที่ซับซ้อน โดยมีลักษณะดังนี้
- โครงสร้างแฟรกทัล: รูปแบบซับซ้อนที่ซ้ำกันในหลายสเกล
- ความไวต่อเงื่อนไขตั้งต้น: การเปลี่ยนแปลงเพียงเล็กน้อยนำไปสู่ผลลัพธ์ที่แตกต่างโดยสิ้นเชิง
- วิถีไม่เป็นคาบ: ไม่วนซ้ำเส้นทางเดิม
- ระเบียบในความโกลาหล: แม้ดูเหมือนสุ่ม แต่ภายในมีโครงสร้างบางอย่างที่คงอยู่
ผลกระทบผีเสื้อและการสร้างภาพ Thomas Attractor
- ผลกระทบผีเสื้อ คือปรากฏการณ์ที่การเปลี่ยนแปลงเพียงเล็กน้อยก่อให้เกิดความแตกต่างอย่างมากในระยะยาว มักอธิบายด้วยอุปมาว่า “การกระพือปีกของผีเสื้อในจีนอาจทำให้เกิดเฮอริเคนในทะเลแคริบเบียน”
- เมื่อเปลี่ยนค่าพารามิเตอร์
aของ Thomas Attractor เป็น 0.10, 0.13, 0.19, 0.21 เป็นต้น วิถีของอนุภาคและรูปร่างโดยรวมจะเปลี่ยนไปอย่างสิ้นเชิง - หากเปลี่ยนสถานะเริ่มต้นเป็น
cubeและsphere surfaceอนุภาคจะเคลื่อนที่ตามเส้นทางที่ต่างกัน แต่สุดท้ายจะลู่เข้าสู่สถานะตัวดึงดูดเดียวกัน
รายละเอียดการพัฒนา
- การสร้างภาพใช้ Three.js เพื่อคำนวณและเรนเดอร์อนุภาคจำนวนมากบน GPU โดยตรง
- ใช้เทคนิค ping-pong rendering เพื่อลดการส่งข้อมูลระหว่าง CPU และ GPU ให้น้อยที่สุด โดยสลับใช้ frame buffer object (FBO) สองชุด
- บัฟเฟอร์
pingและpongจะเก็บสถานะปัจจุบันและสถานะถัดไปตามลำดับ - โปรแกรมเชดเดอร์จะอัปเดตตำแหน่งของอนุภาคแต่ละตัวตามสมการของตัวดึงดูด
- ในทุกเฟรมจะสลับบัฟเฟอร์และเรนเดอร์สถานะใหม่ของอนุภาค
- บัฟเฟอร์
เอกสารอ้างอิงและข้อมูลเพิ่มเติม
- มีการอ้างอิงแหล่งข้อมูลที่เกี่ยวข้อง เช่น Maxim's Attractor visualization, Wikipedia: Attractor, List of Chaotic Maps, WebGLFundamentals: Ping Pong Rendering
- ยังยกตัวอย่างเพิ่มเติมของการสร้างภาพตัวดึงดูดแบบ 3D จาก chaoticatmospheres.com, dynamicmath.xyz, Reddit r/generative
- ขณะนี้กำลังรับฟังความคิดเห็นผ่านหน้า GitHub Discussion ของบล็อก และมีแผนจะรวมเข้ากับบล็อกในอนาคต
ยังไม่มีความคิดเห็น