PluginBench
Skill
Pass
Audit score 90

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
Prerequisites
  • Python 3.7+
  • Manim Community Edition installed via `pip install manim`
  • LaTeX distribution (for MathTex/Tex rendering)
  • FFmpeg (for video output)
Claude Code
Cursor
Windsurf
Cline

How to use manimce-best-practices

  1. 1.Install Manim Community: `pip install manim`
  2. 2.Run `manim checkhealth` to verify installation and dependencies
  3. 3.Create a Python file with a Scene class inheriting from Scene or ThreeDScene
  4. 4.Define a `construct()` method with mobject creation and animation calls
  5. 5.Render with `manim -pql scene.py SceneClassName` (low quality preview) or `-pqh` (high quality)
  6. 6.Consult rule files (scenes.md, animations.md, latex.md, etc.) for specific patterns and examples

Use cases

Good for
  • 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
Who it's for
  • 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

What's the difference between Manim Community and ManimGL/3b1b version?

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.

How do I render animations?

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.

How do I render LaTeX math formulas?

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()`.

What are updaters and when should I use them?

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.

How do I create 3D visualizations?

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

Creation & Transformation

Text & Math

Styling & Appearance

Positioning & Layout

Coordinate Systems & Graphing

Animation Control

Configuration & CLI

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:

Scene Templates

Copy and modify these templates to start new projects:

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

FeatureManim Community3b1b/ManimGL
Importfrom manim import *from manimlib import *
CLImanimmanimgl
Math textMathTex(r"\pi")Tex(R"\pi")
SceneSceneInteractiveScene
Packagemanim (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

  1. Version confusion - Ensure you're using manim (Community), not manimgl (3b1b version)
  2. Check imports - from manim import * is ManimCE; from manimlib import * is ManimGL
  3. Outdated tutorials - Video tutorials may be outdated; prefer official documentation
  4. manimpango issues - If text rendering fails, check manimpango installation requirements
  5. PATH issues (Windows) - If manim command not found, use python -m manim or 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