For the inverted classroom project I experimented with the python library called Manim. Manim was created by Grant Sanderson of the famous 3Blue1Brown YouTube channel.

Creating a video with Manim completely different to more classical approaches which require several steps (like recording and editing), which are costly to repeat. If the video is created purely from code, any edits are cheap and the whole process becomes much more iterative. As repurposing videos is one of the main aspects of the inverted classroom project Manim was a production method we wanted to check out.

In the following experimental video (which is in German and discusses the solution of a concrete exercise) I also used Manim Voiceover to synthesize the voice-over via the Azure text-to-speech engine. I am quite happy with the result and admire the beauty of the entire video (including audio) arising from code.

Verdict

For our project however Manim is not the best choice for several reasons:

  • It is hard to learn, which is a problem if student assistants are intended to be the main video producers.
  • The power to change every detail easily (compared to classical video editing) is also a curse, because it makes it harder to get to the point where you can confidently say “it’s done”.
  • Setting up the environment is not entirely trivial, because there are many dependencies, especially if the voice-over module is used.1

So, currently, Manim is a tool for enthusiasts, who want to create high-end mathematical videos and like to fiddle around.


  1. The following voice-over setup is particularly complicated: 1. Use the RecorderService as SpeechService, which requires access to your computer’s mic ($\Rightarrow$ another dependency) 2. Use bookmarks, which allow for precise timing of animations, but need “word boundaries” to work. Services like Azure provide these via the API, but in the case of a local recording OpenAI’s whisper is used to transcribe the audio to text again! ↩︎