Co-Pilot
Updated a month ago

manim_skill

Aadithya-s-k
0.1k
adithya-s-k/manim_skill
80
Agent Score

πŸ’‘ Summary

A collection of AI agent skills providing best practices and code examples for both Manim Community Edition and ManimGL animation frameworks.

🎯 Target Audience

Math and science educators creating video lessonsAI agents assisting with Manim code generationData visualization developersTechnical content creatorsOpen-source contributors to animation libraries

πŸ€– AI Roast: β€œIt's like a bilingual dictionary for two dialects of the same language, but you still need to learn how to speak.”

Security AnalysisMedium Risk

The README describes installing and executing Python packages (manim, manimgl) and system tools (FFmpeg, LaTeX) via shell commands, which carries inherent supply chain and arbitrary code execution risks. Mitigation: Use a virtual environment and verify package signatures before installation.

Manim Skills Repository

Visitors GitHub stars GitHub forks GitHub issues License

⚑ Quick Start: Add both Manim skills to your AI agent instantly:

npx skills add adithya-s-k/manim_skill

A comprehensive collection of best practices, patterns, and examples for both Manim Community Edition and ManimGL (3Blue1Brown's version). This repository provides battle-tested code examples and guidelines for creating mathematical animations.

πŸ“š About the Two Versions

Manim Community Edition (manim)

  • Repository: https://github.com/ManimCommunity/manim
  • Focus: Community-maintained, stable, well-documented
  • Best For: Production use, educational content, collaborative projects
  • Command: manim CLI
  • Import: from manim import *

ManimGL (manimgl)

  • Repository: https://github.com/3b1b/manim
  • Focus: Grant Sanderson's (3Blue1Brown) original version with OpenGL rendering
  • Best For: Interactive development, 3D scenes, rapid prototyping
  • Command: manimgl CLI
  • Import: from manimlib import *

Important: These are separate, incompatible frameworks. Code written for one will not work with the other without modifications.


πŸš€ Installation

Prerequisites (Both Versions)

  1. Python 3.7+ - Required
  2. FFmpeg - For video encoding
  3. LaTeX - For mathematical typesetting (TeX Live, MiKTeX, or MacTeX)

Install FFmpeg

macOS:

brew install ffmpeg

Ubuntu/Debian:

sudo apt update sudo apt install ffmpeg

Windows: Download from https://ffmpeg.org/download.html and add to PATH

Install LaTeX

macOS:

brew install mactex

Ubuntu/Debian:

sudo apt install texlive-full

Windows: Install MiKTeX from https://miktex.org/download


Installing Manim Community Edition

# Using pip pip install manim # Using uv (recommended for this project) uv pip install manim # Verify installation manim --version

Documentation: https://docs.manim.community/


Installing ManimGL

# Using pip pip install manimgl # Using uv (recommended for this project) uv pip install manimgl # Verify installation manimgl --version

Additional macOS (ARM) requirement:

arch -arm64 brew install pkg-config cairo

πŸ”Œ Skills.sh Integration

This repository provides two AI Agent Skills that can be installed with a single command using skills.sh:

Install with npx (Recommended)

# Install Manim Community Edition best practices npx skills add adithya-s-k/manim_skill/skills/manimce-best-practices # Install ManimGL best practices npx skills add adithya-s-k/manim_skill/skills/manimgl-best-practices # Or install both npx skills add adithya-s-k/manim_skill/skills/manimce-best-practices adithya-s-k/manim_skill/skills/manimgl-best-practices

What are Skills?

Skills are reusable capabilities for AI coding agents. Once installed, your AI assistant (like Claude, GitHub Copilot, or Cursor) automatically gains access to:

  • βœ… Domain-specific best practices
  • βœ… Working code examples
  • βœ… Common patterns and anti-patterns
  • βœ… Framework-specific knowledge

The skills follow the Agent Skills open standard and work across multiple AI tools.

When Skills Activate

manimce-best-practices - Automatically loads when:

  • You import from manim import *
  • You use the manim CLI command
  • You work with Scene classes, mathematical animations, or LaTeX rendering
  • You create educational videos or visual explanations with Manim Community

manimgl-best-practices - Automatically loads when:

  • You import from manimlib import *
  • You use the manimgl CLI command
  • You work with InteractiveScene, 3D rendering, or camera frame control
  • You use interactive mode with .embed() or checkpoint_paste()

πŸ“– Using This Repository

Repository Structure

manim_skill/
β”œβ”€β”€ skills/
β”‚   β”œβ”€β”€ manimce-best-practices/     # Manim Community Edition skills
β”‚   β”‚   β”œβ”€β”€ SKILL.md                # Skill metadata
β”‚   β”‚   └── rules/                  # Individual best practice guides
β”‚   β”‚       β”œβ”€β”€ animations.md
β”‚   β”‚       β”œβ”€β”€ scenes.md
β”‚   β”‚       β”œβ”€β”€ mobjects.md
β”‚   β”‚       └── ...
β”‚   β”‚
β”‚   └── manimgl-best-practices/     # ManimGL skills
β”‚       β”œβ”€β”€ SKILL.md
β”‚       └── rules/
β”‚           β”œβ”€β”€ animations.md
β”‚           β”œβ”€β”€ 3d.md
β”‚           β”œβ”€β”€ camera.md
β”‚           └── ...
β”‚
└── tests/
    β”œβ”€β”€ manimce/                    # Tests for Community Edition
    └── manimgl/                    # Tests for ManimGL

What's Inside Each Skill File?

Each .md file contains:

  • Best practices for specific Manim features
  • Working code examples (all tested!)
  • Common patterns and use cases
  • Pitfalls to avoid
  • API differences between versions

🎯 Quick Start Examples

Manim Community Edition

from manim import * class BasicExample(Scene): def construct(self): circle = Circle() circle.set_fill(BLUE, opacity=0.5) circle.set_stroke(BLUE_E, width=4) self.play(Create(circle)) self.wait()

Run it:

manim -pql scene.py BasicExample # -p: preview after rendering # -q: quality (l=low, m=medium, h=high)

ManimGL

from manimlib import * class BasicExample(InteractiveScene): def construct(self): circle = Circle() circle.set_fill(BLUE, opacity=0.5) circle.set_stroke(BLUE_E, width=4) self.play(ShowCreation(circle)) self.wait()

Run it:

manimgl scene.py BasicExample --write_file # --write_file: save video output # -s: skip to last frame # -w: write file without opening

πŸ§ͺ Running Tests

This repository includes comprehensive tests to ensure all code examples work correctly.

Test Manim Community Edition Skills

# Test all files uv run python tests/manimce/test_all_skills.py # Test specific file uv run python tests/manimce/test_all_skills.py animations.md # Run with multiple workers (faster) uv run python tests/manimce/test_all_skills.py -j 4

Test ManimGL Skills

# Test all files uv run python tests/manimgl/test_all_skills.py # Test specific file uv run python tests/manimgl/test_all_skills.py 3d.md # Run with multiple workers (use caution - can cause OOM) uv run python tests/manimgl/test_all_skills.py -j 4

Note: Parallel testing with many workers can cause out-of-memory errors. Use 4-6 workers max, or test files individually.


πŸ” Key Differences Between Versions

| Feature | Manim Community | ManimGL | |---------|----------------|---------| | Import | from manim import * | from manimlib import * | | CLI Command | manim | manimgl | | Scene Base Class | Scene, MovingCameraScene | Scene, InteractiveScene | | Creation Animation | Create() | ShowCreation() | | Text Class | Text(), MathTex() | Text(), Tex() | | 3D Rendering | Limited | Full OpenGL support | | Interactive Mode | No | Yes (-se flag, .embed()) | | Camera Control | MovingCameraScene | self.camera.frame | | Configuration | Python config | YAML files | | Color Constants | Same | Same + variations (e.g., BLUE_A, BLUE_E) |


πŸ“š Exploring Skills

For Manim Community Edition:

Start with these guides in skills/manimce-best-practices/rules/:

  1. scenes.md - Scene structure and lifecycle
  2. animations.md - Basic animation patterns
  3. mobjects.md - Creating and manipulating objects
  4. colors.md - Color systems and styling
  5. text.md - Text and LaTeX rendering

For ManimGL:

Start with these guides in skills/manimgl-best-practices/rules/:

  1. scenes.md - Scene types and InteractiveScene
  2. animations.md - Animation fundamentals
  3. camera.md - Camera movement and 3D orientation
  4. 3d.md - 3D object creation and rendering
  5. interactive.md - Interactive development workflow

🀝 Contributing

Found an issue with an example? Want to add a new best practice?

  1. Ensure your code example works with the target Manim version
  2. Add it to the appropriate skill file
  3. Run the tests to verify: uv run python tests/<version>/test_all_skills.py <filename>
  4. Submit a pull request

πŸ“„ License

This repository is licensed under the MIT License - see the LICENSE file for details.

Note: This license applies to the educational materials and code examples in this repository. The underlying Manim frameworks (Manim Community Edition and ManimGL) have their own respective licenses.


πŸ”— Resources

Manim Community Edition

  • Documentation: https://docs.manim.community/
  • Discord: https://www.manim.community/discord/
  • GitHub: https://github.com/ManimCommunity/manim

ManimGL

  • Documentation: https://3b1b.github.io/manim/
  • GitHub: https://github.com/3b1b/manim
  • Tutorial Videos: Grant's YouTube channel

General

  • 3Blue1Brown: https://www.youtube.com/@3blue1brown
  • Manim Community: https://www.manim.community/

⚠️ Troubleshooting

Common Issues

"Command not found: manim/manimgl"

  • Verify installation: pip list | grep manim
  • Check PATH configuration
  • Try: python -m manim or python -m manimlib

LaTeX errors

  • Install full LaTeX distribution (not basic)
  • ManimCE: Try manim --tex_template <template> with different templates
  • ManimGL: Check `custom_defaults.y
5-Dim Analysis
Clarity8/10
Novelty6/10
Utility9/10
Completeness9/10
Maintainability8/10
Pros & Cons

Pros

  • Clear distinction between two major Manim forks
  • Provides tested, working code examples
  • Integrates with AI agent ecosystems via skills.sh
  • Includes comprehensive installation and troubleshooting guides

Cons

  • Complexity of managing two incompatible frameworks
  • Requires significant system dependencies (FFmpeg, LaTeX)
  • Parallel testing can cause out-of-memory errors
  • Primarily documentation rather than executable tools

Related Skills

pytorch

S
toolCode Lib
92/ 100

β€œIt's the Swiss Army knife of deep learning, but good luck figuring out which of the 47 installation methods is the one that won't break your system.”

agno

S
toolCode Lib
90/ 100

β€œIt promises to be the Kubernetes for agents, but let's see if developers have the patience to learn yet another orchestration layer.”

nuxt-skills

S
toolCo-Pilot
90/ 100

β€œIt's essentially a well-organized cheat sheet that turns your AI assistant into a Nuxt framework parrot.”

Disclaimer: This content is sourced from GitHub open source projects for display and rating purposes only.

Copyright belongs to the original author adithya-s-k.