close

Manim (ManimGL)

Mã nguồn mở bởi 3b1b

Manim là thư viện Python để làm hoạt hình chính xác bằng mã, thiết kế cho video giải thích toán học. Repo 3b1b/manim là bản ManimGL do tác giả kênh 3Blue1Brown viết để làm video của kênh; gói cài trên pip tên là manimgl.

Manim (ManimGL) dùng để làm gì?

  • Vẽ và tạo chuyển động cho công thức, đồ thị, hình học bằng mã Python
  • Hiển thị công thức toán bằng LaTeX ngay trong video
  • Xem cảnh trong cửa sổ phát trực tiếp rồi ghi ra file video
  • Xuất khung hình cuối của một cảnh thành ảnh tĩnh
  • Tham khảo mã thật của các video 3Blue1Brown trong repo 3b1b/videos

Giao diện và video

Video demo Manim (ManimGL)

Ảnh và video lấy từ README của dự án trên GitHub, bản quyền thuộc nhóm phát triển.

Cần biết trước khi dùng

  • Cần chú ýBản phát hành gần nhất (v1.7.2) đã hơn 18 tháng.
  • Lưu ýKhông tìm thấy docker-compose hay Dockerfile ở thư mục gốc: chưa thể gắn nút Deploy tự động.
  • Lưu ýDependency được khai báo theo khoảng phiên bản (ví dụ ">="), chưa tra lỗ hổng tự động được. Cần quét trên bản cài thật.
  • Lưu ýTino chưa kiểm thử dự án này.

Kiểm tra tự động ngày 04/11/2026 từ dữ liệu GitHub, OSV.dev và docker-compose. Đây không phải chứng nhận bảo mật; Tino không phát triển hay bảo trì repo này.

Manim (ManimGL) là gì?

Manim cho phép mô tả một cảnh hoạt hình bằng mã Python: đối tượng nào xuất hiện, biến đổi ra sao, trong bao lâu. Vì mọi thứ được tính bằng toán, hình và chuyển động chính xác tới từng điểm, phù hợp cho video giải thích toán học và khoa học.

Có hai phiên bản Manim. Repo này (ManimGL) bắt đầu là dự án cá nhân của tác giả 3Blue1Brown để làm video của kênh. Năm 2020, một nhóm lập trình viên tách nhánh thành bản cộng đồng ManimCommunity/manim. Theo README, bản cộng đồng hướng tới ổn định hơn, được kiểm thử kỹ hơn, phản hồi đóng góp nhanh hơn và dễ làm quen hơn. Vì vậy người mới thường nên xem bản cộng đồng trước; chọn ManimGL khi bạn muốn dùng đúng công cụ và quy trình tương tác của 3Blue1Brown.

README cảnh báo hai bản có cách cài khác nhau: làm theo hướng dẫn của bản này để cài bản kia, hoặc ngược lại, sẽ gây lỗi. Hãy chọn một bản trước rồi chỉ làm theo hướng dẫn của bản đó. Gói của repo này trên pip là manimgl, không phải manim hay manimlib.

Khi chạy, ManimGL mở một cửa sổ phát cảnh dùng OpenGL. Thêm cờ -w để ghi ra file, -s để chỉ hiện khung hình cuối. Cấu hình thư mục xuất video, ảnh, âm thanh và chất lượng nằm trong custom_config.yml.

Nên dùng khi

  • Bạn làm video giải thích toán, vật lý, thuật toán cần hình và chuyển động chính xác
  • Bạn muốn làm theo đúng công cụ và quy trình tương tác mà 3Blue1Brown dùng
  • Bạn biết Python và thích mô tả hoạt hình bằng mã hơn là kéo thả

Không nên dùng khi

  • Bạn mới bắt đầu và cần bản ổn định, nhiều tài liệu: README cho biết bản cộng đồng ManimCommunity/manim được kiểm thử kỹ hơn và dễ làm quen hơn
  • Bạn đã cài hoặc đang làm theo hướng dẫn của bản cộng đồng: trộn hai cách cài sẽ gây lỗi
  • Bạn cần chạy lại mã video cũ của 3Blue1Brown nguyên trạng: README cho biết mã cũ có thể không tương thích bản mới
  • Bạn chỉ cần dựng video thông thường từ cảnh quay, không cần hoạt hình toán học

Tính năng chính

  • Hoạt hình theo lập trình, chính xác tới từng điểm
  • Hiển thị bằng OpenGL, có cửa sổ xem trực tiếp
  • Hỗ trợ công thức LaTeX (tuỳ chọn)
  • Cờ dòng lệnh: -w ghi file, -o ghi và mở, -s nhảy tới khung cuối, -n nhảy tới hoạt cảnh thứ n, -f toàn màn hình
  • Cấu hình qua custom_config.yml đặt trong thư mục chạy
  • Bộ cảnh ví dụ example_scenes.py để học cú pháp
  • Giấy phép MIT

