Most of the clips began in our lectures. Each lecture is one Markdown file, which lecturekit builds into a Reveal.js deck for the room and a Beamer PDF for study. Figures are drawn from numbers and clips are rendered from code with Manim, so a lecture can be rebuilt and checked like any other analysis.
manim8 is the animation layer. An animation is specified in versioned YAML, or described in plain language to an assistant that writes the YAML. It is composed from registered components, reviewed through still frames at named checkpoints, and rendered under a versioned style. The look of a lecture is defined once, in a brand file, and the same clip can be rendered for a light and for a dark deck.
The versions shown here are manim8 projects in site-animations, with the data each clip draws. Simulated curves and fits are computed with prfmodel, and each clip is rendered twice from the same scene, for the light and the dark version of the site.
Both packages are open source under the MIT license and in active development; neither is on PyPI yet. lecturekit installs from GitHub and needs Quarto and a TeX distribution (see its installation notes):
pip install "lecturekit[review,figures,clips] @ git+https://github.com/tknapen/lecturekit@main"
lk new my-lecture && cd my-lecture && lk build
Builds a lecture from one Markdown source into a Reveal.js deck for the room and a Beamer PDF for study, with figures drawn from numbers (TikZ), clips rendered from code (Manim), a timing budget checked at every build, and light and dark themes from one brand file. A Quarto extension and a Python package.
A local-first system for reproducible, consistently styled scientific animations with Manim. An animation is specified in versioned YAML, composed from registered components, reviewed through still frames at named checkpoints, and rendered under a versioned style.