What does HackerNews think of manim?

Animation engine for explanatory math videos

Language: Python

#2 in Python
The video series made by 3Blue1Brown are fantastic. He crafts visual math videos using an animation engine he has developed to provide great explanations for understanding concepts more deeply. Beyond the technical, his presentation style and insight makes them very motivational to follow.

Series on linear algebra: https://www.youtube.com/playlist?list=PLZHQObOWTQDPD3MizzM2x...

Animation engine: https://github.com/3b1b/manim

In case you're not aware, 3B1B has a Github repo for the engine he uses for the math animations so that others can use it to make similar things: https://github.com/3b1b/manim

There's also a loose group of people already doing the visual learners "explainers" thing over here: https://explorabl.es/ (you can scroll down for links to tools they use to make their explainers).

But yes, I also feel this is an important development and that this should be an ongoing way of teaching people things. Formal education has IMO stalled out around the printing press but there are massive opportunities on computers (and especially on globally networked computers) to take that a step further and leverage the capabilities of computers to make education even more engaging and information-dense.

Reminds me of https://github.com/3b1b/manim , a python library for animation that was made by the author of 3Blue1Brown videos.
Interesting to see https://github.com/3b1b/manim where the YouTuber has created a software tool to automate his work.

> never thought some simple animation of moving a ball could take a whole night

yeah always surprising (more complexity that expected) when we look under the hood of any operation

> Can you name some example...

https://www.videoscribe.co/en/ is used by a few creators on YT, you must have seen their videos. I wonder who is building the tool itself.

specifically it's a community variant of it. Grant still has his own version (https://github.com/3b1b/manim) where he works independently, and the community fork builds off that and e.g. adds and maintains things Grant might not care about.
To nitpick a bit, manim.community is a fork of the library he built. This is the original:

https://github.com/3b1b/manim

From the the READE:

"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."

There is also the community fork of manim

https://github.com/ManimCommunity/manim/

According to 3b1b on the original repo:

"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."

https://github.com/3b1b/manim

A 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

[1] https://github.com/3b1b/manim

[2] https://docs.manim.community/en/stable/examples.html

Not exactly what you are looking for, but 3blue1brown's https://github.com/3b1b/manim is a great resource all in all.
3brown1blue is also the creator of manim, the library used for his own videos: https://github.com/3b1b/manim.

It's an awesome python library to create math animations, I would highly recommend it.

I believe the maker of 3blue1brown has a open source kit for just that: https://github.com/3b1b/manim
I'm only aware of Cairo from 3b1b manim, where it's one of very few named dependencies (cairo, ffmpeg, sox, latex). https://github.com/3b1b/manim .. Maybe he'll rewrite it in Julia :)
For someone who's been following this only tangentially, how similar is the interface and implementation to what's used in Grant's https://github.com/3b1b/manim ?
I wonder who else is using his animation engine to do videos. It doesn't mention it in the docs.

https://github.com/3b1b/manim

Visuals are amazing, as always! I've recently learned that 3b1b has his own animation library. https://github.com/3b1b/manim I wonder if there are any manim art out there :)
My very humble list of things to look into about FOSS funding:

