2 คะแนน โดย GN⁺ 2024-10-13 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • งาน visualization ของ 3Blue1Brown ถูกเขียนเป็นโค้ดด้วย ไลบรารี Python Manim ที่ Grant Sanderson สร้างขึ้น และวิดีโอนี้ติดตามเวิร์กโฟลว์การผลิตจริงร่วมกับ Ben Sparks
  • Manim แยกออกเป็นเวอร์ชันสำหรับสภาพแวดล้อมการผลิตส่วนตัวของ Grant และ Manim Community ที่เสริมความแข็งแรงด้านเอกสาร เทสต์ และการรับมือ issue โดยผู้เริ่มต้นมักเหมาะกับเวอร์ชัน community
  • การทำงานใกล้เคียงกับการเชื่อม Sublime Text เข้ากับเทอร์มินัล Python เพื่อรันชิ้นโค้ดได้ทันที และใช้ checkpoint paste แคชสถานะกลางทางเพื่อทดลองซ้ำ ๆ
  • เดโมคำนวณ Lorenz attractor ด้วย SciPy จากนั้นผสมเส้นโค้ง จุด updater กล้อง 3D และเอฟเฟกต์ภาพติดตา เพื่อแสดงให้เห็นว่าเงื่อนไขเริ่มต้นที่ใกล้กันค่อย ๆ แยกออกจากกันอย่างไร
  • ฉากสุดท้ายจะตรวจสอบข้อผิดพลาดและความยาวด้วย pre-run ก่อน แล้วจึงเรนเดอร์เป็น MP4 จากนั้นนำเข้าเครื่องมือตัดต่อเพื่อไปสู่กระบวนการผลิตวิดีโอ YouTube

จุดเริ่มต้นของ Manim และสองสายเวอร์ชัน

  • เครื่องมือหลักของแอนิเมชัน 3Blue1Brown คือ ไลบรารี Python Manim ที่ Grant Sanderson สร้างขึ้นเอง
  • Manim ประกอบทุกฉากด้วยการเขียนโปรแกรม และพัฒนามาเป็น เครื่องมือเฉพาะทาง ที่เข้ากับวิธีผลิตงานของ 3Blue1Brown
  • Grant เขียนโค้ด Python ขึ้นช่วงใกล้จบปริญญาตรีเพื่อ visualize ฟังก์ชันคณิตศาสตร์ในรูปแบบการแปลงให้ดีขึ้น และโค้ดนี้เริ่มต้นพร้อมกับวิดีโอแรกของช่อง
  • เมื่อวิดีโอมีมากขึ้น เครื่องมือก็ถูกปรับปรุง และเครื่องมือที่ดีขึ้นก็ทำให้สร้างวิดีโอที่ซับซ้อนยิ่งขึ้นได้ เป็นวงจรต่อเนื่องกัน
  • เอฟเฟกต์ภาพในวิดีโอโฮโลแกรมล่าสุด หากเป็นเมื่อ 2–3 ปีก่อนคงทำได้ยากกว่านี้มาก แต่ด้วย การปรับปรุงเวิร์กโฟลว์ ตลอดหลายปี ทำให้ความยากในการผลิตลดลง

Manim Community และเวอร์ชันส่วนตัวของ Grant

  • Grant เปิดเผยโค้ดที่ใช้ในวิดีโอและตัว Manim เองไว้บน GitHub มาโดยตลอด
  • อย่างไรก็ตาม เมื่อการผลิตวิดีโอควบคู่ไปกับการดูแลโอเพนซอร์ส การตอบ issue และ Pull Request จึงยังไม่เพียงพอ
  • ชุมชนจึง fork repository เพื่อสร้างเครื่องมือที่มั่นคงกว่า และเวอร์ชันนี้คือ Manim Community
    • การตอบ issue และ Pull Request คล่องตัวกว่า
    • มีเทสต์และเอกสารพร้อมกว่า
    • โดยทั่วไปแนะนำสำหรับคนที่เริ่มต้นใหม่
  • ในเดโมของวิดีโอใช้เวอร์ชันที่ Grant ใช้เองโดยตรง
    • ในช่วงไม่กี่ปีที่ผ่านมาได้รับการปรับปรุงให้ interactive มากขึ้นและทำงานเร็วขึ้น
    • ผู้ใช้ที่ให้ความสำคัญกับเอกสารและเทสต์จะเหมาะกับเวอร์ชัน community มากกว่า

