4 พันล้านปีใน 4 นาที – จำลองโลกด้วย GPU
(davidar.io)- สร้างประวัติศาสตร์ทั้งหมดของดาวเคราะห์แบบโลกอย่างเป็นกระบวนวิธีภายในไม่กี่นาที โดยใช้เพียง GLSL fragment shader เท่านั้น ไม่มีเท็กซ์เจอร์ที่เรนเดอร์ไว้ล่วงหน้า และการจำลองสุดท้ายอัปเดตที่ 60fps
- ภูมิประเทศเริ่มต้นสร้างโดยแปลงละติจูด·ลองจิจูดเป็นพิกัด 3D จากนั้นซ้อน ปล่องอุกกาบาต 5 ระดับรายละเอียดเข้ากับ noise แบบ fractional Brownian motion เพื่อสร้างพื้นผิวดาวเคราะห์ยุคดึกดำบรรพ์
- แผ่นธรณีภาคจำลองด้วยการเลื่อนแผ่นใน time step แบบไม่ต่อเนื่องระดับพิกเซล และประมาณการเกิดเทือกเขากับทวีปโดยยกความสูงที่จุดชน แล้วกระจายออกสู่บริเวณรอบข้างด้วย thermal erosion
- การกัดเซาะทางน้ำให้แต่ละพิกเซลส่งน้ำไปยังทิศทางที่ลาดลงชันที่สุดในบรรดาเพื่อนบ้าน 8 จุด และใช้ stream power law กัดความสูง ทำให้สร้างแม่น้ำกว้าง 1 พิกเซลได้แม้ในความละเอียดต่ำ
- ครอบคลุมถึงขั้นภูมิอากาศ ชีวิต และมนุษยชาติ โดยเชื่อมค่าเฉลี่ยความกดอากาศที่ระดับน้ำทะเล ลม ฝน แบบจำลองการแพร่ Lotka–Volterra และการเผาไหม้เชื้อเพลิงฟอสซิล เข้าไว้ในการจำลอง GPU เดียวเพื่อแสดงการเปลี่ยนแปลงระยะยาวของพื้นผิวดาวเคราะห์
การจำลองดาวเคราะห์เชิงกระบวนวิธีที่สร้างด้วย GPU shader
- การจำลองโลกเชิงกระบวนวิธี ถูกพัฒนาด้วย GLSL fragment shader เท่านั้น
- จำลองประวัติศาสตร์ทั้งหมดของดาวเคราะห์คล้ายโลกภายในไม่กี่นาที และหน้าจออัปเดตที่ 60fps
- มีวิดีโอบันทึกของ shader สุดท้ายให้ดูด้วย
การสร้างภูมิประเทศของดาวเคราะห์ดึกดำบรรพ์
- โลกยุคแรกถูกมองเป็น ดาวเคราะห์ดึกดำบรรพ์ ที่ร้อนและเต็มไปด้วยปล่องจากการชนของดาวเคราะห์น้อย
- เนื่องจากไม่มีเท็กซ์เจอร์ที่เรนเดอร์ไว้ล่วงหน้า ขั้นแรกจึงเป็นการคำนวณความสูงของภูมิประเทศ ณ ละติจูดและลองจิจูดเฉพาะ
- ละติจูดและลองจิจูดจะถูกแปลงเป็นพิกัดคาร์ทีเซียน 3D ก่อน
- เพราะดาวเคราะห์น้อยมีขนาดหลากหลาย ปล่องอุกกาบาตจึงถูกซ้อนกันหลายขนาด
- shader วนซ้ำ 5 ระดับรายละเอียด
- จัดวางเป็นชั้น ๆ ตั้งแต่ปล่องใหญ่ไปจนถึงปล่องเล็ก
- ผสม noise แบบ fractional Brownian motion เพื่อให้ภูมิประเทศดูขรุขระ
- ปรับสเกลให้ปล่องขนาดใหญ่ที่สุดมีผลต่อภูมิประเทศมากที่สุด
- ปล่องถูกสร้างในกริด 3D แล้วตัดเฉพาะพื้นผิวทรงกลมออกมาใช้เป็นภูมิประเทศ
- เพื่อหลีกเลี่ยงแพตเทิร์นที่สม่ำเสมอ ศูนย์กลางของปล่องจะมีออฟเซ็ตแบบสุ่มเทียมจากจุดกริดด้วย hash function
- อิทธิพลของปล่องที่อยู่ตามจุดกริดรอบ ๆ จะถูกเฉลี่ยด้วยน้ำหนักแบบเลขชี้กำลังตามระยะทาง
- ขอบปล่องสร้างด้วย เส้นโค้งไซน์ แบบง่าย
- เมื่อเติมน้ำลงในพื้นที่ต่ำ ภูมิประเทศที่สร้างเชิงกระบวนวิธีจะดูคล้ายโลกยุคแรกตามที่นักวิทยาศาสตร์คาดไว้
- เมื่อเวลาผ่านไป หินเย็นตัวลง ไอน้ำควบแน่นกลายเป็นมหาสมุทร และการไหลของน้ำผิวดินจะสร้างหุบเขาและทิ้งตะกอน
แผ่นธรณีภาคและการก่อตัวของทวีป
- หากต้องการสร้างเทือกเขา ร่องลึกก้นสมุทร และภูมิประเทศทวีปที่คุ้นเคย จำเป็นต้องมีแบบจำลอง แผ่นธรณีภาค
- แผ่นเริ่มต้นจากตำแหน่ง seed แบบสุ่มและได้รับความเร็วเริ่มต้น
- การเติบโตของแผ่นจัดการด้วยแบบจำลองเซตอย่างง่าย
- เลือกจุดข้างเคียงแบบสุ่ม
- หากจุดนั้นยังไม่ถูกกำหนดให้แผ่นอื่น ก็เพิ่มเข้าในแผ่นนั้น
- พิกเซลภายในแต่ละแผ่นจะเก็บความเร็วการเคลื่อนที่ของแผ่น
- วิธีนี้คล้าย diffusion-limited aggregation ที่ไม่มีการแพร่
- การเคลื่อนที่ของแผ่นแบบต่อเนื่องทำได้ยาก เพราะต้องจัดการสภาวะที่ขอบเขตเลื่อนไปเพียงเศษส่วนของพิกเซล
- แทนที่จะทำเช่นนั้น แผ่นจะเคลื่อนที่ทีละ 1 พิกเซลพอดีในแนวนอนหรือแนวตั้งใน time step แบบไม่ต่อเนื่อง
- เวลาการเคลื่อนที่ถูกสุ่มแยกในแต่ละแผ่น
- ความเร็วเฉลี่ยตามความเร็วและทิศทางที่ตั้งไว้ยังคงถูกรักษาไว้
- โอกาสที่แผ่นข้างเคียงจะเคลื่อนพร้อมกันลดลง
- การชนของแผ่นเกิดขึ้นเมื่อพิกเซลขอบของแผ่นหนึ่งเคลื่อนไปยังตำแหน่งที่เคยมีพิกเซลของอีกแผ่นอยู่
- การชนถูกจัดการเป็น subduction โดยจำลองด้วยการเพิ่มความสูงเล็กน้อยที่ตำแหน่งชน
- ผลของการชนเกิดเฉพาะที่พิกเซลขอบ แต่แบบจำลอง thermal erosion จะค่อย ๆ กระจายไปยังพิกเซลรอบข้าง
- thermal erosion จะดันความสูงของพิกเซลหนึ่งไปตามทิศทางค่าเฉลี่ยของเพื่อนบ้าน
- การผสมผสานนี้สามารถจำลองการก่อตัวของทวีปที่มีเทือกเขาได้ในระดับหนึ่ง
การกัดเซาะทางน้ำและลุ่มน้ำแม่น้ำ
- ลักษณะขรุขระของภูมิประเทศธรรมชาติมาจากการก่อตัวของลุ่มน้ำแม่น้ำอย่างมาก และลุ่มน้ำแม่น้ำกัดเซาะภูมิทัศน์เป็น แพตเทิร์นแตกกิ่ง ที่คุ้นตา
- แผนที่ภูมิประเทศที่ครอบคลุมทั้งดาวเคราะห์มีความละเอียดต่ำ ดังนั้นแบบจำลองต้องสามารถจำลองแม่น้ำกว้าง 1 พิกเซล ได้ด้วย
- แบบจำลองอย่างง่ายของ Barnes (2018) ตอบโจทย์นี้
- แต่ละพิกเซลตรวจสอบเพื่อนบ้าน 8 จุดเพื่อหาทิศทางที่ความสูงลดลงมากที่สุด
- เพื่อนบ้านแนวทแยงอยู่ไกลกว่า จึงต้องมีการชดเชย
- ทิศทางลาดลงชันที่สุดจะเป็นทิศทางที่น้ำไหลออกจากพิกเซลนั้น
- น้ำเริ่มกระจายอยู่ในเซลล์จากฝน และในแต่ละ time step จะเคลื่อนที่ระหว่างพิกเซลข้างเคียง
- การกัดเซาะจัดการตาม stream power law
- ใช้
elevation,waterของเซลล์ปัจจุบัน และslopeในทิศทางที่น้ำเคลื่อนที่ - การลดความสูงถูกจำกัดไม่ให้ต่ำกว่าตำแหน่งที่น้ำไหลไป
- ใช้
- เมื่อการไหลของน้ำและการกัดเซาะทำงานร่วมกัน ลุ่มน้ำแม่น้ำจะก่อตัวขึ้นเองอย่างเป็นธรรมชาติบนภูมิประเทศ
- หากระบายสีทางน้ำที่เชื่อมต่อกันตามตำแหน่งปากแม่น้ำ จะได้ภาพ visualization ที่ชวนให้นึกถึง แผนที่ลุ่มน้ำแม่น้ำจริง
- มี original shader ของลุ่มน้ำแม่น้ำที่จำลองไว้ให้ด้วย
แบบจำลองภูมิอากาศทั่วโลก
- ระบบภูมิอากาศของดาวเคราะห์ทั้งดวงซับซ้อน แต่ในการจำลองนี้ประมาณอย่างค่อนข้างง่าย
- ปัจจัยขับเคลื่อนหลักของการจำลองภูมิอากาศคือแผนที่ ค่าเฉลี่ยความกดอากาศที่ระดับน้ำทะเล (MSLP) ที่สร้างเชิงกระบวนวิธี
- ตาม Climate Cookbook ปัจจัยหลักในการสร้างแผนที่ MSLP คือแผ่นดินอยู่ตรงไหนระหว่างทะเล และผลของละติจูด
- เมื่อนำข้อมูล MSLP ของโลกจริงมาแยกเป็นแผ่นดินกับทะเลแล้วพล็อตเทียบกับละติจูด จะได้เส้นโค้งไซน์สองเส้นที่มีรูปทรงต่างกันเล็กน้อย
- แบบจำลองความกดอากาศเฉลี่ยรายปีคำนวณโดยแยกแผ่นดินและทะเลด้วยสมการตามละติจูด
- แผ่นดิน:
1012.5 - 6. * cos(lat*PI/45.) - ทะเล:
1014.5 - 20. * cos(lat*PI/30.)
- แผ่นดิน:
- หากคำนวณแผ่นดินและทะเลแยกกัน จะเกิดความไม่ต่อเนื่องที่คมชัดบริเวณขอบเขต
- ในความเป็นจริง MSLP เปลี่ยนอย่างนุ่มนวลบริเวณรอยต่อทะเลกับแผ่นดิน เพราะการแพร่กระจายเฉพาะที่ของความกดอากาศ
- กระบวนการแพร่นี้ประมาณด้วยการใช้ Gaussian blur กับแผนที่ MSLP
- ค่าเบี่ยงเบนมาตรฐานอยู่ในช่วง 10–15 องศา
- การเปลี่ยนแปลงตามฤดูกาลทำโดยจำลองส่วนต่าง MSLP ระหว่างเดือนมกราคมกับกรกฎาคมเพิ่มเติม
- ส่วนต่างนี้ก็เป็นไปตามแพตเทิร์นไซน์จากข้อมูลโลกเช่นกัน
- ปรับพารามิเตอร์และใช้ Gaussian blur แล้วรวมเข้ากับ MSLP เฉลี่ยรายปี
- สร้างลมและอุณหภูมิจาก MSLP
- ในความเป็นจริง อุณหภูมิเป็นตัวสร้างความกดอากาศ แต่ที่นี่ใช้ประโยชน์จากความสัมพันธ์กัน
seasonแกว่งระหว่าง -1 ถึง 1 ตลอดหนึ่งปี
- ลมมีแนวโน้มเคลื่อนจากความกดอากาศสูงไปยังความกดอากาศต่ำ แต่ในระดับทั้งโลกต้องพิจารณา แรงโคริออลิส ด้วย
- แรงโคริออลิสทำให้ลมหมุนวนรอบบริเวณความกดอากาศ
- เวกเตอร์ความเร็วคำนวณโดยรวมพจน์โคริออลิสกับเกรเดียนต์ความกดอากาศ
- การจำลองที่ค่อนข้างหยาบนี้สร้างแพตเทิร์นการไหลเวียนของลมที่ สมจริง
- ยังจำลองปรากฏการณ์ลมกลับทิศในช่วงฤดูมรสุมของภูมิภาคอินเดียได้ด้วย
- ฝนจำลองโดย advect ไอน้ำจากทะเลไปยังแผ่นดินตามสนามเวกเตอร์ลม
- advection ถูกทำในลักษณะคล้ายการจำลองของไหล
การกระจายของสิ่งมีชีวิตและพลวัตผู้ล่า-เหยื่อ
- ภูมิอากาศส่งผลต่อการกระจายของสิ่งมีชีวิตบนดาวเคราะห์
- รูปแบบฝนและการเปลี่ยนแปลงอุณหภูมิกำหนดอัตราการเติบโตของพืช
- เมื่อฤดูกาลเปลี่ยน สัตว์กินพืชจะย้ายไปยังพื้นที่ที่มีพืชพอให้ดำรงชีวิตได้
- ผู้ล่าจะตามสัตว์กินพืชที่เคลื่อนตามพืชไป
- พลวัตแบบนี้จับได้ด้วย แบบจำลองการแพร่ Lotka–Volterra
- องค์ประกอบ
xyzของตัวแปรcแทนประชากรพืช สัตว์กินพืช และผู้ล่า ตามลำดับ - พลวัตประชากรสัตว์ในระดับใหญ่สร้างแพตเทิร์นที่น่าสนใจ
- ในโลกจริง แพตเทิร์นแบบนี้พบเห็นได้ง่ายที่สุดในประชากรจุลินทรีย์บนจานเพาะเชื้อ แต่กฎเดียวกันนี้ก็ใช้กับประชากรสัตว์ขนาดใหญ่ทั่วโลกได้เช่นกัน
มนุษยชาติและการปล่อยคาร์บอน
- หลังพ้นช่วงโลกยุคแรก ความเร็วการจำลองจะช้าลงเป็นวัฏจักรกลางวันกลางคืน แผ่นธรณีภาคแทบตรวจจับไม่ได้ และภูมิประเทศจะคงที่
- ในเวลากลางคืน เมื่อมนุษยชาติเข้าไปตั้งถิ่นฐานทั่วพื้นผิวดาวเคราะห์ จะปรากฏ แพตเทิร์นแสง ที่ไม่เคยมีมาก่อน
- การขยายตัวอย่างรวดเร็วของมนุษยชาติมาพร้อมกับการเผาไหม้เชื้อเพลิงฟอสซิล
- ตลอดหลายร้อยปี มนุษยชาติได้เผาทรัพยากรเชื้อเพลิงฟอสซิลทั้งหมดที่ใช้ได้ และปล่อย คาร์บอน 5 ล้านล้านตัน สู่ชั้นบรรยากาศ
- การปล่อยนี้ทำให้ภาวะเรือนกระจกรุนแรงขึ้น และ เพิ่มอุณหภูมิเฉลี่ยทั่วโลกเกือบ 10 องศาเซลเซียส
- เนื่องจากอุณหภูมิสุดขั้ว พื้นที่แผ่นดินขนาดใหญ่รอบเส้นศูนย์สูตรจึงไม่สามารถอยู่อาศัยได้
- ด้วยเหตุนี้ มนุษยชาติจึงหายไปจากพื้นที่ส่วนใหญ่ของดาวเคราะห์
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News
ถึงจะเจ๋งก็จริง แต่ส่วนท้ายที่บอกว่าอารยธรรมที่มี แสงไฟยามค่ำคืน จะต้องเผาเชื้อเพลิงฟอสซิลทั้งหมดอย่างหลีกเลี่ยงไม่ได้จนทำให้ดาวเคราะห์กลายเป็นทะเลทราย ดูเหมือนเป็นสมมติฐานที่อิงกับเส้นทางที่เป็นไปได้เพียงเส้นทางหนึ่งของอารยธรรมเราเท่านั้น
ไม่มีเหตุผลรองรับว่า การตายจากภาวะโลกร้อนและการแปรสภาพเป็นทะเลทรายนั้นน่าจะเกิดขึ้นมากกว่าสงครามนิวเคลียร์ การพัฒนาฟิวชันสะอาด โรคระบาด หรือการรุกรานดาวเคราะห์คล้ายโลกที่อยู่ใกล้ ๆ ซึ่งถูกสร้างขึ้นแบบ procedural
เวลาจำลองสิ่งที่เกิดขึ้นจริงมันยอดเยี่ยม แต่ดีแค่จนถึงก่อนที่ความคิดเห็นจะถูกใส่เข้ามา
ยิ่งไปกว่านั้น ดูเหมือนจะเทียบความร้อนกับความแห้งแล้งเป็นอย่างเดียว และไม่ได้พิจารณาผลของ CO2 ที่เพิ่มขึ้นต่อพืชด้วย แม้แถบเส้นศูนย์สูตรจะร้อนจนมนุษย์อยู่ไม่ได้ ก็มีความเป็นไปได้ไม่น้อยที่มันจะถูกปกคลุมด้วย ป่าเขตร้อน ไม่ใช่ทะเลทราย
แนวทางแบบนี้โดยมากมักมองข้าม ผลกระทบลำดับที่สอง ตามที่กล่าวไว้ข้างต้น
ยอมรับว่าส่วนการกลายเป็นทะเลทรายในตอนท้ายเป็นการอนุญาตเชิงศิลปะเล็กน้อย เพื่อให้เล่าเรื่องด้วยภาพได้ง่ายขึ้น ความเป็นจริงคงซับซ้อนกว่านั้นมาก
มันเป็นเพียงเรื่องเล่าของหนึ่งในฉากทัศน์ที่เป็นไปได้เท่านั้น และที่อื่นก็เขียนไว้แบบนั้นด้วย: “ส่วนท้ายตั้งใจแสดงอนาคตที่เป็นไปได้ แต่คงมีความเป็นไปได้ค่อนข้างต่ำ ผมอยากทำให้มันดราม่า จึงวาดผลลัพธ์สุดโต่งที่เชื้อเพลิงฟอสซิลทั้งหมดถูกเผาอย่างแท้จริง แต่สำหรับผลกระทบอื่น ๆ ผมพยายามรักษาให้สมจริงที่สุดเท่าที่ทำได้ โดยอ่านบทความวิทยาศาสตร์เกี่ยวกับสมมติฐานแบบนั้น”
https://www.vice.com/en/article/xgx7nq/watch-four-billion-ye...
ช่วงปี 1996/1997 ผมเคยทำเกม CD-ROM ที่จำลอง การเคลื่อนที่ของแผ่นธรณีภาค อุณหภูมิ ความสูงจากระดับน้ำทะเล และปริมาณฝน ตลอดช่วงเวลาหลายล้านปี
เห็นแล้วทึ่งว่าใน 28 ปี ฮาร์ดแวร์และซอฟต์แวร์คอมพิวเตอร์พัฒนาไปมากแค่ไหน: https://www.kmoser.com/evolution/
แนวคิดในการจำลองดาวเคราะห์และสัตว์บนดาวนั้นเป็นอะไรที่ช็อกสุด ๆ ในเวลานั้น และตอนนี้ก็ยังเป็นอยู่ น่าจะเก็บโปสเตอร์ที่แถมมาด้วยไว้จริง ๆ เพราะ แขนงวิวัฒนาการของโฮมินิน หลายสายที่อยู่ในนั้นน่าสนใจมาก
ผมคิดเลยว่าถ้ามีลูกโลก 3D พร้อมแถบเลื่อนเวลา ให้ลองปรับการเคลื่อนที่ที่คาดการณ์ของแผ่นธรณีภาค แล้วเห็นภาพว่ามันกลายเป็นภูมิประเทศปัจจุบันได้อย่างไรก็คงดี คุณรู้จักอะไรแบบนั้นไหม?
[1] https://www.goodreads.com/book/show/19898.Assembling_Califor...
[2] excerpt: https://www.newyorker.com/magazine/1992/09/07/assembling-cal...
มีหนังสือ ฮาร์ดไซไฟ ที่ยอดเยี่ยมและเกี่ยวข้องกับหัวข้อนี้มากคือ Permutation City พอเห็นชื่อบทความนี้แล้วรู้สึกเหมือนอยู่ในความฝัน
อาจจะออกนอกทางนิดหน่อย แต่เรื่องสั้นสั้น ๆ ที่ยอดเยี่ยมชื่อ "I don't know, Timmy, being God is a big responsibility" ในแง่หนึ่งก็พูดถึงการจำลองโลก และดีมากจริง ๆ:
https://qntm.org/responsibility
หลายปีมานี้ผมอยากเขียนเรื่องที่มีพล็อตคล้ายกันมาก แต่มีช่องโหว่ใหญ่ในพล็อตเรื่อง overhead การคำนวณระหว่างจักรวาล และไม่เคยคิดได้ว่าจะใช้คอมพิวเตอร์ควอนตัมมาแก้
ความต่างอีกอย่างของเรื่องที่ผมคิดไว้คือ ตัวละครจะเขียนเรื่องนั้นขึ้นมา แล้วมันจะกลายเป็นเรื่องของ “ผม” โดยสร้างตัวแปรที่เพิ่มค่าทีละ 1 ในแต่ละจักรวาล เพื่อให้ตอนจบผู้อ่านรู้ว่าตัวเองอยู่ลึกลงไปเป็นชั้นที่เท่าไร
คนที่อ่านสิ่งนี้บน HN อยู่ลึกลงไป 8474771628371839 ชั้น
น่าจะเป็นครั้งแรกที่เจอหลายเวอร์ชันในงานเขียนที่ไม่ใช่ตำราเรียน ผมชอบ งานเขียนแบบการทดลองทางความคิด แบบนี้มากจริง ๆ ตราบใดที่ไม่จี้ช่องโหว่ด้านตรรกะหรือฟิสิกส์
ชอบไอเดียพหุจักรวาลที่ทุกจักรวาลแทบเหมือนกันหมดจนส่วนใหญ่ไร้ความหมาย
ดราม่า ฟิสิกส์ และตอนจบถูกจัดการต่างกัน แต่ทิ้งภาวะครุ่นคิดที่น่าพึงพอใจคล้าย ๆ กันไว้ ผมเกือบจะเขียนชื่อเรื่องหรือชื่อผู้กำกับแล้ว แต่ก็หยุดเมื่อรู้ว่าแค่บริบทนี้ก็อาจเป็น สปอยเลอร์ ใหญ่ได้
บางทีผมอาจเข้ารหัสชื่อไว้ในคอมเมนต์นี้ก็ได้ พูดตรง ๆ คือผมลองทำแล้ว และตอนนี้ก็ดึกมากแล้ว ดังนั้นเสิร์ชเอนจินสมัยนี้อาจหาเจอก็ได้
วิชาหนึ่งที่ชอบที่สุดตอนเรียนมหาวิทยาลัยคือ การวิเคราะห์นโยบายพลังงาน และได้ทดลองกับโมเดล EPPA ที่พัฒนาโดย MIT
ลองเปลี่ยนพารามิเตอร์บางอย่าง เช่น ถ้าต้นทุนการกักเก็บพลังงานลดลงเหลือหนึ่งในสิบ สถานการณ์จะเป็นอย่างไร สนุกมาก แต่น่าเสียดายที่ในที่ทำงานไม่เคยหาโอกาสทำอะไรคล้าย ๆ กันได้เลย
[0]: https://globalchange.mit.edu/research/research-tools/eppa
พูดตามจริงแล้ว ซิมูเลชันนี้คงละรายละเอียดบางอย่างไปแน่ ๆ :)
ไม่รู้ทำไม ตัวอย่าง Shadertoy ทั้งหมดที่ฝังอยู่ในหน้าเว็บถึงเล่นได้แค่ราว 0.6 FPS ในสภาพแวดล้อมของผม
แต่ถ้าเปิด “final shader” ที่ลิงก์ไว้บนเว็บไซต์ Shadertoy ก็ได้ 60fps ปกติดี
บางครั้งก็สงสัยว่าการอยู่ใน จักรวาลจำลอง จะรู้สึกอย่างไร
ถ้าเราสามารถ “มองเห็น” “ภายนอก” ของ “จักรวาล” ได้ บางทีเราอาจเข้าใจว่าความเป็นจริงของเรานั้นเรียบง่ายและมีข้อจำกัดมากเมื่อเทียบกับ “ความเป็นจริง” ภายนอก โครงสร้างนี้อาจต่อเนื่องไปไม่สิ้นสุด หรือความเป็นจริงภายนอกอาจมีตรรกะมากกว่าเรามากจนทำให้เรายอมรับความมีขอบเขตจำกัดได้
แต่เพราะเรามีจุดเริ่มต้นและการไหลของเวลา บางทีเราอาจมีการถือกำเนิด มีแม่ และอาจมีแม้กระทั่งจุดประสงค์ด้วย แน่นอนว่านี่เป็นวิธีคิดแบบมนุษย์มาก ๆ และทั้งหมดอาจเป็นเพียงซุปสุ่ม ๆ ก็ได้
ลองจินตนาการว่ามีตัวตนที่รู้จักตนเองอยู่ในซิมูเลชันที่เราสร้าง และเริ่มคิดแบบเดียวกัน ทุกคนคงหัวเราะเยาะว่า “พวกเราก็แค่ของสุ่ม ๆ ไม่มีพระเจ้า ไม่มีการออกแบบ ใครจะใช้พลังงานมากขนาดนั้นไปกับก้อนพื้นที่ว่างมหึมาที่ไร้ประโยชน์แบบนี้” และเขาก็คงต้องเห็นด้วยในระดับหนึ่ง แต่ขณะเดียวกันก็ผิดอยู่ในระดับหนึ่งเช่นกัน
ต่อให้ค้นพบเรา ก็ไม่ได้ช่วยปลอบใจอะไร เพราะเราก็บอกอะไรเกี่ยวกับผู้ออกแบบของเราเองไม่ได้ ด้วยเหตุผลเดียวกัน ต่อให้เราค้นพบพวกเขา ก็ไม่ได้ช่วยปลอบใจเช่นกัน ดังนั้น แนวคิดเรื่องพระเจ้า จึงเป็นเรื่องโง่เขลา ถ้าพระเจ้าก็มีพระเจ้าของพระองค์เอง แล้วจะทำอย่างไรต่อ? ต่อให้ยอมรับการมีอยู่ของพระองค์ ก็ไม่ได้แก้ปัญหาอะไรเลย
อาจเป็น ลัทธิสุญนิยม อยู่บ้าง แต่เพราะแบบนั้นจึงไม่รู้สึกถูกมันกดทับจนเกินไป
ไม่เคยมีใครบอกว่าซิมูเลชันต้องรันอยู่บนเซมิคอนดักเตอร์เท่านั้น
ไม่รู้ว่าทำไมถึงใช้แค่ fragment shader ถ้ามี vertex shader สำหรับ heightmap ด้วย ก็น่าจะซูมเข้าไปถึงพื้นผิวได้
เขียนไว้ว่า “written entirely in GLSL fragment shaders” แล้วนั่นคือภาษาอะไร?
ดนตรีค่อนข้างเชย บางทีอาจทำโดย AI ก็ได้
เดิมที John Murphy แต่งขึ้นสำหรับภาพยนตร์ Sunshine ปี 2007
https://en.wikipedia.org/wiki/Sunshine:_Music_from_the_Motio...