- Haskell 95.8%
- Elm 3.9%
- Nix 0.3%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
|
|
||
| data | ||
| examples | ||
| server | ||
| src/Reanimate | ||
| test | ||
| viewer | ||
| web | ||
| azure-pipelines.yml | ||
| BAKER_SCRIPT.md | ||
| ChangeLog.md | ||
| README.md | ||
| reanimate.cabal | ||
| Setup.hs | ||
| stack.yaml | ||
| stateful.hs | ||
| test_latex.tex | ||
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/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
website for live codingbounding boxesUse svg-tree instead of lucid-svgcrossplatform file watching- Improve bounding box approximations
- Select desired FPS in web previewer
- Download rendered animations in web previewer
- Alignment and positioning combinators
- Consistent caching framework
- 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.
- Driver:
Command line options for rendering videos.- Flags for selecting fps in web viewer
- Command for validating tools: latex, dvisvgm, ffmpeg. Warn of old versions of ffmpeg that don't render SVGs correctly.
- Use GHC.Environment to find own source code.
- Generate interleaved frames (1fps, 2fps, 4fps, etc)
- Flag for generating youtube videos (ffmpeg options preset).
- Viewer:
- Keys for pausing, moving frame-by-frame, resetting.
- Fix race conditions.
Examples
The example gifs are displayed at 25 fps.