วิธีผลิตงานด้วยการเขียนโค้ดแล้วตรวจดูทันที

  • แต่ละฉากของ Manim เขียนเป็น Python class และโค้ดที่จะเรนเดอร์อยู่ในเมธอด construct
  • เพิ่มวัตถุอย่างวงกลม สี่เหลี่ยม และข้อความลงบนหน้าจอ แล้วใช้เมธอด play เพื่อรันแอนิเมชันอย่าง Write, Transform
  • วัตถุส่วนใหญ่โดยค่าเริ่มต้นจะอยู่กลางจอ และเปลี่ยนตำแหน่งด้วยการปรับอย่าง to_edge, shift
  • สภาพแวดล้อมการทำงานของ Grant ใช้ Sublime Text ร่วมกับเทอร์มินัล Python
    • เมื่อคัดลอกบรรทัดโค้ดไปรันในเทอร์มินัล จะสะท้อนผลกับฉากปัจจุบันทันที
    • คีย์ลัดใน Sublime ช่วยอัตโนมัติกระบวนการคัดลอกโค้ดที่เลือกแล้วสั่งรัน
    • เทอร์มินัลเชื่อมอยู่กับฉากปัจจุบัน จึงตรวจดูผลการแก้ไขได้ทันที
  • สำหรับฉากยาว ๆ ความสามารถในการทดลองซ้ำเฉพาะช่วงกลางโดยไม่ต้องรันโค้ดทั้งหมดใหม่ทุกครั้งเป็นเรื่องสำคัญ
    • ตัวอย่างวิดีโอโฮโลแกรมเป็นโค้ด Python ยาวที่สร้าง MP4 ความยาว 4 นาที 30 วินาที
    • ฉากยาวใช้บริบทและตัวแปร local ร่วมกันจำนวนมาก การเก็บไว้ในไฟล์เดียวจึงมีประโยชน์
    • checkpoint paste จะแคชสถานะของฉาก ณ ตำแหน่งคอมเมนต์ที่กำหนด ย้อนกลับไปสถานะนั้น แล้วรันโค้ดที่เลือก
    • วิธีนี้ใกล้เคียงกับเวิร์กโฟลว์ลูกผสมระหว่างไฟล์ข้อความล้วนกับ Jupyter notebook

ความรู้สึกพื้นฐานของแอนิเมชัน Manim

  • หนึ่งในปรัชญาสำคัญของ Manim คือ “อะไรก็สามารถแปลงเป็นอะไรก็ได้”
  • เช่น สามารถสร้างฉากที่แปลงตัวอักษรแรก H ของข้อความ hello world ให้เป็นวงกลมได้
    • แม้ไม่ได้เพิ่มวงกลมเข้าไปในฉากโดยตรง ก็สามารถกำหนดไว้เป็นเป้าหมายของการแปลงได้
    • ข้อความเป็นกลุ่มของอักขระ จึงสามารถดึงอักขระแต่ละตัวออกมาปรับแต่งได้
  • โดยค่าเริ่มต้น Transform ใช้ rate function ที่นุ่มนวล
    • ค่าเริ่มต้นคือ smooth ซึ่งดูเป็นการเคลื่อนไหวที่ลื่นไหลบนพื้นฐาน cubic bezier
    • หากใช้ linear จุดเริ่มและจุดจบจะรู้สึกแข็งกว่า
    • ในกรณีที่ต้องแสดงการดำเนินไปของเวลาทางคณิตศาสตร์ตามจริง จำเป็นต้องใช้ linear
  • การปรับรายละเอียดเหล่านี้สร้างความแตกต่างระหว่าง “ฉากที่ขยับได้” กับ “ฉากที่ดูดี”
  • แอนิเมชันที่คุ้นเคยจากวิดีโอ 3Blue1Brown อย่าง Write ก็เรียกใช้ได้ผ่านฟังก์ชัน built-in ของ Manim

