FairyFlow — animated slides & animations in Python
Documentation · Get started · Examples
FairyFlow is a Python-driven tool for creating animated slides and general-purpose animations. You write plain Python, and FairyFlow evaluates it live in an interactive environment that keeps your code, scene tree, and rendered result in sync.
Key features
- Python-first authoring — animations are plain
.pyscripts; no DSL to learn - Live interactive environment — edit code, press Ctrl+Enter, see the result instantly
- Easy scene exploration — code editor connects code, the scene tree, and elements in rendered image
- Vector scene graph — scenes are stored as vector graphics and rasterized at the last moment, so any output resolution is lossless
- Presentation cues —
cue()pauses the player for click-to-advance presentations - Multiple export formats — standalone
.ffpkgplayer package, MP4 video, and multi-page PDF - Performant backend — Backend is implemented in Rust
Documentation
https://spirali.github.io/fairyflow/
Quick start
pip install fairyflow
fairyflow init my_project
fairyflow open my_project
fairyflow open starts a local web server and prints the URL to the interactive studio. Open scenes/scene1.ffpy in the editor, write some code, and press Ctrl+Enter to evaluate:
with Scene():
Text("Hello world!").fade_out(dur=1.0)
Project layout
my_project/
├── fairyflow.toml ← project settings (fps, prologue path)
├── prologue.py ← shared imports and defaults for all scenes
├── scenes/
│ └── scene1.ffpy ← animation code
└── sequences/
└── sequence1.ffsq ← ordered playlist of scenes for export
License
MIT — see LICENSE.
Metadata
Release files for fairyflow 0.7.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distributions (wheels)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| fairyflow-0.7.0-py3-none-win_amd64.whl | Python 3 | none | Windows x86-64 | Details for fairyflow-0.7.0-py3-none-win_amd64.whl |
| fairyflow-0.7.0-py3-none-manylinux_2_17_x86_64.whl | Python 3 | none | Linux glibc 2.17+ x86-64 | Details for fairyflow-0.7.0-py3-none-manylinux_2_17_x86_64.whl |
| fairyflow-0.7.0-py3-none-macosx_11_0_arm64.whl | Python 3 | none | macOS 11.0+ ARM64 | Details for fairyflow-0.7.0-py3-none-macosx_11_0_arm64.whl |
Total release size: 21.8 MB
Release files / fairyflow-0.7.0-py3-none-win_amd64.whl
| Download URL | fairyflow-0.7.0-py3-none-win_amd64.whl |
|---|---|
| Size | 6.8 MB |
| Tags | Python 3 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
e811a70e6627a151a39031d2992c3e7b6489dd67dba5679c4d27c5f3aa76c388
|
|
BLAKE2b-256 checksum How to use checksums |
e4499195347e3d5af8e0667813f402613bf1e94c7aa4878b82d2edb514403326
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 19, 2026.
Transparency logRelease files / fairyflow-0.7.0-py3-none-manylinux_2_17_x86_64.whl
| Download URL | fairyflow-0.7.0-py3-none-manylinux_2_17_x86_64.whl |
|---|---|
| Size | 8.3 MB |
| Tags | Linux glibc 2.17+ x86-64 Python 3 |
|
SHA-256 checksum How to use checksums |
193e458499ef562e5d7a785ac3b9bcc19da6b31488bdc5b23616d5b43d03b52d
|
|
BLAKE2b-256 checksum How to use checksums |
74f0b787b415229330f4ecdf476b3ee872b1d182238d5767e702ab669bf7ce9c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 19, 2026.
Transparency logRelease files / fairyflow-0.7.0-py3-none-macosx_11_0_arm64.whl
| Download URL | fairyflow-0.7.0-py3-none-macosx_11_0_arm64.whl |
|---|---|
| Size | 6.7 MB |
| Tags | Python 3 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
9d5893efeb2321402a874647b7f605de627cb6dc6f43fb23d3a374961c6ce6eb
|
|
BLAKE2b-256 checksum How to use checksums |
debb22750d289eb253836a0bca28ba27ceaff6209f5109421a40a699b62bc613
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 19, 2026.
Transparency logSecurity for fairyflow 0.7.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 3 files in this release have been uploaded with provenance metadata.
Attestation for fairyflow-0.7.0-py3-none-win_amd64.whl
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 19, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.