Cách cài đặt Manim (ManimGL)

  1. Cài nhanh bằng pip Cần Python 3.10 trở lên, cùng FFmpeg và OpenGL; LaTeX là tuỳ chọn. Trên Linux cần thêm Pango và gói phát triển của nó. Tên gói là manimgl, không phải manim.
    # Install manimgl
    pip install manimgl
    
    # Try it out
    manimgl
  2. Ubuntu/Debian: cài phụ thuộc hệ thống Muốn hiển thị công thức LaTeX, cài thêm bản LaTeX gọn: sudo apt install texlive-science texlive-fonts-extra texlive-latex-extra.
    sudo apt update
    
    sudo apt install ffmpeg
    sudo apt install python3-pip
    sudo apt install libpango1.0-dev
  3. Ubuntu/Debian: tải mã và cài ManimGL README khuyên dùng môi trường ảo (venv) để tránh xung đột với gói hệ thống.
    git clone https://github.com/3b1b/manim.git
    cd manim
    
    python3 -m pip install -e .
    
    manimgl example_scenes.py OpeningManimExample
  4. Windows Trước đó cài FFmpeg và một bản LaTeX, README gợi ý MiKTeX.
    git clone https://github.com/3b1b/manim.git
    cd manim
    pip install -e .
    manimgl example_scenes.py OpeningManimExample
  5. macOS Máy chip ARM cài thêm Cairo bằng arch -arm64 brew install pkg-config cairo, sau đó tải mã và chạy pip install -e . như trên. MacTeX đầy đủ khoảng 6GB; có thể dùng BasicTeX gọn hơn.
    brew install ffmpeg mactex

Lệnh chép từ README của dự án. Đọc kỹ trước khi chạy và đối chiếu với README mới nhất, vì lệnh có thể đổi theo phiên bản.

Cấu hình quan trọng

MụcÝ nghĩa
custom_config.ymlFile cấu hình: thư mục xuất video, nơi tìm ảnh và âm thanh, mặc định về kiểu dáng và chất lượng video. Đặt một file cùng tên trong thư mục chạy để ghi đè

Cách tích hợp và sử dụng

  1. Chạy cảnh ví dụmanimgl example_scenes.py OpeningManimExample mở cửa sổ phát một cảnh đơn giản.
  2. Ghi ra file videoThêm -w để ghi cảnh ra file, -o để ghi và mở kết quả, -so để lưu khung hình cuối thành ảnh và mở xem.
  3. Học cú phápXem các cảnh ví dụ trong tài liệu tại 3b1b.github.io/manim để biết kiểu đối tượng và kiểu hoạt hình.
  4. Tham khảo video thậtRepo 3b1b/videos chứa mã các video 3Blue1Brown và cách dựng quy trình làm việc tương tác; mã video cũ có thể cần sửa để chạy với bản mới.

Cập nhật và sao lưu

Cảnh được viết thành file Python, nên sao lưu bằng Git như mã thông thường. Thư mục xuất video đặt trong custom_config.yml.

README không nêu lệnh nâng cấp riêng. Nếu cài từ mã nguồn bằng pip install -e ., cập nhật mã trong thư mục manim là dùng bản mới.

Câu hỏi thường gặp

Nên chọn ManimGL hay Manim Community?

README cho biết bản cộng đồng ManimCommunity/manim ổn định hơn, được kiểm thử kỹ hơn và dễ làm quen hơn, nên hợp với người mới. Chọn ManimGL khi bạn muốn dùng đúng bản tác giả 3Blue1Brown dùng cho video của kênh.

Vì sao pip install manim không cài đúng repo này?

README ghi rõ gói của repo 3b1b/manim tên là manimgl, không phải manim hay manimlib, nên phải cài bằng pip install manimgl. Không trộn hướng dẫn cài của hai bản.

Có bắt buộc cài LaTeX không?

Không. LaTeX chỉ cần khi muốn hiển thị công thức bằng LaTeX. Trên Ubuntu có thể cài bộ gọn texlive-science, texlive-fonts-extra, texlive-latex-extra thay cho texlive-full.

Mã video cũ của 3Blue1Brown có chạy được không?

README cho biết mã của các video cũ trong repo 3b1b/videos có thể không tương thích với bản Manim mới nhất, nên có thể phải sửa.

Ứng dụng liên quan

Miễn trừ trách nhiệm

Tino không phát triển, không sở hữu và không liên kết với Manim (ManimGL) hay nhóm phát triển 3b1b. Tên, logo và nhãn hiệu thuộc về chủ sở hữu tương ứng; việc nhắc tới chỉ để mô tả, không có nghĩa là dự án xác nhận hay hợp tác với Tino.

Manim (ManimGL) được phân phối theo giấy phép MIT của nhóm phát triển. Tino không bảo đảm về tính năng, bảo mật hay mức độ phù hợp của phần mềm; bạn tự chịu trách nhiệm khi cài đặt, cấu hình và sử dụng.

Lệnh cài và thông tin trên trang lấy từ tài liệu công khai của dự án tại thời điểm cập nhật và có thể đã thay đổi. Đọc tài liệu chính thức và sao lưu dữ liệu trước khi chạy trên máy chủ thật.