เดโม Lorenz attractor

  • ตัวอย่างหลักของเดโมคือ Lorenz attractor
    • เป็นรูปทรงที่มาจากสมการเชิงอนุพันธ์สามมิติ
    • กำหนดด้วยกฎเชิงกำหนดว่าจุดในพื้นที่ 3D เปลี่ยนไปตามเวลาอย่างไร
    • เมื่อเปลี่ยนเงื่อนไขเริ่มต้นหลายแบบ จะได้ผลลัพธ์ทางภาพที่น่าสนใจ
  • Grant ขอให้ ChatGPT เขียนฟังก์ชัน Python ตอนสร้างส่วนคำนวณทางคณิตศาสตร์
    • ใช้ integrate ของ SciPy และฟังก์ชันแก้ปัญหาค่าเริ่มต้น
    • โค้ดที่สร้างขึ้นอิงกับการเรนเดอร์ด้วย Matplotlib แล้วจึงปรับให้เข้ากับ Manim ภายหลัง
  • สถานะของสมการ Lorenz มีพิกัด x, y, z และแทนด้วยฟังก์ชันที่คำนวณอนุพันธ์ ณ ทุกขณะ
  • ผลลัพธ์จากการแก้เชิงตัวเลขออกมาเป็นค่าเวลาและค่า x, y, z โดย Grant ใส่ wrapper ครอบไว้ให้จัดการง่ายขึ้น
    • การแทนค่าฝั่ง SciPy ปฏิบัติกับ y คล้ายเอาต์พุต ทำให้อาจสับสนได้บ้าง
    • ปรับอาร์เรย์สถานะและรูปแบบ transpose ให้เป็นแบบที่ตนเองใช้งานสะดวก
  • เมื่อกำหนดเงื่อนไขเริ่มต้นเป็น (0, 0, 0) ค่าทั้งหมดออกมาเป็น 0 จึงไม่เหมาะสม และหลังเปลี่ยนพิกัดหนึ่งเป็น 10 ก็เกิดจุดที่น่าสนใจขึ้น
  • ใน Manim ใช้ set_points_as_corners เพื่อเปลี่ยนจุดที่คำนวณได้ให้เป็นเส้นโค้ง
  • ใช้ c2p ซึ่งเป็นชื่อย่อของ coords_to_point เพื่อแปลงระบบพิกัดของแกนให้เป็นระบบพิกัดของ Manim
  • ไวยากรณ์ * ของ Python ใช้เมื่อต้องการคลี่ iterable แล้วส่งเป็นอาร์กิวเมนต์ของฟังก์ชัน
    • ในตัวอย่าง แยกรายการพิกัด x, y, z แล้วส่งให้ฟังก์ชัน

