• โปรเจ็กต์ที่ใช้ 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) คือตัวดึงดูดที่แสดงวิถีซึ่งคาดการณ์ได้ยากจากสมการไม่เชิงเส้นที่ซับซ้อน โดยมีลักษณะดังนี้

    1. โครงสร้างแฟรกทัล: รูปแบบซับซ้อนที่ซ้ำกันในหลายสเกล
    2. ความไวต่อเงื่อนไขตั้งต้น: การเปลี่ยนแปลงเพียงเล็กน้อยนำไปสู่ผลลัพธ์ที่แตกต่างโดยสิ้นเชิง
    3. วิถีไม่เป็นคาบ: ไม่วนซ้ำเส้นทางเดิม
    4. ระเบียบในความโกลาหล: แม้ดูเหมือนสุ่ม แต่ภายในมีโครงสร้างบางอย่างที่คงอยู่

ผลกระทบผีเสื้อและการสร้างภาพ 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 ของบล็อก และมีแผนจะรวมเข้ากับบล็อกในอนาคต

ยังไม่มีความคิดเห็น

ยังไม่มีความคิดเห็น