- Make a blog post about your situation, where do you work now (it doesn't have to be identifying info, something like a PhD student in Germany), what are your (social & technical) goals with this project, what about financial goals...etc. By "social" I mean why things like "why is this open source?" and "why do you think it ought to be done?"

- If the choice of AGPL is not based on strong political opinions, you might want to reevaluate that if you are planning for some commercial adoption. A lot of companies have policies on the inclusion of GPL code. MIT/BSD might be more viable in the long term.

- Read about people making money from FOSS, check their reports on their situation, and dig down to see how they started.

- I feel more confident donating when I know how much a creator/dev is making per month (via donations) and what their next goal is. (You know, these Patreon progress bars)

- Options are paralyzing. Choose one funding site to be the main one. You could leave the rest under an "other ways to donate" link.

- Be open to doing some freelancing until you can sustain yourself. (Math tutoring, Software gigs, consulting)

- A lot of the time, the thing that ends up actually making money is a side product sold on top of the original code. You could think about videos teaching how to use the library, consulting, feature requests...and such.

- People donate to the things they feel value and potential. The magnitude of your users is going to be a lot less than other projects out there. So, you might need to get more out of your users, deliver more value to them, and/or get researchers to write on how valuable your library was to them, so that non-expert, science enthusiasts understand the value proposition better.

- I don't know much about the field, but you might benefit from writing some bindings/wrappers for your library to be used from Python/Matlab/Fortran considering Julia's current market penetration.

- I know this sucks, but social media is pretty important if you want to be making money from donations. You want to follow people doing research in relevant areas and who might use your library. Join in anytime you can add something useful to the conversation. Get people to get used to your name and build creditability. Go where the users are and build an honest, trustworthy image for yourself there. EDIT: Ok, I see you have been doing that in discourse.julialang. Good job and continue ahead. Maybe after you setup a proper announcement for your open work, you can link to it in your signature that goes along with your posts/comments.

-----------------------

# Things to read (I am posting HN links because comments sometimes have hidden gems):

- I Quit My Job to Live on Donations to Zig (https://news.ycombinator.com/item?id=17256394) [first comment is spot on]

- Why I'm donating $150/month (10% of my income) to the musl libc project https://news.ycombinator.com/item?id=20268087

- I Just Hit $100k/year On GitHub Sponsors (https://news.ycombinator.com/item?id=23613719)

- I'm going to work full-time on free software (https://news.ycombinator.com/item?id=18920604)

- The happinesses and stresses of full-time FOSS work (https://drewdevault.com/2020/01/21/Stress-and-happiness.html)

- The path to sustainably working on FOSS full-time (https://drewdevault.com/2018/02/24/The-road-to-sustainable-F...)

-----------------------

# Off topic:

- If you still want to do YouTube, 3b1b open sourced the library he uses to make his videos.

https://github.com/3b1b/manim

- Maybe there is a niche for youtube vids for advanced students studying maths at home these days. IDK, that is not really my field.

3blue1brown is great, e.g. his Fourier transform animation is super intuitive: https://youtube.com/watch?v=spUNpyF58BY

He has opensourced his animation engine "manim" used in his videos: https://github.com/3b1b/manim

Worth looking at Grant's graphics library made for and used in his videos: https://github.com/3b1b/manim/
Hey everyone,

I've written a new blog post (https://rajatvd.github.io/Factor-Graphs/) on an awesome visualization tool that I recently came across -- factor graphs. Initially, I encountered them in the context of message passing on graphical models, but soon realized that they are useful in more general contexts.

This is the first post in a series that covers the basics and mainly focuses on understanding how factor graphs work as a visualization tool, along with a cool example of a visual proof using them. In future posts, I plan to cover algorithms like message passing and belief propagation using this visualization framework.

I made the animations using manim(https://github.com/3b1b/manim/), a math animation tool created by the amazing 3blue1brown. I built a small library, manimnx(https://github.com/rajatvd/manimnx), on top of manim to help interface it with the graph package networkx. You can find the code for the animations in this github repo: https://github.com/rajatvd/FactorGraphs.

Feedback is welcome!

> Seems like it would be much less useful to copy his configs rather than building your own organic system after years of use, though - which is what he did.

This is a great point and one I've been thinking about more recently. Tools and/or setups like the one displayed in the post with this level of specificity or complexity seem like they would be almost useless packaged up as a standalone. Much more valuable would be the system on which this was built (vim and the collections of extensions he used, not saying this is anywhere near an idea workflow but as you know if you use vim - it is extensible in its own right). Or, rather than that system, to take inspiration in it and design tools with much more intentional flexibility to allow people to build their experience.

I recently had a great conversation about how science educators might wish to have 3 brown 1 blue style animations or experiments, but such a programming tool would be much too difficult to teach to the educators. I think that is totally true, 3b1b generates his videos programmatically and while I believe some version of his tool is open source, he does not offer any support. But there is something to the idea of having one's own publishing tool and workflow to allow the exploration of ideas in whatever field it may be. For Science teachers, they ought to be able to play in a tool like 3b1b uses, but it can't be his exact one, it seems they'd need some well thought out foundation upon which to express their mental models of physics or geometry or whatever it is.

3b1b about page; first item is his modeling approach: https://www.3blue1brown.com/faq

3b1b animation: https://github.com/3b1b/manim

He has written a python library called "manim" for his visualizations https://github.com/3b1b/manim
He built a python library for his visualizations called manim available on his github [1].

[1] https://github.com/3b1b/manim

> Shame that this awesome visualization method he uses isn't used more ...

The animation engine is on GitHub so you can make your own: https://github.com/3b1b/manim

oof, the one thing i am wont to want with 3b1b videos is an interactive suite accompaniment.. unreasonably ungrateful i know ;P

i had high hopes this would be it, but this is just a concise lesson form for the series.. which is great! i am a huge fan of both eater's and sanderson's entire ouvre

what's great is that 3b1b releases the code that generates these videos and i have cloned the manim(o) library a number of times in the past when a video had an idea i wanted to play around with but the effort usually gets a low priority and i get distracted with more pressing projects

i figure a simple localhost python server serving up dynamic frames generated by manim could do the trick, maybe i'll work at it again this weekend

when i want to learn a new mathematical concept i like to write the source myself, which is great for getting at the nuts and bolts but it is usually after i have done this and start to tweak the models or constants that i begin to gain a real intuitive understanding of an underlying concept

(o) https://github.com/3b1b/manim

Yep, and all the source code is developed in the open as well! https://github.com/3b1b/manim
His python library for generating his visuals is open source and equally as impressive:

https://github.com/3b1b/manim

The python programs he wrote to produce those visualizations is also hosted on GitHub[0]. The repo includes the source for all his videos.

[0] https://github.com/3b1b/manim

I've recently learned that 3blue1brown's [1] videos are generated with python:

https://github.com/3b1b/manim

[1] https://www.youtube.com/channel/UCYO_jab_esuFRV4b17AJtAw

He creates each animation using a set of Python tools and libraries he wrote. You can find them published here: https://github.com/3b1b/manim
All videos from 3blue1brown are amazing! Followed up through the latest 'Essence of Calculus' series, really a gem.

He makes the software used to create the animations and it's open-source: https://github.com/3b1b/manim

Essence of linear algebra [1] , in 3blue1brown youtube channel totally changed my perspective on Linear Algebra. One of the best channels in YouTube I have seen so far. He makes his videos using the animation engine [2] he built himself.

[1] https://www.youtube.com/playlist?list=PLZHQObOWTQDPD3MizzM2x...

[2] https://github.com/3b1b/manim

Yes, the Python library is called Manim, and it's on GitHub:

https://github.com/3b1b/manim

Here is the animation engine used in the videos (written in Python):

Manim: animation engine for explanatory math videos https://github.com/3b1b/manim

I think getting this (https://github.com/3b1b/manim) to work needs a video would need a video of its own. :)

Here's where I got to since the README.md is basically empty for the moment.

So far I've got it to do something. It needs at least these python libraries as dependencies.

    - cv2 (This is OpenCV and is not easily installable inside virtualenv)
    - colour
    - progressbar
    - tqdm
I'm running everything from the main manim directory, after a git clone.

    git clone https://github.com/3b1b/manim
    cd manim
Its also expecting a `../animation_file/images` directory to exist.

    mkdir -p ../animation_file/images
Now each project consist of a set of classes, each one a scene. To view a scene, it can just be instantiated

    PYTHONPATH=`pwd` python
    >>> scene = generate_logo.LogoGeneration()
There's a progress bar that shows a few times. Then a new window shows up for me (from ImageMagick? Maybe that's a dependency too.).

Then I think you can call .construct() on the object.

    >>> scene.construct()
But it took too much computational power so I stopped there.
From his YouTube comments, he wrote his own engine in Python and open sourced it -- https://github.com/3b1b/manim