ฉากที่เงื่อนไขเริ่มต้นใกล้กันแยกออกจากกัน

  • แก่นของการ visualize Lorenz attractor คือการที่เงื่อนไขเริ่มต้นที่อยู่ใกล้กันมาก ตอนแรกเคลื่อนที่คล้ายกัน แต่ภายหลังแยกออกจากกัน
  • Grant สร้างรายการเงื่อนไขเริ่มต้น แล้วตั้งค่าให้พิกัด z ต่างกันเล็กน้อยด้วย epsilon
    • ตอนแรกเริ่มจาก 2 เงื่อนไข
    • จากนั้นเพิ่มเป็น 10 เงื่อนไข
  • ใช้ VGroup เพื่อเก็บเส้นโค้งหลายเส้น
    • หากบอกข้อมูลว่าเป็นกลุ่มวัตถุแบบเวกเตอร์ จะช่วยให้เรนเดอร์ได้เร็วขึ้น
  • ที่ปลายเส้นโค้งแต่ละเส้นติด glow dot ไว้
    • GlowDot เป็นวัตถุที่สร้างไว้เพื่อแสดงจุดที่เคลื่อนไหวให้น่าดูทางสายตา
    • แต่ละจุดมี updater ติดอยู่ เพื่อย้ายไปยังปลายเส้นโค้งในทุกเฟรม
  • zip ใช้เมื่อวนผ่านรายการที่สัมพันธ์กันแบบขนาน เช่น จุดกับเส้นโค้ง หรือสถานะกับสี
    • หากความยาวของสองรายการไม่เท่ากัน จะหยุดเมื่อถึงจุดสิ้นสุดของฝั่งที่สั้นกว่า
    • ใช้ color_gradient สร้างสีจำนวนเท่ากับจำนวนสถานะเพื่อให้ความยาวตรงกัน
  • เมื่อวาดเส้นโค้งด้วย ShowCreation หากใช้ smoothing ค่าเริ่มต้น การดำเนินไปของเวลาจริงอาจถูกบิดเบือน ดังนั้นในส่วนที่ต้องแสดงพลวัตตามจริงจึงใช้ linear rate function
  • เงื่อนไขเริ่มต้นที่ใกล้กันในช่วงแรกแทบจะเคลื่อนไปด้วยกัน แต่เมื่อเวลาผ่านไปจะกระจายเหมือนอยู่คนละตำแหน่งโดยสิ้นเชิง
  • Lorenz attractor ถูก扱เป็น strange attractor ที่ไม่ใช่เพียงจุดหรือคาบ แต่ถูกดึงเข้าสู่รูปทรงเฉพาะ ขณะเดียวกันตำแหน่งที่แน่นอนก็ไวต่อเงื่อนไขเริ่มต้น

โค้ดอ้อมในโหมด interactive และเอฟเฟกต์ฉาก

  • ระหว่างเดโมมีโค้ด “ต้องคำสาป” อย่าง globals().update(locals()) ปรากฏขึ้น
  • โค้ดนี้เป็นทางเลี่ยงชั่วคราวเพื่อหลบปัญหาในสภาพแวดล้อม IPython embed ของ Manim ที่ฟังก์ชันมองไม่เห็นตัวแปรในสโคปภายนอก
    • ในสคริปต์ Python ทั่วไป โค้ดเดียวกันทำงานได้ปกติ
    • ในสภาพแวดล้อม interactive แบบ embedded ของ Manim อาจเกิด NameError
    • จึงเลี่ยงปัญหาโดยใส่ตัวแปร local เข้าไปในพจนานุกรมตัวแปร global
  • หากเป็นโค้ดไลบรารีจริง วิธีนี้ไม่เหมาะสม แต่ในเซสชัน interactive ชั่วคราวสำหรับพัฒนาฉาก ความเสี่ยงค่อนข้างน้อยกว่า
  • วิธีที่ดีกว่าคือทำให้ฟังก์ชันรับตัวแปรที่ต้องใช้เป็นอาร์กิวเมนต์อย่างชัดเจน
  • หากต้องการให้เส้นโค้งค่อย ๆ หายไปตามเวลา สามารถใช้ FadeOut ได้
    • เมื่อปรับ run_time ของ play ให้ตรงกับ evolution time เส้นโค้งจะค่อย ๆ โปร่งใสลงตลอดช่วงเวลานั้น
  • เอฟเฟกต์ทิ้งภาพติดตาหลังจุดทำได้ด้วย TracingTail
    • สร้างหางที่ตามจุดหนึ่งจุดได้
    • หากเพิ่ม time_traced จาก 1 วินาทีเป็น 3 วินาที จะเห็นหางจากช่วงเวลาที่ยาวขึ้น
    • เมื่อติดหางให้จุดทั้ง 10 จุด จะเห็นการกระจายของหลายวิถีได้ชัดเจนขึ้น

