18 ms·
Manim: An animation engine for explanatory math videos
- msdrigg 5y agoThis is an extension of an animation library used by math YouTuber 3blue1brown [0]. He has an excellent channel that I would recommend anything from. One of my favorite videos of his is where he shows the thought process behind solving a level 6 Putnam competition problem and makes it seem almost doable [1]. [0] https://m.youtube.com/channel/UCYO_jab_esuFRV4b17AJtAw https://m.youtube.com/channel/UCYO_jab_esuFRV4b17AJtAw [1] https://m.youtube.com/watch?v=OkmNXy7er84 https://m.youtube.com/watch?v=OkmNXy7er84
- sundarurfriend 5y agoI've never been able to get into these animated videos of 3b1b, but the more recent videos with a more conversational tone (Lockdown math, the MIT Computational thinking course, the podcast) have made me a big fan of Grant.
- abetusk 5y agoA community fork of 3Brown1Blue's [0] Manim [1] for creating the math animations and pictures used in their videos. From the manimcommunity's README: """ NOTE: This repository is maintained by the Manim Community and is not associated with Grant Sanderson or 3Blue1Brown in any way (although we are definitely indebted to him for providing his work to the world). If you would like to study how Grant makes his videos, head over to his repository (3b1b/manim). This fork is updated more frequently than his, and it's recommended to use this fork if you'd like to use Manim for your own projects. """ See the gallery for it in action [2]. [0] https://www.youtube.com/channel/UCYO_jab_esuFRV4b17AJtAw https://www.youtube.com/channel/UCYO_jab_esuFRV4b17AJtAw [1] https://github.com/3b1b/manim https://github.com/3b1b/manim [2] https://docs.manim.community/en/stable/examples.html https://docs.manim.community/en/stable/examples.html
- omgJustTest 5y agoWhile this seems to be good intentions, the message is unclear and confusing. 3b1b's explaination in his readme is much clearer and Manim community should decouple itself from the 3B1B name / popularity. "Manim is an animation engine for explanatory math videos. It's used to create precise animations programmatically, as demonstrated in the videos of 3Blue1Brown." [1] "Note, there are two versions of manim. This repository began as a personal project by the author of 3Blue1Brown for the purpose of animating those videos, with video-specific code available here. In 2020 a group of developers forked it into what is now the community edition, with a goal of being more stable, better tested, quicker to respond to community contributions, and all around friendlier to get started with. See this page for more details." [2] [1] Manim Community Edition Readme [2] Manim 3B1B edition
- dmix 5y agoAgreed, I immediately got the impression it was what 3b1b was using...
- AnotherGoodName 5y agoTo be fair the gist of it is that "this is what the 3b1b team are using except it is a bit better".
- xmprt 5y agoAlthough the fact that the 3b1b team isn't using the community version makes me wonder why and whether the community version is actually better. In any case I'll take their word for it that it's more beginner friendly.
- tjader 5y agoI believe 3b1b uses his extensive knowledge of the system he developed to sometimes do hacky things that wouldn't be easy to support long-term. His repo may be better for someone who has a similar extensive knowledge, but won't be ideal for someone who is mostly interested in it as a tool and doesn't want to learn its innards.
- sitkack 5y agoSomeone please correct me if I am wrong (always, but am extra asking for it), is that the main 3b1b/manim is really just for Grant and folks in making his videos, and while he did open source it, he isn't interested in running a big OSS project. To me this really shows the power of OSS, and that one can "take ownership" of their destiny through forking and that it doesn't need to be adversarial. In many ways, ideas are much more powerful than code. That code itself can be a thought terminating thing, by making ideas reified, it also instantly constructs an Overton Window or maybe a Chesteron's Fence, or maybe a Winchester House. A Knot's Berry Farm of technical debt built on soggy metaphors.
- davidscolgan 5y agoYes, I've heard him say in a few places in his videos that he gives his blessing to this fork and encourages its use over his own repo for that exact reason.
- sitkack 5y agoThe cool thing about this is that it shows you can open source stuff and have people use it, but you don't have maintain the project. At the same time, I hope it encourages folks to open source their code even if it isn't "ready for prime time" or what ever euphemism is for embarrassment.
- kaimorid 5y agolmaoooooooo well said clapping
- bsenftner 5y agoDoes anyone have experience to compare this with MathBox? https://github.com/unconed/mathbox https://github.com/unconed/mathbox Mathbox is JavaScript, not Python, but presentation graphics are often web based, so I consider these two to be supplying solutions for similar needs.
- Zhyl 5y agoI've only seen on the author's website [0], but the explainables there are some of the best I've seen. [1,2] [0] https://acko.net https://acko.net [1] https://acko.net/blog/how-to-fold-a-julia-fractal/ https://acko.net/blog/how-to-fold-a-julia-fractal/ [2] https://acko.net/blog/to-infinity-and-beyond/ https://acko.net/blog/to-infinity-and-beyond/
- bsenftner 5y agoI've used Mathbox quite a bit, it is flat out incredible, a jaw dropping artful simplicity to use. So I am wondering if this is worth even looking into...
- Gene_Parmesan 5y agoI don't know anything about MathBox, but manim's niche is animation for videos.
- bsenftner 5y agoMathbox too, but interactive as well.
- EMM_386 5y ago3blue1brown has fantastic videos, I always wondered how they were created. The official Quickstart documents have animations showing how the transitions work: https://docs.manim.community/en/stable/tutorials/quickstart.html https://docs.manim.community/en/stable/tutorials/quickstart....
- SamBam 5y agoThis is very nice. It looks well-designed for a moderately-technical teacher to create stuff with a lot of reasonable defaults and assumptions over configuration. Here's the gallery of example stuff you can do: https://docs.manim.community/en/stable/examples.html https://docs.manim.community/en/stable/examples.html
- mcphage 5y agoWhy is the method to set the text on an object "get_text()" ?
- SamBam 5y agoIt seems slightly confusing, but I think the idea is that the brace is creating a new text object, which is returned and you can then add it to the scene. So it's not "get the current string" it's "give me a text object with this string." Could have been named `create_text()` perhaps.
- bradrn 5y agoA Haskell equivalent: https://reanimate.github.io/ https://reanimate.github.io/. Haven’t used it myself, but the examples are incredibly impressive.
- lordleft 5y agoI've always marveled at Grant's videos -- very cool to see this
- nuclearnice1 5y agoVery cool At a glance, it seems tightly bound to making math animations, unsurprisingly. Are there more general open source animation tools? Or other narrow tools for other niches?
- cmrdsprklpny 5y agoYou might like Wick Editor: https://wickeditor.com https://wickeditor.com
- 5faulker 5y agoNice name.
- liorben-david 5y agoLove 3b1b, glad someone made a fork of his software
- stevenpetryk 5y agoShameless plug for my React library for creating similar-looking, interactive visualizations on the web. Highly inspired by 3blue1brown/manim's style. Less focused around animation, more focused on interaction. :) https://mafs.dev/ https://mafs.dev/ Edit: probably needs a bit of chores done, especially around typescript declaration organization. I built it during a brief 3-week funemployment last year. Side projects are hard!
- dxbydt 5y agoYour example on Projectile motion and Riemann sum is quite nice! I am going to share it with a few kids I work with. Thank you for creating this.
- 6gvONxR4sf7o 5y agoThat looks super clean. Very cool.
- pc86 5y agoHaven't looked at the code yet but the animations/interactivity is gorgeous.
- deleted 5y ago[deleted]
- da39a3ee 5y agoThat looks like a really nice project. Are you familiar with Mathbox https://github.com/unconed/mathbox https://github.com/unconed/mathbox?
- stevenpetryk 5y agoNope! I like Three.js though. These visualizations are pretty intense.
- Uehreka 5y agoI’m pretty sure mathbox got abandoned when mathbox2 came out (understandably, it’s mostly one guy building it). But then mathbox2 appears to be abandoned now, and last time I tried to use it (a couple years ago) the coffeescript would no longer compile. It was a really visionary piece of work, it’s a bummer to see it fall apart like this, and I don’t think anything has come out since that really replaces it (though manim does look cool).
- snicker7 5y agoFor Julia coders, there is Javis.jl https://www.youtube.com/watch?v=ckvsc6ukdOc https://www.youtube.com/watch?v=ckvsc6ukdOc
- baby 5y agoFeedback on the landing page: it's an animation engine but I can find no examples.
- srott 5y agoThere is a link to "our online Jupyter environment."... https://mybinder.org/v2/gist/behackl/725d956ec80969226b7bf9b4aef40b78/HEAD?filepath=basic%20example%20scenes.ipynb https://mybinder.org/v2/gist/behackl/725d956ec80969226b7bf9b...
- Darylgolden 5y agoGood point! I'll bring it up with the other devs.
- nrjames 5y agoWhile not Manim generated, I came across this video explaining Bezier curves yesterday and thought it was pretty awesome. https://www.youtube.com/watch?v=aVwxzDHniEw https://www.youtube.com/watch?v=aVwxzDHniEw
- dmix 5y agoI've noticed a bunch of Youtube channels have really upped their animation game and mastered how to structure/pace their videos. Especially the science oriented ones like Kurzgesagt [1] and Veritasium [2]. It's a really great movement, I'm happy to see it. 3blue1brown definitely played a role in this in the early days. It reminds me of the way websites evolved around 2005-2010 to start to take design seriously, not just on specialist web design sites but on major news sites and search engines, etc. Part of it was "Web 2.0" and then Bootstrap style CSS frameworks and the maturity of browsers as IE6 died off. 1. https://www.youtube.com/user/Kurzgesagt https://www.youtube.com/user/Kurzgesagt 2. https://www.youtube.com/channel/UCHnyfMqiRRG1u-2MsSQLbXA https://www.youtube.com/channel/UCHnyfMqiRRG1u-2MsSQLbXA
- jameshart 5y agoGrant from 3b1b is actually explicitly encouraging people to try to make more mathematical education videos this summer [1] - and Freya Holmér cites that as being what encouraged her to expand from little gif explanations into a full-length exposition video for that piece on Bézier curves, so this is all connected! And in the spirit of sharing a bit of the ‘how it’s done’ - obviously while Grant uses Manim, Freya uses Unity3D and her ‘Shapes’ library [2] to produce her visualizations - she also streams a lot of her dev work so if you want to follow along with how it’s done, that’s another avenue to look at. 1: https://www.3blue1brown.com/blog/some1 https://www.3blue1brown.com/blog/some1 2: https://assetstore.unity.com/packages/tools/particles-effects/shapes-173167 https://assetstore.unity.com/packages/tools/particles-effect...
- fumblebee 5y agoI learned more from educational YouTube videos than I did during my (very expensive) lectures at university. I expect with the quality of videos that are now being churned out, that the "education gain coefficient" between old style lectures and brilliantly produced video content would only have increased further. (Of course this only works in practice if you're engaged with the video, which is also true for lectures).
- lifeisstillgood 5y agoI look at this (and most animated video) and think I ought to be able to use this in my boring grey corporate life - but maths at management levels rarely peeks above a std dev. I wonder how to raise the game?
- bee_rider 5y agoSynergy is just the management way of saying covariance, right? Surely you can introduce some more advanced statistics concepts.
- lifeisstillgood 5y agoIn most businesses having reliable up to date raw data is the base level challenge. Analysis after this is like climbing a mountain and then just sticking a flag in it is all the effort anyone has left!
- skratlo 5y agoWhy does it follow this pattern, at least in the docs, where the user is supposed to subclass Scene and provide a construct method? How does inheritance help here? Wouldn't it be simpler if instead users can make Scene using their own abstractions and functions in whatever way they feel is appropriate?
- nuclearnice1 5y agoI assume the Scene class is called into from some other part of the engine. So, your code needs to at least enter via those functions and return the right value / have the required side effects. There are probably other methods defining the scene interface defined in the base class definition.
- kzrdude 5y agoThat's how OOP (but not Python) is taught sometimes
- deleted 5y ago[deleted]
- ngmc 5y agoShameless plug: I’m mentoring a student who is building a beginner-friendly version of manim on top of p5.js for his Google Summer of Code Project - check it out! https://two-ticks.github.io/p5.teach.js/ https://two-ticks.github.io/p5.teach.js/ https://discourse.processing.org/t/animating-maths-in-p5-js https://discourse.processing.org/t/animating-maths-in-p5-js
- honksillet 5y agoOne notion that I have had is that the rocks star wall street trader might often be someone who has just been lucky 4 or 5 times in a row. If you assume that had actual insight on one trade and got lucky the other times you can attribute their success to mostly luck pretty easily. If you have a large enough pool of traders, the talisman traders are probabilistically inevitable.
- tnorthcutt 5y agoFans of Grant’s work (3Blue1Brown) might also like his short lived podcast, Ben Ben and Blue: https://www.benbenandblue.com https://www.benbenandblue.com One of the Bens is Ben Eater, who has a fantastic YouTube channel that I enthusiastically recommend: https://youtube.com/c/BenEater https://youtube.com/c/BenEater
- BeeOnRope 5y agoThis looks awesome. I've been looking for something like this, not for math but for animations showing the steps of an algorithm (thing something like a matrix transpose, showing each step by moving the cells as they are moved by the algorithm). Still it seems like a good match since math and this type of algorithm animation seem pretty close. The main downside to be is the lack of SVG output: I'd have to embed videos whereas I prefer SVG if possible. Any other contender out there with vector output?
- javajosh 5y agoWell I've been on a real Geometric Algebra (aka Clifford Algebra) kick lately, and ran across ganja.js [1]. It's a single no deps file that is...impressive. 120k uncompressed, and with it you can construct any degree algebra (including the more esoteric hyperbolic/parabolic ones), render to canvas, svg or webgl(!). It also includes a clever little DSL parser and interpreter (it overloads the scientific notation to name basis vectors!) that lets you construct more complex things from simple things using various kinds of products. The author, Steven De Keninck, is quite impressive as well, having got his start in the demoscene some time ago. He has a good video from SIGGRAPH 2019 [2] that explains why this algebra is better than [matrices, tensors, vectors, complex numbers]. Of particular interest (to me anyway) is the 2D projective geometry. I don't want to oversell it, but ganja is fucking amazing and there is a great deal I want to do with it. For one, I'd like to recapitulate my physics degree with it. [1] https://github.com/enkimute/ganja.js https://github.com/enkimute/ganja.js [2] https://www.youtube.com/watch?v=tX4H_ctggYo https://www.youtube.com/watch?v=tX4H_ctggYo
- enbugger 5y agoI see that the 3D animations in 3Brown1Blue's videos have lower framerate than the ones in 2D. Does it take so long to render 3D so that you'll have to lower the FPS to speed up the process or is it just another tool?
- bijinpanicker 5y agoI tried to make an animation engine [0]. I wonder how morphing shapes work in manim under the hood. I like to implement it on my own. If you find any resources, please share. [0] https://github.com/B-R-P/AnimPro https://github.com/B-R-P/AnimPro (only 2 commits)