mathematical animations with haskell https://reanimate.github.io
  • Haskell 95.8%
  • Elm 3.9%
  • Nix 0.3%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Jan Hrček 5a7c53c3f4 Implement basic elm viewer
Former-commit-id: bb096343c7e818db5ac668c5666e6935c1172916
2019-12-16 09:25:23 +08:00
.azure Clean up azure build scripts. 2019-12-13 20:04:00 +08:00
data Add missing svg files. 2019-11-28 20:28:23 +08:00
docs Fix typo 2019-12-10 01:20:09 +00:00
examples Fix some hlint warnings 2019-12-11 07:50:27 +08:00
misc Add bending blender test. 2019-12-01 14:58:45 +08:00
src Implement basic elm viewer 2019-12-16 09:25:23 +08:00
test Test suite: check the svg output of examples. 2019-12-13 18:54:35 +08:00
videos More documentation, parameters, update blender example. 2019-12-09 17:22:14 +08:00
viewer Basic keymap support (up,down,left,right,space). (#14) 2019-09-20 15:36:36 +08:00
viewer-elm Implement basic elm viewer 2019-12-16 09:25:23 +08:00
.gitignore Add .stack-work to .gitignore 2019-12-10 10:36:07 +01:00
azure-pipelines.yml Fix azure formatting. 2019-09-17 10:04:23 +08:00
ChangeLog.md Bump version to 0.1.6.0 2019-09-14 17:46:03 +08:00
LICENSE Create LICENSE 2019-09-12 23:00:55 +08:00
mkdocs.yml Documentation. (#12) 2019-09-19 16:52:34 +08:00
README.md Improve haddock documentation. (#20) 2019-09-28 16:24:41 +08:00
reanimate.cabal Implement basic elm viewer 2019-12-16 09:25:23 +08:00
RESOURCES.md Create RESOURCES.md 2019-10-17 15:28:38 +08:00
Setup.hs First stab at reanimate. 2019-02-13 21:08:49 +01:00
stack-lts-11.yaml Feature showcase (#29) 2019-11-17 13:02:37 +08:00
stack-lts-12.yaml Feature showcase (#29) 2019-11-17 13:02:37 +08:00
stack.yaml Feature showcase (#29) 2019-11-17 13:02:37 +08:00
stack.yaml.lock Feature showcase (#29) 2019-11-17 13:02:37 +08:00
test.tex Improve test environment. (#17) 2019-09-24 19:43:06 +08:00

Hackage Build Status Documentation Status

Platforms

reanimate

Reanimate is a reactive framework for creating non-interactive animations from SVG images. This package consists of a set of combinators, a renderer (using ffmpeg), and a web-based previewer. Inline latex code is supported when 'latex' and 'dvisvgm' are installed.

Nothing about the API is stable at this point.

YouTube

Completed animations are uploaded to the Reanimated Science channel.

Animation snippets are uploaded to the Reanimated Science Playground channel.

Getting started

Reanimate ships with a web-based viewer and automatic code reloading. To get a small demo up and running, clone the repository, run one of the examples (this will install the library), and wait for a browser window to open:

$ git clone https://github.com/Lemmih/reanimate.git
$ cd reanimate/
$ stack build
$ stack ./examples/latex_color.hs

This should render the latex_color example in a new browser window. If you then change the animation source code, the browser window will automatically reload and show the updated animation.

TODO

  • Improve bounding box approximations
  • Alignment and positioning combinators
  • Figure out why performance doesn't scale linearly with more cores
    • diagrams are slow because they are rendered as a bytestring and then parsed as SVG. Find a way to shortcut.
  • Test-suite: Compile and render all the example animations on the build servers. The SVG output should be stable.
  • API for generating slides.
  • Warn if 'group' nodes are found in 'clippath's.
  • Optionally use gifski for high quality gifs: https://gif.ski/
  • Driver:
    • Flags for selecting fps in web viewer
    • Detect if there's already an open browser window. If there is, don't open another one.
    • Watch all code files in the same directory (and sub-directories) as the source code.
  • Viewer:
    • Keys for pausing, moving frame-by-frame, resetting.
  • Documentation:
    • Tutorials
      • Coordinate system
      • "Draw" effect
      • Pixel perfect povray (orthographic projection)
    • Gallery

Examples

The example gifs are displayed at 25 fps.

LaTeX wheel Sunflower Tangent Goo Drawing LaTeX equations Bounding boxes Colorful LaTeX Bezier curves Valentine's Day Basic LaTeX