ภาพยนตร์สั้นโค้ด 256 ไบต์ ‘Bitwise Liminal’
(killedbyapixel.github.io)- Bitwise Liminal เป็นภาพยนตร์สั้นบนเว็บที่สร้างด้วยโค้ดขนาด 256 ไบต์ และเป็นผลงานที่นำเสนอในงาน Lovebyte Party 2024
- เรื่องราวเริ่มต้นจากการตั้งต้นว่าเจอ เทป VHS เก่าในงานขายของมือสองหน้าบ้าน โดยมีป้ายเขียนว่า “Bitwise Liminal”
- เมื่อเปิดเล่นเทป กลับเห็นเพียง สัญญาณรบกวนแบบภาพนิ่ง เท่านั้น แต่หลังจากนั้นผู้เล่าก็เริ่มฝันที่ชวนกระวนกระวายและหมกมุ่นกับเทปนั้น
- หลังจากสืบค้น ก็พบว่าเทปดังกล่าวเป็น ข้อมูลสำรองดิจิทัล และข้อมูลที่กู้คืนด้วยซอฟต์แวร์เฉพาะทางคือโปรแกรมขนาด 256 ไบต์
- เมื่อลองเปิดโปรแกรมในเว็บเบราว์เซอร์ ก็ปรากฏภาพที่คล้ายกับความฝันของผู้เล่า และผู้เล่าก็ไม่อาจหลับได้อีกต่อไป เอาแต่มองสิ่งนั้นต่อไป
ภาพยนตร์สั้นที่สร้างด้วยโค้ด 256 ไบต์
- Bitwise Liminal เป็นผลงานสั้นแนวโค้ดที่มีคำโปรยว่า “A Short Film in 256 Bytes of Code”
- มีการระบุว่าเป็นผลงานที่นำเสนอใน Lovebyte Party 2024
- ใช้รูปแบบการเล่าเรื่องว่าหลังจากพบ เทป VHS เก่า ก็มีการกู้ข้อมูลที่ซ่อนอยู่ภายในและนำไปรันบนเว็บเบราว์เซอร์
เรื่องเล่าจากเทป VHS สู่เบราว์เซอร์
- ผู้เล่าพบเทป VHS เก่าที่มีคำว่า “Bitwise Liminal” เขียนด้วยปากกา Sharpie ในงานขายของมือสองหน้าบ้าน
- เมื่อเปิดเทป ภาพบนจอมีเพียง สัญญาณรบกวนแบบภาพนิ่ง
- หลังจากนั้นก็เริ่มฝันที่ชัดเจนและชวนไม่สบายใจ พร้อมกับนึกถึงเทป VHS ประหลาดนั้นอยู่เรื่อย ๆ
- จากการสืบค้นพบว่าเทปนั้นเป็น ข้อมูลสำรองดิจิทัล และจึงกู้ข้อมูลออกมาด้วยซอฟต์แวร์เฉพาะทาง
- ข้อมูลที่กู้คืนมาเป็นโปรแกรมขนาด 256 ไบต์ และผู้เล่าก็เปิดมันในเว็บเบราว์เซอร์ด้วยมือที่สั่นเทา
- ภาพที่เห็นในเบราว์เซอร์ทำให้นึกถึงความฝันที่ผู้เล่าเคยฝันไว้ และตอนจบก็ลงเอยด้วยการไม่จำเป็นต้องหลับอีกต่อไป ได้แต่นั่งมองมันต่อไป
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News
อันนี้น่าประทับใจและดูเหมือนฉากในหนังจริง ๆ แต่พอคิดว่ามันยัดลงไปใน 256 ไบต์ ได้ ก็ทำให้กลับมามองใหม่ว่าสิ่งที่เราใช้กันทุกวันมันบวมแค่ไหน และเบราว์เซอร์ปัจจุบันทรงพลังเพียงใด
ถึงอย่างนั้น เดโม 8K อย่าง "the Sheep and the Flower" ที่เพิ่งมีคนแชร์บน HN https://news.ycombinator.com/item?id=39121101 หรือ "One of those days" https://www.pouet.net/prod.php?which=75790 / วิดีโอ YouTube https://youtu.be/8T_Um-cw0Wc ที่รีเมกจากวิดีโอ YouTube จริง https://www.youtube.com/watch?v=R1NagZN2kjY นั้นน่าทึ่งกว่า
แม้จะใหญ่กว่าหนัง 256 ไบต์มาก แต่ก็ถ่ายทอดกราฟิกและเรื่องราวได้มากกว่ามาก
มี เวอร์ชันใส่คอมเมนต์ ที่อธิบายแต่ละส่วนให้คนธรรมดาอย่างเราบ้างไหม?
https://github.com/callumlocke/bitwise-liminal-expanded
โพสต์ที่เกี่ยวข้องเมื่อเร็ว ๆ นี้: Cross My Heart – A Frogger Demake in 256 Bytes of HTML/JS - https://news.ycombinator.com/item?id=39336677 - กุมภาพันธ์ 2024, 44 ความคิดเห็น
ปกติการส่งโพสต์ต่อเนื่องจะถูกลดน้ำหนัก(https://hn.algolia.com/?dateRange=all&page=0&prefix=true&query=follow-up%20downweight&sort=byDate&type=comment) แต่ครั้งนี้ (a) ผู้ส่งคือผู้เขียนเอง และ (b) ผลงานยอดเยี่ยม จึงเปลี่ยนเป็น Show HN ตามเกณฑ์ของ https://news.ycombinator.com/showhn.html แล้วปล่อยไว้ตามเดิม
ถ้านี่เรียกว่า “หนังสั้น” งั้นก็แปลว่าเมื่อกี้ผมอ่านนิยายเรื่องใหม่ของตัวเองจบแล้ว
t+=.1เป็นt+=.01และเปลี่ยน9986เป็น9e3ก็ยังทำ ลูปประมาณ 45 วินาทีภายใน 256 ไบต์ ได้อยู่ เพียงแต่บางส่วนด้านล่างของภาพจะถูกตัดออกเป็นเรื่องเล็กน้อย แต่ผมเพิ่งเคยเห็นการ ฝัง svg ไว้ใน canvas เพื่อใช้แค่เหตุการณ์
onloadครั้งแรก ในบริบทนี้ canvas ถูกอ้างถึงด้วย bare id ซึ่งแปลกแต่ก็เจ๋งดีscriptนิดเดียวถ้าใส่ในเหตุการณ์
canvas onclickอาจประหยัดพื้นที่ได้อีกเล็กน้อยมันสุดยอดมากตรงที่เป็น 256 ไบต์ล้วน ๆ จริง ๆ ไม่ใช่แบบเกมแจม 1KB ทั่วไปที่ส่งผลลัพธ์หลัง zip, gzip และประมวลผลต่อท้าย แล้วไม่นับ assets ไว้ในเกณฑ์ ขอคารวะ
สำหรับขนาดที่เล็กกว่านี้ก็มีทางเลือกอื่น แต่เดโม 256 ไบต์โดยทั่วไปเล็กเกินกว่าจะใส่ตัวคลายบีบอัดได้ อย่างไรก็ดี ผมเห็นด้วยเรื่องไม่นับ assets เข้าเกณฑ์
import gameassetsด้วยไหม?แถมใน Python นั้น
import GOTOใช้งานได้ด้วย :)งานของคนนี้ทำให้ทึ่งได้เสมอ คำอธิบายเครื่องมือที่ใช้ดูได้ที่นี่: https://frankforce.com/tools/
งานไมโครแอนิเมชันบนบล็อก Dwitter อยู่ที่นี่: https://www.dwitter.net/u/KilledByAPixel
คำอธิบายบน YouTube: https://www.youtube.com/watch?v=HV7Dmo277Rs
พอเห็นอะไรแบบนี้ก็ทำให้คิดว่า ชีวิตทั้งมวลอาจถูก เข้ารหัสไว้ใน DNA ได้จริง ๆ เคยอ่านบทความหนึ่งบอกว่า ถ้าบีบอัดจีโนมมนุษย์ด้วย gzip จะเหลือประมาณ 4MB ซึ่งตามสัญชาตญาณแล้วดูเล็กเกินไปสำหรับการแทนมนุษย์คนหนึ่ง
แต่ถ้าแค่ 256 ไบต์ยังสร้างพฤติกรรมแบบนี้ได้ ก็ชัดเจนว่าสัญชาตญาณของผมน่าจะผิด
2^(3.2 * 10^7)แบบ สมมติว่ามี ตัวคลายการบีบอัด ที่ตีความได้ว่า มีเพียงเศษเสี้ยวของเศษเสี้ยวของเศษเสี้ยวของเศษเสี้ยวจากสถานะเหล่านั้นเท่านั้นที่เป็นสิ่งมีชีวิตที่ทำงานได้บนโลกมีสปีชีส์ประมาณ 1 ล้านล้านชนิดhttps://www.nsf.gov/news/news_summ.jsp?cntn_id=138446 สมมติว่าสปีชีส์ที่มีศักยภาพแต่ยังไม่มีอยู่ในปัจจุบันมีมากกว่านั้นอีก 1 ล้านล้านเท่า และแต่ละสปีชีส์มีความแปรผัน 1 ล้านล้านแบบ ต่อให้เผื่อเหลือเผื่อขาดคูณเพิ่มอีก 1 ล้านล้าน ตาม Wolfram Alphahttps://www.wolframalpha.com/input?i2d=true&i=Divide%5BPower%5B2%2C3.2Power%5B10%2C7%5D%5D%2Ca+trillion+trillion+trillion+trillion%5D++a+percent+of+a+percent+of+a+percent+of+a+percent ก็ยังเหลือส่วนเผื่อความคลาดเคลื่อนประมาณ 10 ยกกำลัง 10 ล้าน
คำว่า “ประมาณ” ในที่นี้หมายถึงประมาณแบบที่บอกว่าเทือกเขาคล้ายกับกระดาษทรายหยาบ ๆ แต่ตัวเลขมันกลมเกินไปจนอดปัดไม่ได้
https://www.nature.com/articles/d41586-024-00327-x
อีกอย่าง ถ้ากลับไปดูเซต Mandelbrot ก็จะเห็นว่ากระบวนการที่ค่อนข้างเรียบง่ายก็มีข้อมูลมหาศาลอยู่ภายในได้
สุดท้าย หากจะลดความน่าทึ่งของ 256 ไบต์นี้ลงสักหน่อย ก็ต้องคำนึงด้วยว่ามันต้องอาศัยฮาร์ดแวร์และซอฟต์แวร์ที่รองรับ 256 ไบต์นี้คงไม่สามารถสร้างภาพลวงตาแบบเดียวกันบน C64 ได้
เห็นแล้วพัดลมระบบของ 5560U ผมเร่งขึ้นไป 100% เลย :-)
ใครช่วยอธิบายได้ไหมว่าเรากำลังดูอะไรในหนังสั้นเรื่องนี้? ผมเห็นแอนิเมชันขาวดำ มีกล่องเคลื่อนที่กับเส้นที่มีสัญญาณรบกวนปนอยู่ แต่ไม่ค่อยเข้าใจความหมาย
จุดที่น่าทึ่งคือ ขนาดไฟล์ มันเล็กแค่ไหน แค่ 256 ไบต์
ถ้าจะอธิบายว่ามันสุดยอดแค่ไหน หนังทั้งเรื่องมีขนาดเล็กกว่าสกรีนช็อตของเฟรมแรกประมาณ 58 เท่า ในฟลอปปีดิสก์ 1.44MB แผ่นเดียว ใส่หนังเรื่องนี้ได้มากกว่า 5,000 ครั้งแล้วยังเหลือที่ว่าง
โดยทั่วไป วิดีโอประกอบด้วยภาพหลายภาพ และข้อมูลที่บอกว่าส่วนไหนของภาพควรย้ายไปที่ไหน
แต่หนังเรื่องนี้ไม่มีข้อมูลภาพเลย มีแค่คณิตศาสตร์เล็กน้อยที่วาดกล่องที่มีความสว่างต่างกันไปตามเวลา