Important Note: A new post containing all of the information in this series only updated to Python 3.7 and the latest (Dec 2018) commit of manim can be found here: Getting Started Animating with manim and Python 3.7
These posts are based on an earlier version of manim which uses Python 2.7. The latest version of manim is using Python 3. To follow along with these posts, use Python 2.7 and the May 9, 2018 commit of manim .
Grant Sanderson of 3Blue1Brown has an amazing series of videos on a variety of topics in mathematics. I especially like how he helps you develop a deeper intuitive feel of some mathematical concepts in linear algebra, calculus, and several other topics. What is also pretty awe-inspiring is that he has developed the animation tools, called manim, for his videos in Python, which has inspired me to try and animate some videos of my own. Unfortunately there are not many resources for learning how to use manim (which I think stands for mathematical animation) so I decided to set out and teach myself how to use it. The code for manim is freely available on Github. I’ve noticed a number of people expressing interest in learning how to use manim so I thought I’d share my journey through a series of posts.
The following assumes you have a good understanding of Python and of object oriented programming. Also note that this is based on the May 9, 2018 commit of manim – future versions may break things
Before getting things up and running, I want to point out that this is in no way a definitive manual of the workings of manim. It is merely a narration of my own journey learning how to use manim. My understanding may be faulty and my execution may not be optimal. With those caveats in mind, let’s get started learning how to create our own beautiful mathematical animations.
Tutorial posts in the manim Series:
- Part 1: Installing manim and Python
- Part 2: Creating Your First Scene
- Part 3: More Shapes
- Part 4: Creating Text
- Part 5: Mathematical Equations
- Part 6: Aligning Text
- Part 7: Graphing Functions
- Part 8: More Graphing
- Part 9: Vector Fields
- Part 10: 3D Scenes
- Part 11: Fields of a Moving Charge
- Part 12: Working with SVG Files
Note: This tutorial series was created using Python 2.7 and the May 9, 2018 commit of manim, which can be found here. I hope to create posts on the updated version sometime in the future. If you are using a newer version of manim, it can be a great exercise figuring out what has changed that broke your previous code. Please post in the comments about changes you’ve found and things that don’t work the same way they did in the May 9 commit.
Tutorial files can be found at https://github.com/zimmermant/manim_tutorial