1 คะแนน โดย GN⁺ 2024-02-12 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • 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 ความคิดเห็น

 
GN⁺ 2024-02-12
ความคิดเห็นจาก 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 ซึ่งแปลกแต่ก็เจ๋งดี

    • กลายเป็นว่าการใส่ไว้ใน svg onload นั้นเล็กกว่าการใช้แท็ก script นิดเดียว
      ถ้าใส่ในเหตุการณ์ canvas onclick อาจประหยัดพื้นที่ได้อีกเล็กน้อย
    • สงสัยว่าทำไมถึงอนุญาตให้ทำแบบนั้นได้ ไม่รู้มาก่อนว่า JavaScript ทำแบบนั้นได้
  • มันสุดยอดมากตรงที่เป็น 256 ไบต์ล้วน ๆ จริง ๆ ไม่ใช่แบบเกมแจม 1KB ทั่วไปที่ส่งผลลัพธ์หลัง zip, gzip และประมวลผลต่อท้าย แล้วไม่นับ assets ไว้ในเกณฑ์ ขอคารวะ

    • อันนี้ก็เจ๋ง: https://linusakesson.net/scene/a-mind-is-born/
    • เป็นความท้าทายสุดบ้าคลั่งที่แทบเป็นไปไม่ได้ และเมื่อมันทำงานได้จริงก็ดู เหมือนเวทมนตร์
    • การใส่ตัวคลายบีบอัดไว้ในเอนทรีทำได้เสมอ PNG bootstrap เป็นที่นิยมในเดโมซีน JavaScript มานานพอสมควรแล้ว และเริ่มเห็นผลกับเดโมขนาด 1KB ขึ้นไป
      สำหรับขนาดที่เล็กกว่านี้ก็มีทางเลือกอื่น แต่เดโม 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

    • “คำอธิบายบน YouTube” นั้นจริง ๆ แล้วไม่ได้อธิบายว่า Dweet ทำงานอย่างไร งานเองน่าทึ่งและดูเพลินมาก และก็อยากฟังเขาสาธิตด้วยตัวเอง แต่สำหรับคนที่มองหา คำอธิบายกลไกการทำงานอย่างละเอียด วิดีโอนั้นคงทำให้ผิดหวัง
  • พอเห็นอะไรแบบนี้ก็ทำให้คิดว่า ชีวิตทั้งมวลอาจถูก เข้ารหัสไว้ใน DNA ได้จริง ๆ เคยอ่านบทความหนึ่งบอกว่า ถ้าบีบอัดจีโนมมนุษย์ด้วย gzip จะเหลือประมาณ 4MB ซึ่งตามสัญชาตญาณแล้วดูเล็กเกินไปสำหรับการแทนมนุษย์คนหนึ่ง
    แต่ถ้าแค่ 256 ไบต์ยังสร้างพฤติกรรมแบบนี้ได้ ก็ชัดเจนว่าสัญชาตญาณของผมน่าจะผิด

    • 4MB ก็เพียงพอที่จะแยกแยะสถานะที่เป็นไปได้ 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 ล้าน
      คำว่า “ประมาณ” ในที่นี้หมายถึงประมาณแบบที่บอกว่าเทือกเขาคล้ายกับกระดาษทรายหยาบ ๆ แต่ตัวเลขมันกลมเกินไปจนอดปัดไม่ได้
    • การคิดว่า DNA เพียงอย่างเดียวสามารถทำสำเนาสิ่งมีชีวิตได้ เป็นความเข้าใจผิด การก่อรูปของสิ่งมีชีวิตใหม่ยังต้องอาศัยฐานชีวภาพของตัวอ่อนที่ส่งต่อมาจากพ่อแม่ หรือก็คือโครงสร้างพื้นฐานทางชีววิทยาด้วย
    • เมื่อไม่กี่วันก่อนมีบทความหนึ่งบน HN ที่คัดค้านมุมมองที่มอง DNA เป็นโค้ด และมองเซลล์เป็นคอมพิวเตอร์หรือเครื่องจักร
      https://www.nature.com/articles/d41586-024-00327-x
    • ชีวิตที่เกิดจาก DNA เพียงอย่างเดียวในสุญญากาศก็น่าจะค่อนข้างน่าเบื่อ ชีวิตทั้งมวลต้องมี สภาพแวดล้อม ให้โต้ตอบด้วย และ ณ ตอนนี้สภาพแวดล้อมแบบนั้นมีอยู่เพียงหนึ่งเดียว ซึ่งของที่มีเพียงหนึ่งเดียวนั้นบีบอัดได้ไม่ดี
      อีกอย่าง ถ้ากลับไปดูเซต Mandelbrot ก็จะเห็นว่ากระบวนการที่ค่อนข้างเรียบง่ายก็มีข้อมูลมหาศาลอยู่ภายในได้
      สุดท้าย หากจะลดความน่าทึ่งของ 256 ไบต์นี้ลงสักหน่อย ก็ต้องคำนึงด้วยว่ามันต้องอาศัยฮาร์ดแวร์และซอฟต์แวร์ที่รองรับ 256 ไบต์นี้คงไม่สามารถสร้างภาพลวงตาแบบเดียวกันบน C64 ได้
    • อาจเป็น seed ของตัวสร้างเลขสุ่ม ขนาด 4MB ก็ได้
  • เห็นแล้วพัดลมระบบของ 5560U ผมเร่งขึ้นไป 100% เลย :-)

  • ใครช่วยอธิบายได้ไหมว่าเรากำลังดูอะไรในหนังสั้นเรื่องนี้? ผมเห็นแอนิเมชันขาวดำ มีกล่องเคลื่อนที่กับเส้นที่มีสัญญาณรบกวนปนอยู่ แต่ไม่ค่อยเข้าใจความหมาย

    • นั่นแหละคือหนัง
      จุดที่น่าทึ่งคือ ขนาดไฟล์ มันเล็กแค่ไหน แค่ 256 ไบต์
      ถ้าจะอธิบายว่ามันสุดยอดแค่ไหน หนังทั้งเรื่องมีขนาดเล็กกว่าสกรีนช็อตของเฟรมแรกประมาณ 58 เท่า ในฟลอปปีดิสก์ 1.44MB แผ่นเดียว ใส่หนังเรื่องนี้ได้มากกว่า 5,000 ครั้งแล้วยังเหลือที่ว่าง
      โดยทั่วไป วิดีโอประกอบด้วยภาพหลายภาพ และข้อมูลที่บอกว่าส่วนไหนของภาพควรย้ายไปที่ไหน
      แต่หนังเรื่องนี้ไม่มีข้อมูลภาพเลย มีแค่คณิตศาสตร์เล็กน้อยที่วาดกล่องที่มีความสว่างต่างกันไปตามเวลา