3 คะแนน โดย GN⁺ 2025-08-24 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • Manim คือ เอนจินแอนิเมชันแบบอิงการเขียนโปรแกรมที่แม่นยำ สำหรับการสร้างวิดีโออธิบายคณิตศาสตร์
  • เป็นโปรเจ็กต์ที่ผู้สร้าง 3Blue1Brown พัฒนาขึ้นเพื่อใช้ทำวิดีโอการศึกษาของตนเอง
  • มีเวอร์ชัน community fork แยกต่างหาก ซึ่งได้รับการพัฒนาให้ดีขึ้นในด้านการใช้งาน การมีส่วนร่วม และการทดสอบ
  • ทำงานบนพื้นฐานของ Python และต้องใช้ system dependencies หลากหลาย เช่น FFmpeg, OpenGL, LaTeX
  • เป็น โอเพนซอร์ส (สัญญาอนุญาต MIT) ที่ทุกคนสามารถใช้งานและร่วมพัฒนาได้อย่างอิสระ

ความสำคัญและข้อดีของโปรเจ็กต์ Manim

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

ภาพรวมของโปรเจ็กต์

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

คุณลักษณะสำคัญและข้อกำหนด

  • แบ่งออกเป็น ManimGL (ต้นฉบับ) และ Manim Community Edition (community fork)
    • แต่ละเวอร์ชันมีวิธีติดตั้งและการใช้งานแตกต่างกัน จึงควรเลือกเวอร์ชันที่ต้องการล่วงหน้า
    • หากติดตั้งผ่าน pip สามารถติดตั้งเวอร์ชันต้นฉบับได้ด้วยชื่อแพ็กเกจ manimgl
  • ต้องใช้ Python 3.7 ขึ้นไป และยังต้องมี FFmpeg, OpenGL รวมถึงในบางสภาพแวดล้อมอาจต้องใช้ LaTeX และ Pango สำหรับ Linux เพิ่มเติม

คำแนะนำการใช้งาน (ตัวอย่าง)

  • มีตัวอย่างที่รวมโค้ด ไฟล์ซีน และคำสั่งรันไว้ให้
  • สามารถตรวจดูและนำไปใช้ต่อได้ทั้งตัวอย่างซีนหลายแบบ เอกสารประกอบ และโค้ดเฉพาะที่ใช้กับวิดีโอจริงของ 3Blue1Brown
  • เมื่อรันผ่าน command line จะมีแฟลกหลากหลายให้ใช้เพื่อ
    • บันทึกไฟล์ผลลัพธ์ ข้ามทั้งซีน รันแบบเต็มหน้าจอ และรองรับรูปแบบการแสดงผลกับสภาพแวดล้อมที่ปรับแต่งได้หลากหลาย
  • สามารถตั้งค่ารายละเอียดของสภาพแวดล้อม เช่น สไตล์ คุณภาพ และพาธ ได้ผ่านไฟล์ custom_config.yml
โฆษณา

เอกสารและการมีส่วนร่วม

  • มีเอกสารทางการให้ใช้งานบนเว็บไซต์แยกต่างหาก และยังมีเวอร์ชันภาษาจีนกับทรัพยากร custom เพิ่มเติมให้ใช้ได้
  • ตามแบบฉบับโปรเจ็กต์โอเพนซอร์ส จึง ยินดีต้อนรับ pull request และการมีส่วนร่วมจากชุมชน อย่างมาก
  • เผยแพร่ภายใต้สัญญาอนุญาต MIT ทำให้ทุกคนสามารถแก้ไขและแจกจ่ายต่อได้อย่างอิสระ

ข้อมูลทางเทคนิคและสถิติ

  • ประกอบด้วยภาษาหลักอย่าง Python(96.3%) และ GLSL(3.7%)
  • มี ดาวบน GitHub มากกว่า 80,000 ดวง และฟอร์กมากกว่า 6,800 ครั้ง แสดงให้เห็นถึงความนิยมและการมีส่วนร่วมจากชุมชนในระดับสูง
  • มีผู้มีส่วนร่วมหลากหลายมากกว่า 167 คน

สรุป

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

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

 
GN⁺ 2025-08-24
ความเห็นจาก Hacker News
  • ช่วงนี้พอใช้ร่วมกับ coding assistant แล้วรู้สึกว่ามันได้ผลมากจริง ๆ แค่พิมพ์พรอมป์ต์อย่าง “ต้องการไดอะแกรมที่สมการ X เปลี่ยนเป็น Y” ก็มักได้ผลลัพธ์ที่ต้องการตั้งแต่ครั้งแรกเสมอ น่าจะเป็นเพราะ syntax ที่เรียบง่ายและมีตัวอย่าง manim แบบโอเพนซอร์สจำนวนมากถูกนำไปใช้ในการเรียนรู้ คิดว่าเป็นตัวอย่างที่ดีมากว่า AI coding agent ช่วยประหยัดเวลาได้แค่ไหน ขอแค่วิดีโอที่ออกมาดูดีก็ไม่จำเป็นต้องสนใจรายละเอียดระหว่างทางมากนัก วิธีแบบนั้นเลยสะดวกกว่า

    • จำได้ว่าเคยได้ยินในพอดแคสต์ที่มี Grant Sanderson ไปออกรายการ เขาพูดถึงประสบการณ์ที่ลองให้ LLM สร้างโค้ด manim อัตโนมัติ แต่ผลลัพธ์ออกมาไม่ค่อยดี สุดท้ายผมเลยคิดว่านั่นหมายความว่าระดับความชำนาญหรือมาตรฐานเกี่ยวกับ manim ของพวกเรากับของ Grant ต่างกันมาก

    • สงสัยว่าถ้าเอา RAG มาผนวกกับเอกสารจะเป็นอย่างไร

  • เคยใช้ Manim ทำสไลด์พรีเซนต์ในชั้นเรียน และเป็นประสบการณ์ที่สนุกมาก หลายคนจำสไตล์นั้นได้ งานนำเสนอก็ได้รับคำชมด้วย แถมโชคดีที่เคยได้เจอ Grant ด้วยตัวเองเมื่อหลายปีก่อน ตอนบอกว่าใช้ Manim เขาดูดีใจอย่างจริงใจมาก เป็นภาพที่น่าประทับใจ เขาเป็นคนที่ยอดเยี่ยมและมีส่วนช่วยต่อความรู้และความเข้าใจของมนุษยชาติอย่างมาก

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

    • สำหรับคำอธิบายว่าทำไมไลบรารีเดียวถึงทำแนวคิดได้หลากหลายขนาดนั้น ก็เพราะมีอ็อบเจ็กต์จำนวนมากที่ชุมชนสร้างขึ้นบน primitive หลัก และสามารถนำอ็อบเจ็กต์เหล่านั้นมาเป็นจุดตั้งต้นแล้วคัสตอมต่อได้ ดู เอกสารอ็อบเจ็กต์ของ manim
  • สำหรับคนส่วนใหญ่ คิดว่าลิงก์ไปยังเวอร์ชัน community fork น่าจะเหมาะกว่า: Manim Community GitHub

    • โปรเจ็กต์ที่ Grant ทำยอดเยี่ยมมาก เพราะนี่ไม่ใช่แค่กรณีของผู้ดูแลไลบรารีโอเพนซอร์สทั่วไป แต่เป็นคนที่มีทั้งความอินและความเชี่ยวชาญในโดเมนนั้นจริง ๆ ไม่มีเครื่องมือที่ตรงกับแอปพลิเคชันที่เขาต้องการ เขาเลยลงมือสร้างและดูแลมันเอง ในทางกลับกัน community fork ดูเหมือนเป็นงานของคนที่อยากสร้างโครงสร้างพื้นฐานให้รองรับ use case จำนวนมาก มากกว่าจะทำให้เหมาะกับเป้าหมายเดิม สุดท้ายเลยค่อย ๆ ห่างจากวัตถุประสงค์ตั้งต้น และประสบการณ์ผู้ใช้ก็ถูกสละไปด้วย มองว่าเป็นความต่างระหว่างการทำเครื่องมือเพื่อให้ผู้เชี่ยวชาญใช้ทำงานจริง กับการดูแลฟอร์กไว้เพื่อการบำรุงรักษาและประชาสัมพันธ์เป็นหลัก

    • สงสัยว่าการฟอร์กเกิดขึ้นด้วยเหตุผลที่ดีจริง ๆ หรือเป็นเพราะดราม่าเฉย ๆ ผมอ่านคำอธิบายเรื่องฟอร์กแล้ว แต่ก็ยังไม่เข้าใจเหตุผลที่แน่ชัด ทั้งที่ Grant ก็ยังดูแลต้นฉบับต่ออยู่

  • กำลังตามหา animation renderer แบบเขียนโค้ดที่เน้นงาน infographic/chart/motion graphics ทั่วไปมากกว่างานคณิตศาสตร์อย่างจริงจัง วิธีเดิม ๆ ก็มี After Effects, Davinci Fusion, Blender, Cavalry ฯลฯ แต่หลังจากเคยใช้ทั้ง PovRay สมัยก่อนและ Manim ในภายหลัง แนวคิดเรื่องเครื่องมือ motion graphics แบบอิงโค้ด/ข้อความก็วนอยู่ในหัวไม่หาย คิดว่าถ้าผสานกับ LLM น่าจะยิ่งโดดเด่น ช่วงหลังเริ่มมีบริการ motion graphics ที่ใช้ ChatGPT ออกมาด้วย แต่สิ่งที่ผมต้องการมากกว่าเว็บสร้างวิดีโอแบบนั้น คือเครื่องมือที่ใช้โค้ด/ภาษาเทมเพลต สามารถเรนเดอร์ซ้ำกับข้อมูลแบบใดก็ได้ รองรับทั้งออฟไลน์และงานอัตโนมัติ

  • ตอนเคยใช้ Manim เมื่อราว 4 ปีก่อน มันมีอาการแบบ kwargs-itus คือแทบทุกพารามิเตอร์ถูกใส่เป็น kwargs จนทำ type annotation ไม่ได้ ทำให้ใช้งานยากเกินความจำเป็น ผมเคยพยายามปรับปรุง แต่ไม่ได้รับการตอบสนองมากนัก เลยสงสัยว่าช่วงหลังมันเปลี่ยนไปอย่างไรบ้าง

  • โปรเจ็กต์นี้ขึ้น HN บ่อยและมักมีการถกเถียงที่ดี เลยขอแปะลิงก์ค้นหาแทนลิงก์กระทู้: ผลการค้นหา manim บน hn

    • สงสัยว่ามี awesome list ที่ช่วยให้เห็นภาพรวมของซอฟต์แวร์ในสาย manim ไหม ขอสรุปแหล่งข้อมูลไว้ด้านล่าง

      • Manim: Math Animation,
      • Src: ManimCommunity/manim,
      • Docs: เอกสารทางการ,
      • GitHub Topic: manim
      • โปรเจ็กต์ขยายของ manim: manimML, manim-physics, chanim, manim-web(dart), JAnim(java), ranim(rust), manim-voiceover, git-sim, TheoremExplainAgent, reactive-manim, jupyter-manim, manim-sideview(vscode), manim-studio(Qt, Cairo)
      • ดูรายชื่อครีเอเตอร์ที่ใช้ manim ได้ที่ ManimCommunity/awesome-manim awesome-manim
      • แนะนำให้ค้นหา manim บน YouTube ค้นหา manim บน YouTube
    • ปกติบน HN เหมือนจะไม่อนุญาตให้ส่งลิงก์เดิมซ้ำ สงสัยว่ายังส่งซ้ำได้อยู่หรือไม่

  • ขอสรุปลิงก์ไปยังการถกเถียงเก่า ๆ บน HN และ Show HN ที่เกี่ยวกับ Manim

  • ผลงานที่ Grant สร้างด้วย 3blue1brown และ Manim น่าทึ่งจริง ๆ ด้วยคุณภาพของวิดีโอและการทำภาพให้เห็นชัด แม้หัวข้อจะเป็นนามธรรมก็ยังเข้าใจได้ง่าย README พูดถึงไว้แล้ว แต่ก็อยากแนะนำวิดีโอเดโมที่ Grant แสดงขั้นตอนการทำงานด้วย Manim ด้วยตัวเอง (ลิงก์ YouTube)

  • เป็นโปรเจ็กต์ที่เจ๋งมาก และพอเห็นก็ทำให้นึกถึงวิดีโอที่น่าประทับใจในอดีตอย่าง Animation vs Math ทันทีเลยกดเข้าไปดู Animation vs Math บน YouTube ผมชอบคณิตศาสตร์นะ แต่ก็รู้สึกว่าการเอากราฟขนาดมหึมาไปโชว์ไม่จำเป็นต้องเป็นวิธีที่ดีสำหรับผู้คนเสมอไป

    • แทนที่จะเป็นแค่การโชว์กราฟใหญ่ ๆ ผมคิดว่า 3Blue1Brown มีส่วนช่วยอย่างมากต่อพัฒนาการของการสอนคณิตศาสตร์ ผ่านการทำวิดีโอ การปล่อย Manim และการขยายชุมชน YouTuber สายคณิตศาสตร์ เขาไม่ได้พยายามแค่ครอบครองฐานแฟนของตัวเอง แต่สร้าง ecosystem แบบเปิดให้สาธารณะด้วย Sal Khan ก็ควรได้รับคำชื่นชมในจุดนี้เช่นกัน จากความพยายามเหล่านี้ คณิตศาสตร์เลยไม่ได้ดูเป็นเพียงการท่องจำและจัดการสัญลักษณ์อีกต่อไป แต่กลายเป็นแนวทางการเรียนรู้ที่น่าสนใจและชวนสำรวจ