3 điểm bởi GN⁺ 2025-08-24 | 1 bình luận | Chia sẻ qua WhatsApp
  • Manim là một engine hoạt họa chính xác dựa trên lập trình để tạo video giải thích toán học
  • Đây là dự án do tác giả của 3Blue1Brown phát triển cho mục đích làm video giáo dục của chính mình
  • Cũng có phiên bản fork từ cộng đồng, đang tiếp tục được cải thiện về khả năng sử dụng, đóng góp và kiểm thử
  • Chạy trên nền Python, đồng thời yêu cầu nhiều phụ thuộc hệ thống như FFmpeg, OpenGL, LaTeX
  • mã nguồn mở (giấy phép MIT) nên bất kỳ ai cũng có thể tự do sử dụng và đóng góp

Tầm quan trọng và ưu điểm của dự án Manim

  • Manim là engine hoạt họa mã nguồn mở được phát triển để giải thích trực quan và hiệu quả các khái niệm toán học và khoa học
  • Khác với các công cụ làm video khác, nó có thể tạo hoạt họa chính xác dựa trên mã, nên đặc biệt mạnh trong việc trực quan hóa từng bước các ý tưởng toán học phức tạp
  • Đây được đánh giá là công cụ độc đáo do 3Blue1Brown trực tiếp vận hành, kết tinh từ kinh nghiệm và bí quyết sản xuất video giáo dục
  • Một phiên bản fork từ cộng đồng cũng đang được phát triển rất tích cực riêng biệt, tạo nên cấu trúc thân thiện với lập trình viên và giúp nhiều cải tiến được phản ánh nhanh chóng

Tổng quan dự án

  • Manimengine hoạt họa lập trình chính xác cho việc giải thích toán học, cho phép tự do thể hiện công thức, hình học và quá trình triển khai khái niệm đa chiều trong video
  • Ban đầu nó được tạo ra để phục vụ sản xuất video giáo dục của 3Blue1Brown, và mã chuyên dụng liên quan cũng được công bố ở kho lưu trữ riêng
  • Đến năm 2020, một phiên bản cộng đồng đã được fork để nhiều người có thể sử dụng dễ dàng hơn, qua đó hình thành hệ sinh thái đang cải thiện về độ ổn định, đóng góp cộng đồng và kiểm thử

Tính năng chính và yêu cầu

  • Manim được chia thành ManimGL (bản gốc) và Manim Community Edition (bản fork cộng đồng)
    • Cách cài đặt và sử dụng của từng phiên bản là khác nhau, nên cần chọn trước phiên bản mong muốn
    • Khi cài qua pip, có thể cài bản gốc bằng tên gói manimgl
  • Cần Python 3.7 trở lên; ngoài ra còn cần FFmpeg, OpenGL, và trong một số môi trường còn cần thêm LaTeX cùng Pango cho Linux

Hướng dẫn sử dụng (ví dụ)

  • Có cung cấp mẫu gồm ví dụ mã, file scene và lệnh chạy
  • Có thể xem và tận dụng nhiều scene mẫu, tài liệu, cũng như mã chuyên dụng thực tế dùng cho video của 3Blue1Brown
  • Khi chạy bằng dòng lệnh, công cụ cung cấp nhiều cờ khác nhau để
    • hỗ trợ nhiều cách xuất và môi trường tùy biến như lưu file kết quả, bỏ qua toàn bộ scene, chạy toàn màn hình, v.v.
  • Có thể cấu hình chi tiết môi trường như style, chất lượng, đường dẫn thông qua file custom_config.yml

Tài liệu hóa và đóng góp

  • Tài liệu chính thức được cung cấp trên một website riêng; cũng có thể sử dụng bản tiếng Trung và thêm các tài nguyên tùy biến khác
  • Đúng tinh thần dự án mã nguồn mở, dự án rất hoan nghênh pull request và đóng góp từ cộng đồng
  • Dự án được phát hành theo giấy phép MIT, cho phép bất kỳ ai tự do sửa đổi và phân phối

