About Algan¶
Algan (ALGorithmic ANimation) is a Python library for making 2-D and 3-D animations. Algan is inspired by Manim, and aims to keep the same ease of use, while providing a full-fledged GPU-oriented raytraced renderer for complex moving 3-D scenes and realistic lighting.
Key capabilities include:
Lazy animation recording. Algan separates scene authoring from rendering, meaning that a scene can be authored once and rendered many times, and scenes can be authored out of animation order.
Composable animation contexts.
Seq,Sync,Lag, andOffare context wrappers which automatically compose with eachother, meaning animation code can be written without thinking about how it will be used in a video. This promotes writing modular and reusable animation code.2-D and 3-D geometry. Native cubic-Bezier shapes, text and TeX, triangle surfaces, point clouds, imported 3D asset models, and compatible Manim vector objects are handled natively.
Physically based rendering. Materials, fragment shading, lighting, shadows, reflection/refraction, and ray-tracing paths are supported. Custom fragment shading and scattering can be written as Taichi functions.
Synchronized audio. Audio and speech contexts are recorded on the same Scene timeline as visual animation, making it easy to line up animations with voice-over narration.
First Steps¶
Follow Installation to install Algan and its system dependencies.
Learn how to use Algan at Getting Started and subsequent tutorials.
Browse the catalogue of available objects at The Mob Gallery, and the ready-made animations at Built-in Animations.
Manim users can start with Manim Migration Guide.
Getting Help¶
For individual classes, methods, and functions, check the reference manual or use the documentation search.
Found a bug or have a suggestion? Open an issue on our GitHub issue tracker.
Join our Discord server to chat with the developers and fellow Algan users.
Documentation Index¶
- Installation
- Tutorials & Guides
- New User Tutorials
- Galleries
- Advanced User Tutorials
- Positioning and Layout
- Bezier Curves and Circuits
- Text and Mathematics
- Importing From Manim
- Cameras
- Lighting and Shadows
- Shaders and Materials
- Reflections and Glass
- Images and Textures
- Importing 3-D Models
- Backgrounds and Post-Processing
- Transparent Backgrounds
- Audio and Speech
- Custom Animations
- Animating Out of Order
- Multi-Scene Projects
- Performance and Quality
- Renderer Limitations
- Settings
- Saving Videos and Images
- The Render Daemon
- Extending Algan
- Manim Migration Guide
- A minimal translation
- Adding and removing objects
- Replacing
self.play - Angles are in degrees
- Matching Manim’s defaults
- Transforms
- Text, TeX, and imported Manim mobjects
- Groups and hierarchies
- Camera and lights
- Rendering output
- Settings and quality
- Migrating larger projects
- Manim names that still work
- Manim names that do not
- Where To Next
- Developer Tutorials
- Reference Manual
- Frequently Asked Questions
- FAQ: General Usage
- Why is my video empty?
- Why is my first render slow?
- Do I need a dedicated GPU?
- Can I keep animating after calling
save_video()? - Why didn’t my change to
SETTINGS.videodo anything? - What changes when
samples_per_pixelis greater than 1? - Why is my LaTeX not compiling?
- Why won’t my transparent video play?
- Where are my rendered files saved?
- FAQ: General Usage
- Contributing
- Changelog