A powerful Python framework for creating mathematical animations programmatically.
Project description
A powerful Python framework for creating mathematical animations programmatically
🌌 Fluxion
Fluxion is designed to be the next evolution of programmatic animation systems — built for speed, simplicity, and powerful visual storytelling.
Fluxion is:
- ⚡ Fast - Optimized rendering pipeline for quick iterations
- 🎨 Beautiful - High-quality vector graphics and smooth animations
- 📐 Mathematically expressive - Intuitive API for complex mathematical visualizations
- 🧠 Built for creators, educators, and engineers - Perfect for educational content, presentations, and technical demonstrations
- 🧩 Fully scriptable with Python - Leverage the full power of Python for your animations
- 📦 Easily extensible - Plugin system for custom functionality
📚 Table of Contents
🚀 Features
🎨 High-Quality Vector Rendering
Create crisp, scalable animations with Cairo and OpenGL rendering backends.
🧩 Modular Scene System
Build complex animations by composing simple, reusable components.
⚡ GPU-Ready Architecture
Leverage modern graphics capabilities for real-time rendering and previews.
📊 Math-First API
Intuitive interfaces for mathematical objects, transformations, and animations.
📝 Jupyter Notebook Magic
Seamlessly integrate animations into your Jupyter workflows with %%fluxion magic commands.
🖥️ Command Line Renderer
Powerful CLI for batch rendering and automation.
🧱 Plugin System
Extend Fluxion with custom functionality through a flexible plugin architecture.
🖼 Export Formats
Export to MP4, GIF, PNG sequences, and more.
🧰 Installation
Install via pip
pip install fluxion-engine
Developer Installation
git clone https://github.com/Fluxion-engine/fluxion.git
cd fluxion
pip install -e .
⚡ Quick Start
Create a file named example.py:
from fluxion import *
class SquareToCircle(Scene):
def construct(self):
square = Square()
circle = Circle().set_fill("#EF6BBB", 0.5)
self.play(Create(square))
self.play(Transform(square, circle))
self.play(FadeOut(square))
Render:
fluxion -p -ql example.py SquareToCircle
You should see your native video player pop up and play a simple scene where a square transforms into a circle!
🔧 CLI Usage
General syntax:
fluxion [flags] file.py SceneName
Common Flags
-p- Preview the animation after rendering-ql- Quick render at low quality (faster)-qh- High quality render-s- Skip to the end and show the final frame-n <number>- Skip ahead to the n'th animation-f- Show the file in the file browser
For a complete list of options:
fluxion --help
📓 Jupyter Support
Fluxion ships with a %%fluxion IPython magic for use in JupyterLab and Jupyter notebooks:
%%fluxion -v WARNING -ql
from fluxion import *
class MyScene(Scene):
def construct(self):
circle = Circle()
self.play(Create(circle))
🔠 API Overview
Shapes
Circle(), Square(), Triangle(), Rectangle(), Line(), Arrow(), Dot()
Colors
RED, BLUE, GREEN, YELLOW, PURPLE, ORANGE, PINK, WHITE, BLACK
# Or use hex colors
obj.set_color("#FF5733")
Animations
Create(), FadeIn(), FadeOut(), Transform(), Write(), DrawBorderThenFill()
Camera Controls
self.camera.frame.move_to(point)
self.camera.frame.scale(2)
🛣️ Roadmap
✔ v0.1.0 (Current)
- Core animation engine
- CLI renderer
- Jupyter integration
- Basic shapes and animations
- Cairo and OpenGL backends
🚧 v0.2.0 (Planned)
- Enhanced 3D support
- Real-time preview improvements
- Performance optimizations
- Extended plugin API
🧪 Future
- Web-based editor
- Cloud rendering
- Collaborative features
- AI-assisted animation generation
❓ FAQ
Q: What Python versions are supported?
A: Fluxion requires Python 3.11 or higher.
Q: Can I use Fluxion for commercial projects?
A: Yes! Fluxion is MIT licensed and free for commercial use.
Q: How do I contribute?
A: Check out our Contributing Guide to get started!
🤝 Contributing
Contributions are welcome! Please see our Contributing Guide for details on how to get started.
📜 License
Fluxion is licensed under the MIT License. See LICENSE for more information.
Made with ❤️ by The Fluxion Community
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 Distribution
Built Distribution
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 fluxion_engine-0.1.1.tar.gz.
File metadata
- Download URL: fluxion_engine-0.1.1.tar.gz
- Upload date:
- Size: 554.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e1d2a4be3d2b404177230ab80bface1704427ed78db9c01050e1b06a8be81fee
|
|
| MD5 |
3c9bb2402b2a1ff8c364817d4498ad41
|
|
| BLAKE2b-256 |
2a4e1d35d22490e30c7af1fe23b8c13389c476e3e0aae3360d28b81aa1a6e2b3
|
File details
Details for the file fluxion_engine-0.1.1-py3-none-any.whl.
File metadata
- Download URL: fluxion_engine-0.1.1-py3-none-any.whl
- Upload date:
- Size: 655.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
75e92a0df4eac70ae3545fac39f78d310489c5d9b1fb5232b49eee95be7b6ac6
|
|
| MD5 |
305e3349530bfc388e53a9bddc175cc7
|
|
| BLAKE2b-256 |
037ce5b308e3af6b9d75af7566bdfaab6c6fd85c3ed32902b365583906833417
|