Communitygithub.com

hartnady/manim-skill

Guide expert pour les animations mathématiques Manim. Couvre à la fois ManimGL (l'original de 3Blue1Brown) et Manim Community — qui partagent un nom mais diffèrent par leur API, CLI et idiomes. Aide à écrire des scènes à partir de zéro, à déboguer du code cassé et à naviguer dans les motifs spécifiques à chaque version comme le contrôle de la caméra, les updaters et la configuration LaTeX.

Qu'est-ce que manim-skill ?

Cette compétence spécialisée dans Manim est conçue pour les développeurs, les éducateurs et les créateurs de contenu qui souhaitent produire des animations mathématiques de haute qualité. Elle prend en charge à la fois ManimGL (la version originale de 3Blue1Brown) et Manim Community, deux bibliothèques Python qui, bien que partageant le même nom, possèdent des API, des interfaces en ligne de commande et des idiomes de programmation distincts. La compétence permet de rédiger des scènes entièrement nouvelles, de diagnostiquer et de corriger du code défectueux, et de maîtriser des fonctionnalités avancées telles que le contrôle de la caméra, les updaters (mises à jour dynamiques) et la configuration LaTeX. Que vous utilisiez un notebook, un script Python ou un environnement CLI, cet outil vous guide à travers les subtilités propres à chaque version, vous évitant ainsi des erreurs courantes et vous faisant gagner un temps précieux. Par exemple, il peut vous aider à différencier les méthodes de déplacement d'objets entre ManimGL et Manim Community, ou à configurer correctement les animations multi-scènes. Idéal pour les utilisateurs de Cursor, Claude Code ou Codex, il offre des instructions contextuelles pour chaque version et s'intègre parfaitement dans les workflows d'IA.

Compatible avec~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/hartnady/manim-skill/tree/main/skills/manim

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Que fait manim-skill ?

Guide expert pour les animations mathématiques Manim. Couvre à la fois ManimGL (l'original de 3Blue1Brown) et Manim Community — qui partagent un nom mais diffèrent par leur API, CLI et idiomes. Aide à écrire des scènes à partir de zéro, à déboguer du code cassé et à naviguer dans les motifs spécifiques à chaque version comme le contrôle de la caméra, les updaters et la configuration LaTeX.

Introduction

Cette compétence fournit un accompagnement expert pour la création d'animations mathématiques avec Manim. Elle reconnaît et s'adapte automatiquement à la version de Manim que vous utilisez :

  • ManimGL (par 3Blue1Brown) : la bibliothèque originale, avec une philosophie de programmation orientée objet, un contrôle de la caméra flexible et des updaters.
  • Manim Community (fork de la communauté) : un fork plus récent avec une API révisée, une meilleure documentation et des fonctionnalités modernes comme les Mobjects et les Scenes unifiés.

Utilisation

Écrire une scène à partir de zéro

  • Décrivez l'animation souhaitée en langage naturel.
  • La compétence générera le code Python approprié pour la version de Manim que vous utilisez.

Exemple :

# ManimGL
from manimlib import *
class MyScene(Scene):
    def construct(self):
        circle = Circle()
        self.play(ShowCreation(circle))
        self.wait()
# Manim Community
from manim import *
class MyScene(Scene):
    def construct(self):
        circle = Circle()
        self.play(Create(circle))
        self.wait()

Déboguer du code cassé

  • Fournissez le code problématique et une description de l'erreur.
  • La compétence diagnostique les erreurs courantes comme :
    • Utilisation incorrecte des updaters (ManimGL vs Community).
    • Problèmes de caméra (ex. self.camera.frame vs self.camera).
    • Erreurs de configuration LaTeX (titres de packages, chemins d'accès).

Naviguer dans les motifs spécifiques à chaque version

  • Contrôle de la caméra :
    • ManimGL : self.camera.frame.move_to(...)
    • Manim Community : self.camera.frame.move_to(...) ou self.play(self.camera.frame.animate.move_to(...))
  • Updaters :
    • ManimGL : circle.add_updater(...)
    • Manim Community : circle.add_updater(...) (identique, mais attention à la portée)
  • LaTeX :
    • Les deux versions utilisent Tex ou MathTex, mais les packages et la configuration peuvent différer.

Plateformes prises en charge

  • Cursor : Intégration directe avec l'éditeur pour des suggestions en temps réel.
  • Claude Code : Utilisation via CLI ou API pour des instructions détaillées.
  • Codex : Génération de code dans des notebooks ou des environnements Python.

Comment ça fonctionne

La compétence détecte la version de Manim en fonction du contexte (par exemple, les imports, les fichiers de configuration ou les instructions explicites). Elle adapte ensuite ses conseils et son code généré en conséquence. Pour les cas ambigus, elle demande une clarification ou affiche les deux versions côte à côte.

Exemple avancé : Animation paramétrique

# Manim Community
def parametric_circle(t):
    return np.array([np.cos(t), np.sin(t), 0])

class ParametricScene(Scene):
    def construct(self):
        path = ParametricFunction(parametric_circle, t_range=[0, 2*PI])
        self.play(Create(path))
        self.wait()

Références

Contribution

Les retours et les contributions sont les bienvenus. Ouvrez une issue ou une pull request sur GitHub.

Skills associés