Manim: Animation engine for explanatory math videos
(github.com)289 points by pykello 11 hours ago
289 points by pykello 11 hours ago
I remember listening to a podcast where Grant Sanderson basically said the opposite. He tried generating manim code with LLMs and found the results unimpressive. Probably just goes to show that competence in manim looks very different to us layman than it does to Grant haha
I wonder if that’s also because Grant uses his own branch of manim from which the mainstream public one (manim-ce) has diverged quite a bit.
I can imagine LLMs being very confused being asked to write “manim” when everyone talking about “manim” (and the vast majority of public manim code) is actually the subtly-but-substantially different “manim-ce”.
I’m having 100% success even when doing transitions between screens etc on the latest agents. Wonder if this is due to time and the agents vastly improving lately. Possibly also grant knows manim so well he can beat the time to type a prompt. For the rest of us i’m tempted to make a website for educators to type a prompt to get a video out since it’s been that reliable for me.
I used Manim for one of my class presentations, absolutely a delight to use and as expected many people recognized the style and overall the presentation was well received. Incredibly, I had the opportunity to meet Grant as well a few years back. I told him I have used Manim and he was genuinely excited. Such a cool person with so much contribution to human knowledge and understanding.
3b1b is truly a wonder of the internet world. Such beautiful animations, such well thought out explanations.
What I don't quite understand is how one library can animate so many different concepts. To me they seem like they'd all be a custom job, but I guess he works on a higher plane of mathematical existence.
> What I don't quite understand is how one library can animate so many different concepts.
It's because there are a _lot_ of community objects built from the core primitives that are good starting points that you can customize from there:
https://docs.manim.community/en/stable/reference_index/mobje...
It seems like the community fork would be the better link for most people.
The sort of project Grant made is exquisite. It's not built by OSS library maintainers: It's built by someone who is interested in the application, and is an expert in the domain. Suitable tools didn't exist, so he built and maintains a tool that works well for his real-world applications.
My pattern-matching brain thinks the fork is by people who want to build infrastructure that will suit its own end, at the cost of the original purpose of supporting the applications that call it. It is and will continue to decouple from the intended application. Design-by-committee, expanded to too many use cases, and just a general loss of UX. I think this is a clear case of comparing
"Expert who wants to get-shit-done" / "Library maintainers who want to maintain and promote a library"
For good reasons or for drama reasons? I read the blurb about the fork and can’t tell why exactly if Grant is continuing to maintain the original.
Well, to me it seems like he just shared the original so that others could benefit from the work he had already done, but that since his main priority is to continue making new videos, he may not have the time resources to:
- Avoid breaking changes
- Keep APIs stable
- Test and document everything, etc.
I personally think there's nothing wrong with that. We wouldn't say that a musician is *obligated* to put out a second album or a remaster. We wouldn't say that an author *must* make a sequel to their popular book. But when it comes to code sometimes we feel like the original author has an obligation to keep working on it just because it would convenience us.
(edited for formatting)
I agree, but want to add that while we may perceive other creative works as 'finished' (to an extent), code often is not. It unfortunately, needs perpetual work.
Yeah for sure! Listing that kind of thing would probably be helpful. I think this is one of those “you’ve gotta already be on the inside and already know” things as the fork’s read me doesn’t seem to explain it.
Looks like the projects have slightly different goals.
Grant developed the software originally as a personal tool for his YouTube videos. The software is optimized for his personal needs.
The community version tries to make the tool useful for more people. They’ve built out the docs and apparently improved testing.
This gets submitted quite regularly to HN with many good discussions- so instead of posting the discussions I'll just link the search.
Is there an awesome list for manim the software?
Manim: Math Animation
Src: ManimCommunity/manim: https://github.com/ManimCommunity/manim
Docs: https://docs.manim.community/en/stable/
GH topic: manim: https://github.com/topics/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)
ManimCommunity/awesome-manim has a list of creators that create with manim: https://github.com/ManimCommunity/awesome-manim
/?youtube manim: https://www.youtube.com/results?sp=mAEA&search_query=Manim+
Manim and LLMs; LLMs are great for first drafts but fix this sentence, almost working API examples, and links to manim API docs for manim
From https://news.ycombinator.com/item?id=39296310 re: StageCraft / UE:
> "Ask HN: What's the state of the art for drawing math diagrams online?" (2023) https://news.ycombinator.com/item?id=38355444 ; generative-manim, manimGPT, BlenderGPT, ipyblender [ Blender MCP, ]
generative-manim: https://github.com/marcelo-earth/generative-manim
manimGPT: https://chatgpt.com/g/g-dtA3t9WRW-manimgpt
What are some of the similarities and differences between Subagents to dev on Manim the software, and Subagents to teach with manim?
AGENTS.md, awesome-claude-code-subagents > Language specialists, :https://github.com/VoltAgent/awesome-claude-code-subagents#0...
A prompt prefix for Manim with really any LLM:
Generate Manim Python code, to visually demonstrate and visually explain,
Generate Manim Python code With reactive pattern like reactive-manim and components like MathTex and MathString, to visually demonstrate and visually explain,
aren't HN supposed to deduplicate links? I thought duplicate URL submissions not allowed..
Grant's work with 3blue1brown and Manim is simply amazing. The quality of the videos is so high, not the least thanks to the visualizations. Not an easy task given the abstract nature of the topic.
It's linked in the readme, but I want to highlight the demo video [0], where Grant explains how he works with Manim.
This is cool. I immediately clicked because I thought of this awesome video from a couple years ago, Animation vs Math:
I like math but showing someone a giant graph isn’t always the best approach. :)
> I like math but showing someone a giant graph isn’t always the best approach. :)
Agreed. 3Blue1Brown has, by making their videos, publishing Manim, and critically by fostering a broader community of math YouTubers instead of trying to hoard the audience for themselves (through SoME), moved mathematics pedagogy forward immensely. (Sal Khan also deserves credit here.) He's created a genre that makes math feel like an exciting and approachable journey, rather than a process of memorization and symbol manipulation.
another youtuber-math-video-library: https://github.com/2swap/swaptube
from what i can tell they render their whole videos start to finish using it?
I don't think base manim support interactive 3D env. But Grant & Ben Eater built "an interactive video" back then about quaternion which you can interact with.
Links:
In some of grant’s video, it sort of do 3d, not’interacively though: https://youtu.be/KTzGBJPuJwM
I have been using this with cursor to make videos to explain papers and math concepts to myself.
Some of the results are not perfect (AI sometimes misaligns some shapes), but it's quite helpful and with a couple of iterations you get to a really good explainer video.
Fwiw this absolutely works amazingly well with modern coding assistants. “I want a diagram of equation X morphing into Y” or similar is always a one shot success for me.
Part of it is the simplistic syntax and the sheer amount of open source manim examples to train on but it’s a pretty great demonstration of ai coding agents time saving. Especially since the output video looking correct is all you care about here. Ie. I don’t actually care about the specifics of how my explanatory videos were created, just that they were created via a simple prompt and it gave me what i wanted.