An interactive environment for crafting programmatic animations and slides in Python.
Project description
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
- 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
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():
stext("Hello world!").fade_out()
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
Export formats
| Format | Command / UI |
|---|---|
Player package (.ffpkg) |
Export → Player package in the studio |
Video (.mp4) |
Export → Video (requires ffmpeg) |
| Export → PDF |
Play a package with:
fairyflow play mypackage.ffpkg
License
MIT — see LICENSE.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file fairyflow-0.1.0-py3-none-win_amd64.whl.
File metadata
- Download URL: fairyflow-0.1.0-py3-none-win_amd64.whl
- Upload date:
- Size: 5.9 MB
- Tags: Python 3, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4d26b26f51d06751bf146338c6a67572f90415777f6db63e8d8ff499414e6a82
|
|
| MD5 |
027da0703399c31b16c958a11787ce8d
|
|
| BLAKE2b-256 |
7bbb37373d24858a0358cb4c8fceffbcbfa484ec51f2a489f7b0e3823d071fcc
|
Provenance
The following attestation bundles were made for fairyflow-0.1.0-py3-none-win_amd64.whl:
Publisher:
build.yml on spirali/fairyflow
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
fairyflow-0.1.0-py3-none-win_amd64.whl -
Subject digest:
4d26b26f51d06751bf146338c6a67572f90415777f6db63e8d8ff499414e6a82 - Sigstore transparency entry: 1460840551
- Sigstore integration time:
-
Permalink:
spirali/fairyflow@7aa46b19bd8917a2ecd64322c72898d8e4f0f08f -
Branch / Tag:
refs/tags/v0.1 - Owner: https://github.com/spirali
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build.yml@7aa46b19bd8917a2ecd64322c72898d8e4f0f08f -
Trigger Event:
push
-
Statement type:
File details
Details for the file fairyflow-0.1.0-py3-none-manylinux_2_17_x86_64.whl.
File metadata
- Download URL: fairyflow-0.1.0-py3-none-manylinux_2_17_x86_64.whl
- Upload date:
- Size: 7.4 MB
- Tags: Python 3, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c0eac984a1c7d2842bffcb423bef553010e05cd70fa775063d95eb13ac5d2f5d
|
|
| MD5 |
8b56427e786fc52b6e064aa1ae021116
|
|
| BLAKE2b-256 |
06b8c0a00312e32d4e1cd7b3444dab34b27ea21ba4ad962f048c9c8547445eb3
|
Provenance
The following attestation bundles were made for fairyflow-0.1.0-py3-none-manylinux_2_17_x86_64.whl:
Publisher:
build.yml on spirali/fairyflow
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
fairyflow-0.1.0-py3-none-manylinux_2_17_x86_64.whl -
Subject digest:
c0eac984a1c7d2842bffcb423bef553010e05cd70fa775063d95eb13ac5d2f5d - Sigstore transparency entry: 1460840761
- Sigstore integration time:
-
Permalink:
spirali/fairyflow@7aa46b19bd8917a2ecd64322c72898d8e4f0f08f -
Branch / Tag:
refs/tags/v0.1 - Owner: https://github.com/spirali
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build.yml@7aa46b19bd8917a2ecd64322c72898d8e4f0f08f -
Trigger Event:
push
-
Statement type:
File details
Details for the file fairyflow-0.1.0-py3-none-macosx_11_0_arm64.whl.
File metadata
- Download URL: fairyflow-0.1.0-py3-none-macosx_11_0_arm64.whl
- Upload date:
- Size: 5.9 MB
- Tags: Python 3, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cf1066e123a2033f1445c43a1800c38b4511b90719c371e820c9e7c8cf13c749
|
|
| MD5 |
fc76b762c6231c240e4230cca3c38a4f
|
|
| BLAKE2b-256 |
c3ffc819430ecb7f1af7425089fdb0c29ec5644e0a22a23b920db22c3374a599
|
Provenance
The following attestation bundles were made for fairyflow-0.1.0-py3-none-macosx_11_0_arm64.whl:
Publisher:
build.yml on spirali/fairyflow
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
fairyflow-0.1.0-py3-none-macosx_11_0_arm64.whl -
Subject digest:
cf1066e123a2033f1445c43a1800c38b4511b90719c371e820c9e7c8cf13c749 - Sigstore transparency entry: 1460840890
- Sigstore integration time:
-
Permalink:
spirali/fairyflow@7aa46b19bd8917a2ecd64322c72898d8e4f0f08f -
Branch / Tag:
refs/tags/v0.1 - Owner: https://github.com/spirali
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build.yml@7aa46b19bd8917a2ecd64322c72898d8e4f0f08f -
Trigger Event:
push
-
Statement type: