AgentSkillsCN

manimce-best-practices

当出现以下情况时触发:(1) 用户提及“Manim”或“Manim 社区”或“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
  5. PATH issues (Windows) - If manim command not found, use python -m manim or check PATH

Installation

bash
# Install Manim Community
pip install manim

# Check installation
manim checkhealth

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