กล้อง 3D และการจัดการสมการ

  • ฉาก Manim โดยพื้นฐานสามารถมีพิกัด 3D ได้ แต่ฉากส่วนใหญ่ของ 3Blue1Brown ถูกจัดให้ดูเหมือนกระดาน 2D ด้วยเหตุผลด้านการสอน
  • Lorenz attractor ต้องใช้ 3D จึงเพิ่มแกน 3D เข้าไป
  • ในจอ 3D เอฟเฟกต์ที่กล้องหมุนหรือเคลื่อนที่ช้า ๆ มีประโยชน์ต่อการคงความรู้สึกเชิงลึก
    • Grant ใช้คีย์ลัดที่บันทึกตำแหน่งกล้องปัจจุบันลงคลิปบอร์ด
    • ใช้รูปแบบ frame.animate.reorient(...) เพื่อทำแอนิเมชันเฟรมกล้องไปยังตำแหน่งเฉพาะ
  • สามารถเพิ่มสมการเป็นวัตถุ LaTeX ในฉากได้
    • หากใช้ MathPix จะ OCR สมการบนหน้าจอแล้วได้เป็น LaTeX หรือ SVG
    • หากต้องการตรึงสมการไว้กับหน้าจอในฉาก 3D ให้ใช้ fix_in_frame
  • ตัวแปรบางตัวในสมการ LaTeX สามารถใส่สีได้
    • ในตัวอย่างกำหนดสีต่างกันให้ x, y, z
    • ความสามารถในการแยกข้อความออกเป็นองค์ประกอบทางคณิตศาสตร์เพื่อเน้นหรือแปลง มีประโยชน์ต่อการอธิบายคณิตศาสตร์
  • Manim ยังมี transform พิเศษที่จับคู่ตามสตริงด้วย
    • พจน์อย่าง A^2, B^2 จะเลื่อนไปยังตำแหน่งของสตริงเดียวกันในบรรทัดถัดไปอย่างเป็นธรรมชาติ
    • การจับคู่ตามสตริงยังสร้างเอฟเฟกต์แบบแอนิเมชัน anagram ที่ส่งตัวอักษรไปยังตำแหน่งที่สอดคล้องกันได้
  • สามารถใช้แอนิเมชันอย่าง flash around, indicate เพื่อเน้นอักขระหรือพจน์เฉพาะในสมการ

การเรนเดอร์และเวิร์กโฟลว์การผลิตจริง

  • เมื่อพอใจกับฉากแล้ว จะใช้คำสั่ง Manim ระบุไฟล์ Python และชื่อฉากเพื่อเรนเดอร์
  • pre-run คือขั้นตอนการไล่ดูภาพรวมก่อนนำแอนิเมชันทั้งชุดไปใช้จริง
    • ประเมินความยาวทั้งหมด
    • ช่วยจับข้อผิดพลาดล่วงหน้า แทนที่จะเจอระหว่างเรนเดอร์ช่วงกลาง
  • W เป็นตัวเลือกสำหรับเขียนเป็นไฟล์ และตัวเลือกเกี่ยวกับ Finder ใช้สำหรับแสดงไฟล์ผลลัพธ์ใน macOS Finder
  • ผลลัพธ์สุดท้ายถูกเรนเดอร์เป็นไฟล์ MP4
    • Grant มักเรนเดอร์เป็น 4K จึงอาจใช้เวลานานกว่า
    • ไฟล์ที่เรนเดอร์แล้วจะถูกนำเข้าเครื่องมือตัดต่อเพื่อแก้ไขต่อ
  • วิธีใช้ Manim แบบเดิมส่วนใหญ่คือวนซ้ำระหว่างการเรนเดอร์ฉากจาก command line แล้วเปิดดู MP4
  • ต่อมาในช่วงใกล้เคียงกับการเปลี่ยนมาใช้ implementation แบบ OpenGL เกิดเวิร์กโฟลว์บน interactive shell ทำให้เปลี่ยนเป็นการไฮไลต์โค้ดแล้วดูผลลัพธ์ทันที
  • เวิร์กโฟลว์เฉพาะของ Grant พึ่งพาสคริปต์ของ Sublime Text และส่วนขยาย Terminus
    • ใน text editor อื่นก็สามารถเลียนแบบพฤติกรรมคล้ายกันได้
    • สภาพแวดล้อมตระกูล Visual Studio ก็สามารถสร้าง flow รูปแบบเดียวกันได้
  • เมื่อต้องการค้นหาฟีเจอร์ สามารถใช้ฉากตัวอย่าง โฟลเดอร์ animation ของไลบรารี และ GitHub repository 3b1b/videos ที่มีโค้ดวิดีโอเก่า ๆ
  • Grant ชอบการเติมโค้ดอัตโนมัติแบบเรียบง่ายมากกว่า Copilot
    • ใน Manim เขามักรู้อยู่แล้วว่าต้องการพฤติกรรมแบบใด
    • การสื่อคำขอเป็นโค้ดให้ความรู้สึกเป็นธรรมชาติกว่าการบอกเป็นภาษาอังกฤษ

