top | item 26498527

Manim – an animation engine for explanatory math videos

905 points| vermilingua | 5 years ago |3b1b.github.io

75 comments

order
[+] dang|5 years ago|reply
If curious, past threads:

Show HN: I made a parser visualizer using manim - https://news.ycombinator.com/item?id=26382729 - March 2021 (15 comments)

A Manim Code Template - https://news.ycombinator.com/item?id=24985609 - Nov 2020 (1 comment)

Manim: Animation engine for explanatory math videos - https://news.ycombinator.com/item?id=24926947 - Oct 2020 (19 comments)

Manim – 3Blue1Brown's animation engine for explanatory math videos - https://news.ycombinator.com/item?id=19716019 - April 2019 (80 comments)

This one is a dupe because Oct 2020 was less than a year ago (https://news.ycombinator.com/newsfaq.html) but I think we can leave it up.

[+] melling|5 years ago|reply
Grant helped out with this MIT course last fall:

https://computationalthinking.mit.edu/Fall20/lecture26/

I believe he was going to do some of the visualizations

[+] beforeolives|5 years ago|reply
The course is kind of all over the place. There isn't a lot of focus in the content and the quality of the teaching is inconsistent. Grant's videos were the best by far.
[+] nishparadox|5 years ago|reply
Grant has been one of the inspirations since my early BE days (that was years ago). I got so much inspired from manim that I tried to make my own animation tool, panim [0] where I implemented mathematical concepts I understood. Nowadays, whenever I am in a rut, I jump back to panim and try to jot down my ideas into code.

(Say, "panim" name might be a gimmick?)

--- [0] - https://github.com/NISH1001/panim

[+] oroul|5 years ago|reply
I always wondered how 3B1B makes the animations in his videos. Super pleased to see it's available as a Python library. Can't wait to play around with this!
[+] bunje|5 years ago|reply
As a teacher, I'd like to use this in presentation slides, i.e. pause the output at specific times and continue only after a button is pressed. Does anyone know if there exists a tool, e.g., to automatically pause MP4 playback at specific times?
[+] mrdonbrown|5 years ago|reply
I built exactly this in my Manim-based library, code-video-generator [1] (via the code-video-generator command and the --slides flag). It basically turns any Manim scene.wait() call into a pause that I can then advance with a clicker. I used it for this video [2], where I was recording in front of a green screen, but wanted the exact control when the animation continued. code-video-generator played the video fullscreen, which I then captured via obs [3] and used the obs display as a monitor to see if I was pointing at the right spot. Was a bit tricky to get all set up but worked pretty well.

[1] https://github.com/sleuth-io/code-video-generator [2] https://youtu.be/e21hJnB9J5k?t=44 [3] https://obsproject.com/

[+] qiqitori|5 years ago|reply
Don't know how user friendly you'd like this to be, but VLC has a text-based remote control interface: https://wiki.videolan.org/documentation:modules/rc/

This allows you to e.g. get the current time (get_time) and pause playback (pause). So you just have to write a small script that issues the commands the way you want and you'll be good.

[+] enriquto|5 years ago|reply
if you are comfortable with LaTeX, you can use the animate package on beamer slides. It does just that, and allows both playing the animation or running it frame by frame (fwd and back).
[+] _hl_|5 years ago|reply
manim works by generating a "partial movie file" for each animation, i.e. a single mp4 file for each scene.wait() call and so on. The final output just stitches these together.

I did exactly what you want using a small reveal.js plugin that parses the list of partial files generated by manim and inserts the corresponding video files into the presentation in thst order, it worked quite well. Let me know if you're interested and I'll throw it up on a GitHub gist.

[+] gnicholas|5 years ago|reply
If you want to stop at specified times, you could just split the video across several slides.

Or you could pause the video manually; in Keynote, press K to play/pause.

[+] john4532452|5 years ago|reply
It reminds me of the quote from SICP whenever i a domain specific languages frameworks etc

"Establishing new languages is a powerful strategy for control-ling complexity in engineering design; we can often enhance ourability to deal with a complex problem by adopting a new lan-guage that enables us to describe (and hence to think about)the problem in a different way, using primitives, means of com-bination, and means of abstraction that are particularly wellsuited to the problem at hand." -- Harold Abelson

[+] Dentrax|5 years ago|reply
I guess this was used by Sentdex [0] in the Neural Networks from Scratch series.

[0] https://youtu.be/gmjzbpSVY1A?t=52

[+] _up|5 years ago|reply
Looks to me more like they used a compositor like AE or Blackmagic Fusion/Resolve.
[+] jmartrican|5 years ago|reply
Always wondered how 3blue1brown did his animations. I always find them hypnotic and entertaining, even though the math is going way over my head.
[+] krmmalik|5 years ago|reply
This is amazing. I'm looking for a low-code / no-code version of something like this for my video essays. Right now I have to rely on Adobe After effects which is a) costly and b) a little too much kitchen sink.

Suggestions welcome.

[+] kumartarun|5 years ago|reply
Since the day I watched the Interstellar movie, I always thought of understanding and making the black hole simulation. I guess I could make it now.
[+] mhh__|5 years ago|reply
The user "rantonels" (IIRC) on /r/physics has some posts about general relativity based ray tracing of black holes
[+] NL807|5 years ago|reply
I always wondered how 3blue1brown made his animation clips. They are very good.
[+] abaga129|5 years ago|reply
I always wondered how 3blue1brown created his videos! Thanks for sharing