Thông tin kỹ thuật và thống kê

  • Thành phần ngôn ngữ chính gồm Python(96.3%), GLSL(3.7%)
  • Với 80.000 sao GitHub và hơn 6.800 fork, dự án cho thấy mức độ phổ biến cao và sự tham gia mạnh từ cộng đồng
  • Hiện có hơn 167 người đóng góp khác nhau đang hoạt động

Tóm tắt

  • Manim là engine hoạt họa lập trình chuyên biệt cho trực quan hóa toán học và khoa học với độ chính xác, chi tiết cao
  • Nó đặc biệt hữu ích cho người làm video giáo dục, chuyên gia trực quan hóa dữ liệu và lập trình viên cần hoạt họa dựa trên mã
  • Đường cong học tập nhanh, môi trường có thể tùy biến, khả năng đóng góp tự do và sự phát triển của cộng đồng là những điểm khác biệt quan trọng

1 bình luận

 
GN⁺ 2025-08-24
Ý kiến Hacker News
  • Dạo này dùng cùng coding assistant thì thấy nó hoạt động cực kỳ hiệu quả, chỉ cần prompt kiểu “cần một sơ đồ cho thấy phương trình X biến đổi thành Y” là hầu như lần nào cũng ra đúng thứ mình muốn ngay từ lần đầu, vì cú pháp đơn giản và rất nhiều ví dụ manim mã nguồn mở đã được dùng để huấn luyện, mình nghĩ đây là một ví dụ rất hay cho thấy AI coding agent tiết kiệm thời gian đến mức nào, miễn là video đầu ra đẹp thì không cần bận tâm nhiều đến quy trình chi tiết nên cách đó tiện hơn

    • Mình nhớ có nghe trong một podcast có Grant Sanderson tham gia rằng anh ấy từng thử để LLM tự sinh mã manim nhưng kết quả không được tốt lắm, cuối cùng điều đó có lẽ cho thấy mức độ thành thạo hay tiêu chuẩn về manim của chúng ta khác rất xa so với Grant

    • Không biết sẽ thế nào nếu kết hợp thêm tính năng RAG với tài liệu

  • Mình từng dùng Manim cho slide thuyết trình trên lớp và đó thực sự là một trải nghiệm rất vui, nhiều người nhận ra ngay phong cách đó và bài thuyết trình cũng được khen, hơn nữa mình còn may mắn gặp trực tiếp Grant vài năm trước, khi nói rằng mình đã dùng Manim thì anh ấy vui ra mặt, điều đó để lại ấn tượng mạnh với mình, anh ấy là một người tuyệt vời đang đóng góp rất lớn cho tri thức và sự hiểu biết của nhân loại

  • Mình nghĩ 3b1b thực sự là một kỳ quan của Internet, những hoạt hình đẹp đến kinh ngạc và phần giải thích được gọt giũa cẩn thận khiến người ta phải thán phục, nhưng có một điều mình vẫn không hiểu là vì sao chỉ một thư viện lại có thể dựng hoạt hình cho nhiều khái niệm khác nhau đến vậy, cứ tưởng tất cả đều phải là đồ tùy biến riêng, nhưng có lẽ Grant đang làm việc ở một tầng tư duy toán học cao hơn

    • Về chuyện vì sao một thư viện có thể hiện thực hóa nhiều khái niệm đa dạng như vậy, là vì có rất nhiều object do cộng đồng xây dựng dựa trên các primitive cốt lõi, rồi bạn có thể tùy biến từ những object đó làm điểm khởi đầu, xem tài liệu object của manim
  • Mình nghĩ với đa số mọi người thì link bản community fork sẽ phù hợp hơn, Manim Community GitHub

    • Dự án Grant tạo ra thực sự xuất sắc, vì đây không chỉ là một maintainer thư viện mã nguồn mở đơn thuần mà là một người thực sự tâm huyết và có chuyên môn trong domain đó, tự xây và tự duy trì vì không có công cụ phù hợp cho ứng dụng thực tế của mình, còn community fork thì do những người muốn xây hạ tầng cố gắng làm cho nó hợp với nhiều use case thay vì thật sự bám sát mục đích ban đầu, nên cuối cùng ngày càng lệch khỏi mục tiêu gốc và cả trải nghiệm người dùng cũng bị hy sinh, mình nghĩ đó là khác biệt giữa việc một chuyên gia tự làm công cụ để giải quyết công việc của mình và việc duy trì fork chủ yếu cho mục đích bảo trì hay quảng bá

    • Mình thắc mắc không biết fork đó được tạo ra vì lý do chính đáng hay chỉ vì tranh cãi nào đó, mình có đọc giải thích về vụ fork nhưng vẫn không rõ nguyên nhân chính xác dù Grant vẫn tiếp tục duy trì bản gốc

  • Mình đang tích cực tìm một trình render animation viết bằng code nhưng tập trung vào infographic/chart/motion graphics nói chung thay vì thiên về toán học, các lựa chọn hiện tại là After Effects, Davinci Fusion, Blender, Cavalry..., nhưng từ sau khi từng trải nghiệm PovRay ngày xưa rồi đến Manim thì ý tưởng về một công cụ motion graphics dựa trên code/văn bản cứ không rời khỏi đầu mình, có vẻ nó sẽ thực sự tỏa sáng khi kết hợp với LLM, gần đây cũng đã có các dịch vụ motion graphics dựa trên ChatGPT, nhưng điều mình muốn hơn những trình tạo video web như thế là một công cụ theo hướng template code/ngôn ngữ, có thể render lặp lại với bất kỳ dữ liệu nào, chạy offline hoặc tự động hóa được

  • Khoảng 4 năm trước khi mình thử dùng Manim, nó mắc cái kiểu kwargs-itis, gần như mọi tham số đều được đặt dưới dạng kwargs và không thể dùng type annotation nên việc sử dụng khó một cách không cần thiết, mình từng thử cải thiện nhưng không nhận được nhiều phản hồi, nên khá tò mò không biết gần đây nó đã thay đổi ra sao

  • Dự án này lên HN khá thường xuyên và có nhiều thảo luận hay, nên mình để link tìm kiếm thay vì link một cuộc thảo luận cụ thể kết quả tìm kiếm manim trên hn

    • Không biết có danh sách awesome nào giúp nhìn toàn cảnh phần mềm quanh manim không, mình gom vài tài liệu ở dưới

      • Manim: Math Animation,
      • Src: ManimCommunity/manim,
      • Docs: tài liệu chính thức,
      • GitHub Topic: manim
      • Các dự án mở rộng của 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)
      • Có thể xem danh sách các creator dùng manim trong ManimCommunity/awesome-manim awesome-manim
      • Khuyên tìm kiếm manim trên YouTube tìm kiếm manim trên youtube
    • Mình cứ nghĩ trên HN thường không cho phép đăng trùng cùng một link, không biết có được đăng trùng không

  • Mình tổng hợp lại các thảo luận HN cũ và link Show HN liên quan đến Manim

  • Những gì Grant tạo ra với 3blue1brown và Manim thực sự đáng kinh ngạc, nhờ chất lượng video cao và phần trực quan hóa xuất sắc nên ngay cả các chủ đề trừu tượng cũng trở nên dễ hiểu, README cũng đã nhắc đến rồi nhưng mình vẫn rất muốn giới thiệu video demo cho thấy quy trình Grant làm việc với Manim (link YouTube)

  • Đây là một dự án thật sự tuyệt vời, mình bấm vào vì ngay lập tức nhớ đến video ấn tượng Animation vs Math Animation vs Math trên YouTube, mình rất thích toán nhưng cảm giác việc đưa ra những đồ thị khổng lồ chưa chắc đã là cách tốt với mọi người

    • Thay vì chỉ đưa ra những đồ thị khổng lồ, mình nghĩ 3Blue1Brown đã đóng góp lớn cho sự phát triển của phương pháp giáo dục toán học nhờ dồn sức vào làm video, phát hành Manim và mở rộng cộng đồng math YouTuber, thay vì chỉ cố giữ riêng lượng fan của mình thì anh ấy đã công khai xây dựng cả một hệ sinh thái, Sal Khan cũng xứng đáng được khen ở điểm này, nhờ những nỗ lực như vậy mà toán học không còn chỉ là ghi nhớ và thao tác ký hiệu, mà trở thành một thể loại vừa cuốn hút vừa giàu tính khám phá