Animation library based on SVGs. Can import (and manipulate) SVGs from LaTeX and diagrams. Exports gifs, mp4s, and more. Ships with a webbased viewer and auto-reloader.


Revision history for reanimate

Notable changes to the project will be documented in this file.

The format is based on Keep a Changelog and the project adheres to the Haskell Package Versioning Policy (PVP) – 2021-01-14

  • Add flag for disabling the HGeometry dependency. – 2021-01-04

  • Fixed performance issue on Windows.
  • Fixed live viewer with Firefox. – 2021-01-04


  • Reanimate.reanimateLive
  • Reanimate.reanimateLiveEntry – 2020-10-27


  • Reanimate.LaTeX.latexCfgChunks.


  • xeLaTeX bug fixes.
  • Documentation for external data sets. – 2020-10-10


  • External icon sets.
  • Font configurations.


  • Improved unicode support.
  • Improved support for filter effects.
  • Bug fix in the path parser. – 2020-10-07


  • LaTeX font configurations.
  • SVG support for all filter effects. – 2020-09-20


  • Objects: Use Linear.V2 instead of tuples.
  • Reanimate.Scene.sceneAnimation -> Reanimate.Scene.scene


  • Improved object documentation.
  • CI stability improvements.
  • Add interactive tutorial.
  • Minor playground improvements. – 2020-09-09


  • Hashable instance for SVG.


  • Improve efficiency of time variables (thanks to Shaurya Gupta).
  • Major refactoring of SVG interface.
  • Haddock improvements.
  • Improve consistency of object bounding-box calculations.
  • Rewrite object transitions in terms of Animations.


  • Reanimate.Scene.tweenVarUnclamped
  • Reanimate.Math.SSSP.pdual


  • Shaurya Gupta (@sureyeaah)
  • Jan Hrček (@jhrcek) – 2020-08-29

  • Improve documentation. – 2020-08-27

  • Web-viewer: Use GHCi to reload code, reducing latency by ~100x.
  • Improve caching for blender and povray.
  • Hide many internal modules.
  • Move hmatrix dependency to a separate package.
  • Use hgeometry instead of broken C++ code.
  • Introduce the basics for a new graphical object system.
  • Introduce online playground.
  • Introduce interactive embedded player.
  • Hide internal modules and bring documentation coverage up to 100%. – 2020-07-30

  • Slightly improved error messages. – 2020-07-28

  • Show progress when running ffmpeg.
  • Small improvements to the scene API.
  • Bug fixes to the voice API.
  • Support ImageMagick version 7.
  • Improved Windows build support.
  • Improved error reporting in web-viewer.
  • Improved error messages when ffmpeg doesn’t support SVGs.
  • Improved filter-effect support.
  • Generalized LaTeX support.
  • New experimental object system.
  • Discord bot capable of rendering animations in chat.
  • Lots of assorted bug fixes and minor improvements. – 2020-05-22

  • Voice control via the Gentle forced-aligner.
  • Rename Reanimate.Interpolate to Reanimate.ColorComponents
  • Rename Reanimate.Signals to Reanimate.Ease
  • Fix positioning of latex output such that the baseline starts at (0,0) – 2020-05-16

  • Fix bug that forced GIF width to 320 pixels.
  • Add helper for creating custom viewboxes, withViewBox.
  • Add newSprite_, newSpriteSVG_.
  • Drop support for lts-11 and lts-12. Lts-15, lts-14 and lts-13 are supported.
  • Add common interface for polygon morphing. – 2020-05-12

  • Expose ‘mkImage’ – 2020-05-11

  • Improve with better examples at a higher framerate.
  • Improve canvas documentation, courtesy of William Yao.
  • Fix ‘renameFile’ bug when moving files between different file-systems.
  • Improve GeoJSON performance.
  • Improve SVG rendering performance.
  • CLI: Show time spent and time remaining when rendering.
  • Better support for external images.
  • Support external raster engines (inkscape, image magick, rsvg).
  • Fix framerate bug affecting GIFs.
  • Improve boundingbox performance.
  • Add generalized cubic bezier signal. – 2020-02-25

  • Rewrite viewer from javascript to elm.
  • Improve API documentation.
  • Support for GeoJSON files (rendering borders, etc).
  • Fix bug affecting GIF frame rates.
  • Improve SVG serialization performance.
  • Add support for transitions (ie. functions that merge animations).
  • Properly handle ctrl-c when rendering.
  • Improve accuracy of bounding-box approximation.
  • Rewrite the API for building animations sequentially.
  • Expand ‘pathify’ to work on a larger subset of SVG.
  • Respect aspect ratio when ‘height’ or ‘width’ is specified but not both. – 2019-09-14

  • Test suite.
  • Improved Windows support.
  • Automated builds on Linux, Mac, and Windows.
  • Automated builds with lts-13, lts-12, and lts-11.
  • Monadic language for composing animations (Reanimate.Scene).
  • Support for Povray.
  • Viewer: Incrementally generate videos with increasing fps.
  • ‘check’ command to verify external dependencies.
  • Built-in data for color theory (cone sensitivity etc).
  • Built-in colormaps.
  • Raster image support.
  • Reorganized signals.
  • Color interpolation (rgb, hsv, lab, xyz).
  • Improved performance of multi-threaded renderer. – 2019-07-07

  • Basic driver for live previewing and rendering.
  • Basic tools for manipulating SVGs (pathification, simplification, lowering transformations, etc).
  • Automated CI builds (azure). – 2019-03-08

  • First version. Released on an unsuspecting world.