manimce-best-practices
adithya-s-k/manim_skill
Best practices for Manim Community Edition animations, scenes, and LaTeX rendering.
What is manimce-best-practices?
Comprehensive guide for Manim Community Edition (ManimCE), the community-maintained Python animation engine. Covers Scene structure, Mobjects, animations, LaTeX/MathTex, 3D visualization, styling, positioning, and CLI usage. Use when working with `from manim import *` or `manim` CLI commands.
- Structure scenes with construct() method and scene types (Scene, ThreeDScene, MovingCameraScene)
- Create and animate Mobjects (shapes, text, math) with Create, Transform, FadeIn, and other animation classes
- Render LaTeX/MathTex formulas with color coding and mathematical notation
- Build 3D visualizations with ThreeDScene, surfaces, and camera control
- Control timing, easing, and dynamic updates with rate functions, ValueTracker, and updaters
- Position and group objects using move_to, next_to, align_to, VGroup, and layout patterns
How to install manimce-best-practices
npx skills add https://github.com/adithya-s-k/manim_skill --skill manimce-best-practices- Python 3.7+
- Manim Community Edition installed via `pip install manim`
- LaTeX distribution (for MathTex/Tex rendering)
- FFmpeg (for video output)
How to use manimce-best-practices
- 1.Install Manim Community: `pip install manim`
- 2.Run `manim checkhealth` to verify installation and dependencies
- 3.Create a Python file with a Scene class inheriting from Scene or ThreeDScene
- 4.Define a `construct()` method with mobject creation and animation calls
- 5.Render with `manim -pql scene.py SceneClassName` (low quality preview) or `-pqh` (high quality)
- 6.Consult rule files (scenes.md, animations.md, latex.md, etc.) for specific patterns and examples
Use cases
- Creating educational math animations with equations and step-by-step derivations
- Visualizing functions, graphs, and parametric curves on coordinate systems
- Building 3D geometric visualizations and surface plots
- Animating shape transformations and morphing between objects
- Rendering presentation slides with animated text and diagrams
- Educators creating math and science visualizations
- Content creators making educational videos
- Researchers visualizing mathematical concepts
- Students learning animation and visualization techniques
- Developers building interactive educational tools
manimce-best-practices FAQ
Manim Community uses `from manim import *` and `manim` CLI, while ManimGL uses `from manimlib import *` and `manimgl` CLI. They have different APIs and are separate packages. This skill covers Manim Community Edition only.
Use `manim -pql scene.py MyScene` for low-quality preview (fast), `-pqm` for medium, `-pqh` for high quality, or `-qk` for 4K. The `-p` flag opens the output automatically.
Use `MathTex(r"\pi")` for math mode or `Tex()` for text mode. Ensure LaTeX is installed on your system. Color individual parts with `set_color()` or use `MathTex(...).set_color_by_tex()`.
Updaters are functions that continuously modify mobjects during animation. Use them with `ValueTracker` for dynamic animations like physics simulations, graphs that follow a moving point, or any object that needs to change based on another object's state.
Inherit from `ThreeDScene` instead of `Scene`, use `ThreeDAxes` for coordinate systems, and access camera control with `self.camera.frame`. See the 3d.md rules and 3d_visualization.py example for surfaces, parametric curves, and camera orientation.
Full instructions (SKILL.md)
Source of truth, from adithya-s-k/manim_skill.
name: manimce-best-practices
description: |
Trigger when: (1) User mentions "manim" or "Manim Community" or "ManimCE", (2) Code contains from manim import *, (3) User runs manim CLI commands, (4) Working with Scene, MathTex, Create(), or ManimCE-specific classes.
Best practices for Manim Community Edition - the community-maintained Python animation engine. Covers Scene structure, animations, LaTeX/MathTex, 3D with ThreeDScene, camera control, styling, and CLI usage.
NOT for ManimGL/3b1b version (which uses manimlib imports and manimgl CLI).
How to use
Read individual rule files for detailed explanations and code examples:
Core Concepts
- rules/scenes.md - Scene structure, construct method, and scene types
- rules/mobjects.md - Mobject types, VMobject, Groups, and positioning
- rules/animations.md - Animation classes, playing animations, and timing
Creation & Transformation
- rules/creation-animations.md - Create, Write, FadeIn, DrawBorderThenFill
- rules/transform-animations.md - Transform, ReplacementTransform, morphing
- rules/animation-groups.md - AnimationGroup, LaggedStart, Succession
Text & Math
- rules/text.md - Text mobjects, fonts, and styling
- rules/latex.md - MathTex, Tex, LaTeX rendering, and coloring formulas
- rules/text-animations.md - Write, AddTextLetterByLetter, TypeWithCursor
Styling & Appearance
- rules/colors.md - Color constants, gradients, and color manipulation
- rules/styling.md - Fill, stroke, opacity, and visual properties
Positioning & Layout
- rules/positioning.md - move_to, next_to, align_to, shift methods
- rules/grouping.md - VGroup, Group, arrange, and layout patterns
Coordinate Systems & Graphing
- rules/axes.md - Axes, NumberPlane, coordinate systems
- rules/graphing.md - Plotting functions, parametric curves
- rules/3d.md - ThreeDScene, 3D axes, surfaces, camera orientation
Animation Control
- rules/timing.md - Rate functions, easing, run_time, lag_ratio
- rules/updaters.md - Updaters, ValueTracker, dynamic animations
- rules/camera.md - MovingCameraScene, zoom, pan, frame manipulation
Configuration & CLI
- rules/cli.md - Command-line interface, rendering options, quality flags
- rules/config.md - Configuration system, manim.cfg, settings
Shapes & Geometry
- rules/shapes.md - Circle, Square, Rectangle, Polygon, and geometric primitives
- rules/lines.md - Line, Arrow, Vector, DashedLine, and connectors
Working Examples
Complete, tested example files demonstrating common patterns:
- examples/basic_animations.py - Shape creation, text, lagged animations, path movement
- examples/math_visualization.py - LaTeX equations, color-coded math, derivations
- examples/updater_patterns.py - ValueTracker, dynamic animations, physics simulations
- examples/graph_plotting.py - Axes, functions, areas, Riemann sums, polar plots
- examples/3d_visualization.py - ThreeDScene, surfaces, 3D camera, parametric curves
Scene Templates
Copy and modify these templates to start new projects:
- templates/basic_scene.py - Standard 2D scene template
- templates/camera_scene.py - MovingCameraScene with zoom/pan
- templates/threed_scene.py - 3D scene with surfaces and camera rotation
Quick Reference
Basic Scene Structure
from manim import *
class MyScene(Scene):
def construct(self):
# Create mobjects
circle = Circle()
# Add to scene (static)
self.add(circle)
# Or animate
self.play(Create(circle))
# Wait
self.wait(1)
Render Command
# Basic render with preview
manim -pql scene.py MyScene
# Quality flags: -ql (low), -qm (medium), -qh (high), -qk (4k)
manim -pqh scene.py MyScene
Key Differences from 3b1b/ManimGL
| Feature | Manim Community | 3b1b/ManimGL |
|---|---|---|
| Import | from manim import * | from manimlib import * |
| CLI | manim | manimgl |
| Math text | MathTex(r"\pi") | Tex(R"\pi") |
| Scene | Scene | InteractiveScene |
| Package | manim (PyPI) | manimgl (PyPI) |
Jupyter Notebook Support
Use the %%manim cell magic:
%%manim -qm MyScene
class MyScene(Scene):
def construct(self):
self.play(Create(Circle()))
Common Pitfalls to Avoid
- Version confusion - Ensure you're using
manim(Community), notmanimgl(3b1b version) - Check imports -
from manim import *is ManimCE;from manimlib import *is ManimGL - Outdated tutorials - Video tutorials may be outdated; prefer official documentation
- manimpango issues - If text rendering fails, check manimpango installation requirements
- PATH issues (Windows) - If
manimcommand not found, usepython -m manimor check PATH
Installation
# Install Manim Community
pip install manim
# Check installation
manim checkhealth
Useful Commands
manim -pql scene.py Scene # Preview low quality (development)
manim -pqh scene.py Scene # Preview high quality
manim --format gif scene.py # Output as GIF
manim checkhealth # Verify installation
manim plugins -l # List plugins
Related skills
More from adithya-s-k/manim_skill and the wider catalog.

manimgl-best-practices
Best practices for ManimGL (3Blue1Brown's OpenGL animation engine) with interactive development, 3D rendering, and LaTeX math.

manim-composer
Plan educational animations scene-by-scene before coding—transforms vague video ideas into detailed Manim implementation specs.

write-xiaohongshu
Research top Xiaohongshu posts, analyze patterns, enrich with Firecrawl, then write and publish XHS notes with strict limits: title ≤20 chars, body ≤1000 chars.

analyze-and-plan
Analyzes development requirements and generates structured acceptance criteria for AEM Edge Delivery Services (EDS) tasks. Use when the user needs to define acceptance criteria, write requirements, scope work, or create a definition of done for EDS blocks, components, variants, bug fixes, or styling changes. Produces task breakdowns, identifies edge cases, and documents analysis for new blocks, variants, behavior modifications, CSS-only changes, and bug fixes.

auth
Authenticate with AEM Edge Delivery Services. Opens browser for login and captures token. Works for admin.hlx.page and Config Service APIs regardless of content source (Document Authoring, SharePoint, or Google Drive).

authoring
Generate comprehensive documentation for content authors taking over an AEM Edge Delivery Services project. Analyzes the project structure and produces a complete authoring guide with blocks, templates, configurations, and publishing workflows.