AgentSkillsCN

manimce-best-practices

当出现以下情况时触发:(1) 用户提及“manim”或“Manim Community”或“ManimCE”;(2) 代码中包含`from manim import *`;(3) 用户运行`manim` CLI命令;(4) 在处理Scene、MathTex、Create(),或专属于ManimCE的各类类时。 Manim社区版——由社区维护的Python动画引擎——的最佳实践指南。涵盖Scene结构、动画制作、LaTeX/MathTex的运用、ThreeDScene中的3D渲染、相机控制、样式设计,以及CLI的使用方法。 本指南不适用于ManimGL/3b1b版本(该版本采用`manimlib`导入方式,并使用`manimgl` CLI)。

SKILL.md
--- frontmatter
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

  • 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:

Scene Templates

Copy and modify these templates to start new projects:

Quick Reference

Basic Scene Structure

python
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

bash
# 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:

python
%%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. Required System Libs: libpango1.0-dev, libcairo2-dev, libffi-dev, ffmpeg.
  5. PATH issues (Windows) - If manim command not found, use python -m manim or check PATH
  6. Directory Context - Always cd into the directory containing your .py script before rendering to ensure media paths are resolved correctly relative to the project root.

Installation

bash
# Install Manim Community
pip install manim

# Check installation
manim checkhealth

# Required OS Packages (Linux)
# sudo apt-get install libpango1.0-dev libcairo2-dev libffi-dev ffmpeg

Useful Commands

bash
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