무엇인가
Manim은 그랜트 샌더슨이 3Blue1Brown 영상을 만들려고 2015년부터 쓴 파이썬 수학 애니메이션 엔진입니다. 원·화살표·좌표축·LaTeX 수식을 코드로 만들고, self.play(Create(circle))처럼 애니메이션을 순서대로 적으면 그대로 영상이 됩니다. 그림이 코드에서 나오므로 좌표가 정확하고, 숫자 하나를 바꿔 다시 렌더할 수 있으며, 수식의 각 기호가 다음 식으로 모양을 바꾸며 넘어가게 할 수 있습니다.
지금은 두 판이 있습니다. 샌더슨이 쓰는 ManimGL(패키지 manimgl, OpenGL 렌더러, 마지막 PyPI 릴리스 v1.7.2·2024년 12월)과, 2020년 커뮤니티가 갈라 만든 ManimCE(패키지 manim, 2026년 10월 8일 v0.22.0)입니다. 문서·테스트·릴리스 노트가 갖춰진 ManimCE를 입문자와 대부분의 연구가 씁니다. 2025년부터는 LLM 에이전트가 Manim 코드를 써서 해설 영상을 만드는 연구(TheoremExplainAgent, Code2Video 등)의 표준 렌더러가 됐습니다.
어떻게 동작하나
화면은 높이 8단위, 너비 약 14.22단위이고 가운데가 원점입니다. 렌더러(기본 Cairo)는 애니메이션마다 프레임을 그려 부분 영상으로 저장하고, 마지막에 이어 붙입니다. 같은 애니메이션은 해시로 캐시해 다시 렌더하지 않습니다. MathTex·Tex는 시스템 LaTeX로 조판한 뒤 SVG로 바꿔 쓰므로 LaTeX 설치가 필요하고, Text는 Pango로 글꼴을 직접 그립니다(한글은 Text로).
빠른 시작
pip install manim # macOS에서 pycairo 빌드가 실패하면: brew install pkgconf cairo pango
# 수식(MathTex)을 쓰려면 LaTeX가 필요하다 (MacTeX·TinyTeX 등)
manim -ql scene.py Hello # 480p 미리보기, -qh는 1080p
from manim import *
class Hello(Scene):
def construct(self):
title = Text("털난 공 정리", font="Apple SD Gothic Neo").to_edge(UP)
eq = MathTex(r"\exists p \in S^2:\ v(p) = 0")
self.play(Write(title))
self.play(Write(eq))
self.play(Create(Circle(radius=1.2).next_to(eq, DOWN)))
self.wait()
코어닷투데이 실측
2026년 10월 25일, ManimCE 0.22.0으로 정리 10개(털난 공, 피타고라스 재배열, 칸토어 대각선 등)를 LLM 코더 4종에게 맡겨 파이프라인 80개를 돌렸습니다. 스토리보드 → 코드 → 480p 렌더 → 오류 메시지를 돌려주는 수리 최대 3번 → 자동 겹침 검사기와 비전 심사관(Opus 5.5) 검토 → 시각 수리 1번의 순서입니다.
| 코더 | 첫 시도 렌더 | 수리 3번 이내 | 심사관 평균 (1~5) | 중대 수학 오류 |
|---|---|---|---|---|
| Claude Opus 5.5 | 70% | 100% | 3.94 | 5% |
| Claude Sonnet 5.5 | 35% | 100% | 3.53 | 50% |
| Claude Haiku 4.5 | 40% | 85% | 2.11 | 94% |
| Qwen3.5 9B (로컬) | 0% | 0% | — | — |
- 버전을 적어 주면 ManimGL 혼용은 0건이었습니다. 모든 생성 코드에서
ShowCreation·TexMobject·CONFIG·manimlib가 한 번도 나오지 않았습니다. - 실패 148건 중 55%가 없는 API·인자였습니다.
CYAN,DARK_RED,CENTER같은 지어낸 상수가 24건,Text(size=…)같은 없는 인자가 27건입니다. LaTeX 실패 24건 중 22건은MathTex안의 한글이었습니다(프롬프트로 금지했는데도). - 렌더된 뒤에는 배치가 가장 약했습니다. 다섯 채점 차원 중 배치가 최하(평균 2.79)였습니다. 경계 상자 검사 결과를 돌려주자 Opus는 영상당 겹침·화면 밖 문제를 0.50 → 0.05로 줄였지만 Haiku는 그대로였고, 수학 오류는 어느 모델도 거의 고치지 못했습니다.
- 사고(thinking)를 기본값으로 두면 코드가 안 나올 수 있습니다. Sonnet 5.5 기본 설정에서는 8번 중 5번이 숨은 사고로 출력 한도 32,000토큰을 다 쓰고 코드 없이 끝났습니다.
자세한 설계·영상·한계는 블로그 특집에 있습니다.
언제 쓰고, 언제 피하나
| 상황 | Manim이 맞는다 | 다른 방법을 먼저 본다 |
|---|---|---|
| 내용 | 수식 변형, 기하, 그래프, 알고리즘 단계처럼 정확한 도형이 주장의 일부인 설명 | 사람·사물·실사 장면 — 영상 편집 도구나 픽셀 생성 모델 |
| 작업 방식 | 코드로 그리는 것이 편하고, 숫자를 바꿔 여러 번 렌더할 일이 있다 | 마우스로 바로 만지고 싶다 — Desmos·GeoGebra, 비수학 애니메이션은 After Effects·Blender |
| AI와 함께 | 장면 설계는 사람이 하고 코드 작성·디버깅을 LLM에 맡긴다 | 정리 이름만 넣고 대본·화면·검토까지 통째로 맡긴다 |
한계와 주의
- 두 판을 섞지 말 것.
ShowCreation(GL)↔Create(CE),Tex가 GL에선 수식·CE에선 문단,CONFIG딕셔너리(GL 관행) 등 비호환이 145개 넘게 정리돼 있습니다(ManiBench). LLM에게 코드를 맡길 때는 버전을 명시합니다. - 겹침과 화면 이탈은 오류가 아니다. Manim은 글자가 도형을 가리거나 화면 밖으로 나가도 아무 경고 없이 렌더합니다. 렌더 결과를 직접 보거나 경계 상자 검사를 붙입니다.
- LaTeX는 한글을 모른다. 기본 템플릿의
MathTex·Tex안에 한글을 넣으면 컴파일 오류가 납니다. 한글은Text로 따로 만들어 수식 옆에 놓습니다. - 렌더가 느리다. 480p 미리보기도 장면당 수십 초가 걸려, 에이전트가 수정 루프를 여러 번 돌면 시간이 대부분 렌더에 들어갑니다.
- 편집은 밖에서. 샌더슨 자신은 Manim을 "나중에 이어 붙일 클립을 만드는 도구"로 쓰고 음성·편집은 일반 영상 편집기에서 합니다.

