I'm trying to make animations to explain mathematical concepts in which formulas would play a big role. I'd need text and formulas to do some simple things like fading in and out, moving, rotating, morphing, etc.

As my background is in programming, I figured Iid try to make some sort of automated process:

  1. Generate SVG formulas out of LaTeX sources.
  2. Animate the text/formulas.
  3. Export as a video.

I've already managed to do step 1 with little trouble. Now, I know I could do step 2 with some animation software, but I've been looking for some solution that involves programming instead of WYSIWYG, because I feel more comfortable in that territory. I'm open to any language/library, although it's much preferable if it can run on UNIX-like systems. I've already checked some libraries like Cairo and such, but all seem to have big trouble using vector graphics instead of bitmaps, and although using SVGs is not a requirement for me, I think it'd make the process more simple.

1 Answer 1


I would strongly recommend trying the Jupyter notebooks environment with one of several plotting libraries that support animation.

This combination lets you combine, on a single notebook page, text formatted with markdown, formulae with latex or mathjax, plots & graphs, etc. nice example here.

Amongst the plotting tools that support animation there are:

It is well worth having a browse at https://github.com/jupyter/jupyter/wiki/A-gallery-of-interesting-Jupyter-Notebooks#data-visualization-and-plotting to see some of the possibilities.

I would also suggest taking a look at MoviePy which can produce an animation of any code that produces a plot as an image or a numpy image array it brings a lot of this together here with the following being some examples of such animations:

enter image description here enter image description here enter image description here

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.