1 ความคิดเห็น

 
GN⁺ 2024-10-13
ความคิดเห็นจาก Hacker News
  • 3B1B กำลังทำงานที่ยอดเยี่ยมจริง ๆ
    ส่วนตัวแล้วผมได้รับประโยชน์มหาศาลจากวิดีโอ YouTube ของเขา และอยากให้โรงเรียนมัธยมหรือคณะวิศวกรรมศาสตร์สอนคณิตศาสตร์กันแบบนี้

    • ผมก็รู้สึกคล้ายกันนะ เพียงแต่ว่าสำหรับหลายคน คณิตศาสตร์อาจเป็นสิ่งที่เริ่มชื่นชมได้จริง ๆ ก็ตอนอายุมากขึ้นหน่อย แล้วถึงถูกดึงเข้าหาช่องแบบนี้
  • https://sinerider.com/ ก็น่าดูเหมือนกัน
    เป็นเกมที่ทำโดยเพื่อนคนหนึ่งซึ่งบางครั้งช่วยงาน 3B1B ของ Grant Sanderson เป็นเกมการศึกษาคณิตศาสตร์ที่ยอดเยี่ยม คล้าย LineRider ที่ให้สร้างแทร็ก แต่สร้างด้วย สมการ
    ทั้ง 3B1B และ SineRider มีอิทธิพลต่อความเข้าใจเชิงสัญชาตญาณของผมเรื่องการประกอบฟังก์ชันมากกว่าสิ่งอื่นใด

  • ฉากที่เขาเจอ บั๊ก ของเอนจินเรนเดอร์แบบเรียลไทม์ แล้วหาวิธีเลี่ยงได้ด้วยนั้นน่าประทับใจมาก
    https://youtu.be/rbu7Zu5X1zI?feature=shared&t=693

    • ดูเหมือนว่าเขาน่าจะรู้อยู่แล้วถึงข้อจำกัดของ ลอจิกการเรนเดอร์ ใหม่ที่กำลังทำอยู่ในแบ็กเอนด์ และรู้วิธีเลี่ยงแบบระดับสูงง่าย ๆ อยู่แล้วด้วย
      ถึงอย่างนั้นก็ยังเป็นงานที่น่าประทับใจ
    • ในบริษัทใหญ่ ๆ วิศวกรแบบวางเพลิงเองแล้วดับเพลิงเองมักจะโดดเด่นแบบนี้แหละ เพราะได้แก้บั๊กที่ตัวเองสร้างขึ้นในที่ที่เห็นได้ชัดมาก
    • เขารู้เรื่องบั๊กนั้นอยู่แล้วก็จริง แต่การพัฒนาซอฟต์แวร์นี้ไม่ใช่งานหลักของเขา งานหลักคือการทำวิดีโอ
      การที่เขารู้ตำแหน่งและสาเหตุ แล้วคิดวิธีเลี่ยงแบบไลฟ์ได้ แปลว่าเขาลงเวลาไปกับการปรับปรุงเครื่องมือของตัวเอง และไม่ได้ทำแค่นาน ๆ ครั้ง แต่ทำอย่างจริงจัง
      ผมก็ยังมองว่าเท่อยู่ดี
  • ผมสงสัยว่า Python interactive REPL ที่อยู่มุมขวาล่างทำงานอย่างไร
    แก้ไข: ดูเหมือนจะเป็นเวิร์กโฟลว์ที่ปรับแต่งเองทั้งหมด: https://github.com/3b1b/videos?tab=readme-ov-file#workflow

    • ผมว่าเขาเป็นหนึ่งในครีเอเตอร์ดี ๆ ไม่กี่คนบน YouTube ที่ยังไม่ถูกทำให้เป็นเชิงพาณิชย์เต็มตัว นึกถึง Mark Rober เลย
  • ตลกดีที่พอได้เห็นหน้า หลังจากฟังแต่เสียงมาหลายปีโดยไม่เคยเห็นหน้า จู่ ๆ ก็รู้สึกเหมือนตกลงไปกลาง uncanny valley

    • ครีเอเตอร์หลายคนที่ผมดู ดูเหมือนช่วงนี้เริ่มเปิดหน้าออกกล้องกันแล้ว ตัวอย่างใหญ่ ๆ ที่นึกออกทันทีคือพิธีกรของ Real Engineering
      ในวิดีโอล่าสุดบางอัน เขาทำตัวเหมือนพิธีกร ผู้สัมภาษณ์ และผู้บรรยาย
      กรณีที่ครีเอเตอร์มารับหน้าที่ทำบางวิดีโอแทนแบบ veratasium ก็รู้สึกแปลกเหมือนกัน
      ถ้าจะนับการเปิดตัวครั้งใหญ่จริง ๆ ก็คงเป็น AvE
    • ถ้าดูสุนทรพจน์ในพิธีจบการศึกษาของเขา อาจจะยิ่งประหลาดใจกว่านี้ ตัวอย่าง: https://youtu.be/z7GVHB2wiyg
    • เขาเริ่มเปิดเผยใบหน้าในปี 2020 เพื่อช่วยให้ผู้คนยังรักษา ความรู้สึกเชื่อมโยงแบบมนุษย์ ระหว่างช่วงล็อกดาวน์
      ตอนนั้นคอมเมนต์จำนวนมากในวิดีโอพูดถึงชื่อช่องและไอคอน และจริง ๆ แล้วตาข้างหนึ่งของเขาก็มีลักษณะแบบนั้น
    • แปลกใจที่คุณไม่เคยเห็น เพราะเมื่อก่อนเขาเคยไปโผล่ในวิดีโอของ Matt Parker และ Brady Haran (Numberphile) หลายครั้ง
      แต่ถึงอย่างนั้น แม้ในหมู่ช่องเฉพาะทางแบบนี้ รสนิยมก็ดูจะแตกต่างกันพอสมควร
    • โดยเฉพาะเสียงบรรยายมักมีคุณภาพเสียงดีกว่าเสียงของคนที่ถ่ายแบบสบาย ๆ ความต่างเล็ก ๆ นั้นเลยอาจทำให้รู้สึกแปลกได้ไม่น้อย
  • เสียง ของเขาดีมากจริง ๆ สงบและฟังสบาย ถึงเปิดไว้ข้าง ๆ ตอนทำงานบ้านก็ยังได้เรียนรู้อะไรบางอย่าง
    ครีเอเตอร์แบบนี้สมควรได้รับการยอมรับ

    • เสียงแบบนั้นน่าจะมีผลต่อความสำเร็จไม่น้อย ไม่ว่าจะเป็น YouTube หรือพอดแคสต์ก็ตาม
    • คนนี้เป็น นักการศึกษา โดยกำเนิด คำว่า “ครีเอเตอร์คอนเทนต์” อย่างเดียวไม่พอจะครอบคลุมคุณค่าทางสังคมของเขา
    • สำหรับรสนิยมของผม เสียงขึ้นจมูกแรงเกินไป ยังไงไม่รู้ มันทำให้ความเคร่งครัดที่อยู่ในเนื้อหาดูลดลงไปนิดหนึ่ง
  • วิดีโอโฮโลแกรม ล่าสุดจัดว่าเป็นหนึ่งในวิดีโอ YouTube ที่มีคุณภาพดีที่สุดเท่าที่ผมเคยดูมา

  • ถ้าใช้เครื่องมือนี้ทำวิดีโออธิบาย อัลกอริทึม bridging[1] ก็คงดีมาก
    ผมเป็นแฟนวิธีที่อัลกอริทึมนี้ถูกใช้ในกระบวนการประชาธิปไตยแบบมีส่วนร่วมผ่านเครื่องมืออย่าง Pol.is มาตั้งแต่ปี 2016 และอยากช่วยเพิ่มความเข้าใจเกี่ยวกับคณิตศาสตร์ที่เป็นพื้นฐานของมัน
    ถ้าผมรู้จัก Manim ตอนที่มี Summer of Math Exposition[2] ผมคงกระโดดลงไปทำแน่นอน
    [1]: https://bridging.systems/
    [2]: https://some.3b1b.co/

    • ผมไม่รู้เลยว่ามีของแบบนี้อยู่ ขอบคุณสำหรับลิงก์ ตอนนี้กำลังอ่านเปเปอร์อยู่ และถ้ามีคนทำวิดีโออธิบายก็อยากดูแน่นอน
      เว็บไซต์ของผมอยู่ในโปรไฟล์ ถ้าวันหนึ่งคุณทำขึ้นมา ช่วยส่งลิงก์มาทางโซเชียลมีเดียด้วยนะ
    • อยากรู้ว่าจริง ๆ แล้วมี คณิตศาสตร์ อะไรอยู่ในนั้น ผมตามลิงก์ [1] ไปแล้ว แต่แทบไม่เจอเนื้อหาทางคณิตศาสตร์เลย
    • ถ้าทำก็น่าจะดูนะ ผมเป็นแฟนของ pol.is
  • ลิงก์ Manim: https://github.com/3b1b/manim

  • ผมทึ่งกับ ปริมาณงานผลิต ที่ใส่ลงไปในวิดีโอแต่ละอันของเขา มหาศาลจริง ๆ สมควรได้ปุ่ม Play ของ YouTube

    • นั่นแหละคือส่วนที่น่าเสียดายของ YouTube ถ้าจะทำวิดีโอคุณภาพสูง ต้องใช้แรงงานมากอย่างบ้าคลั่ง และมากกว่าการเขียนบล็อกดี ๆ สักบทความหลายหลัก
      เช่นเดียวกับบล็อก ถ้าไม่มีโชคช่วย ความพยายามจำนวนมากก็สูญเปล่า แต่บล็อกอย่างน้อยยังมีโอกาสถูกเห็นหลายครั้ง อาจขึ้นหน้าแรก HN หรือแพร่บน X หรือที่อื่น ๆ ได้ แม้ในแพลตฟอร์มเดียวกันก็มักมีโอกาสหลายรอบ
      ในทางกลับกัน บน YouTube อัลกอริทึมแทบจะตัดสินแค่ครั้งเดียว ถ้ายังไม่มีผู้ติดตามมหาศาลอยู่แล้ว ระบบจะสุ่มโชว์วิดีโอให้คนไม่กี่คนดู และถ้าพวกเขาไม่ตอบสนอง ก็จบแค่นั้น