Communitygithub.com

manimgl-meilleures-pratiques

Guide de référence complet pour créer des animations mathématiques avec ManimGL (la version de 3Blue1Brown).

Qu'est-ce que manimgl-meilleures-pratiques ?

Cette compétence est un guide de référence complet pour les développeurs et créateurs utilisant ManimGL, la version maintenue par 3Blue1Brown de la bibliothèque d’animation mathématique. Elle couvre l’ensemble des concepts fondamentaux – scènes interactives, mobjets, animations, textes LaTeX, styles, scènes 3D et contrôle de la caméra. Elle fournit également des exemples testés, des modèles de scène prêts à copier, ainsi qu’une comparaison détaillée des différences avec Manim Community (ManimCE). L’utilisateur apprend à exploiter le mode interactif via le flag `-se`, à utiliser `checkpoint_paste()` pour un débogage rapide, et à éviter les pièges courants comme confondre `ShowCreation` et `Create`, ou utiliser `self.camera.frame` au lieu de `self.frame`. La compétence est conçue pour les systèmes d’IA tels que Claude Code, Cursor et Codex, et se base sur le dépôt officiel de vidéos de 3Blue1Brown.

Compatible avec~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/adithya-s-k/manim_skill/tree/main/skills/manimgl-best-practices

Demander à votre IA préférée

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

Documentation

Comment utiliser

Lisez les fichiers de règles individuels pour des explications détaillées et des exemples de code :

Concepts fondamentaux

Création et transformation

Texte et mathématiques

  • rules/tex.md – Classe Tex, chaînes brutes R"..." et rendu LaTeX
  • rules/text.md – Objets texte, polices et style
  • rules/t2c.md – tex_to_color_map (t2c) pour colorer des expressions mathématiques

Style et apparence

  • rules/colors.md – Constantes de couleur, dégradés, RVB, hex, colorisation GLSL
  • rules/styling.md – Remplissage, contour, opacité, arrière-contour, brillance, ombre

3D et caméra

  • rules/3d.md – Objets 3D, surfaces, sphère, tore, surfaces paramétriques, éclairage
  • rules/camera.md – frame.reorient(), angles d’Euler, fix_in_frame(), animations de caméra

Développement interactif

Configuration & CLI

  • rules/cli.md – Commande manimgl, flags (-w, -o, -se, -l, -h), options de rendu
  • rules/config.md – custom_config.yml, répertoires, paramètres de caméra, préréglages de qualité

Exemples fonctionnels

Fichiers d’exemple complets et testés illustrant les motifs courants :

Modèles de scène

Copiez et modifiez ces modèles pour démarrer de nouveaux projets :

Référence rapide

Structure de base d’une scène

from manimlib import *

class MaScene(InteractiveScene):
    def construct(self):
        # Créer des mobjets
        cercle = Circle()

        # Ajouter à la scène (statique)
        self.add(cercle)

        # Ou animer
        self.play(ShowCreation(cercle))  # Note : ShowCreation, pas Create

        # Attendre
        self.wait(1)

Commande de rendu

# Rendre et prévisualiser
manimgl scene.py MaScene

# Mode interactif – plonge dans un shell à la ligne 15
manimgl scene.py MaScene -se 15

# Écrire dans un fichier
manimgl scene.py MaScene -w

# Basse qualité pour les tests
manimgl scene.py MaScene -l

Différences clés avec ManimCE

FonctionnalitéManimGL (3b1b)Manim Communauté
Importfrom manimlib import *from manim import *
CLImanimglmanim
Texte mathématiqueTex(R"\pi")MathTex(r"\pi")
ScèneInteractiveSceneScene
Animation de créationShowCreationCreate
Caméraself.frameself.camera.frame
Fixer dans le cadremob.fix_in_frame()self.add_fixed_in_frame_mobjects(mob)
Paquetmanimgl (PyPI)manim (PyPI)

Workflow de développement interactif

La fonctionnalité phare de ManimGL est le développement interactif :

# Commencer à la ligne 20 avec l’état préservé
manimgl scene.py MaScene -se 20

En mode interactif :

# Copier le code dans le presse-papiers, puis exécuter :
checkpoint_paste()           # Exécuter avec les animations
checkpoint_paste(skip=True)  # Exécuter instantanément (sans animations)
checkpoint_paste(record=True) # Enregistrer pendant l’exécution

Contrôle de la caméra (self.frame)

# Obtenir le cadre de la caméra
cadre = self.frame

# Réorienter en 3D (phi, theta, gamma, centre, hauteur)
cadre.reorient(45, -30, 0, ORIGIN, 8)

# Animer le mouvement de la caméra
self.play(cadre.animate.reorient(60, -45, 0))

# Fixer des mobjets pour qu’ils restent dans l’espace écran en 3D
title.fix_in_frame()

LaTeX avec la classe Tex

# Utiliser des chaînes brutes avec R majuscule
formule = Tex(R"\int_0^1 x^2 \, dx = \frac{1}{3}")

# Mappage de couleurs avec t2c
equation = Tex(
    R"E = mc^2",
    t2c={"E": BLUE, "m": GREEN, "c": YELLOW}
)

# Isoler des sous-chaînes pour l’animation
formule = Tex(R"\sum_{n=1}^{\infty} \frac{1}{n^2} = \frac{\pi^2}{6}")
formule.set_color_by_tex("n", BLUE)

Motifs courants

Utilisation de embed pour le débogage

def construct(self):
    cercle = Circle()
    self.play(ShowCreation(cercle))
    self.embed()  # Plonge dans un shell IPython ici

Définir le plan de sol pour la 3D

self.set_floor_plane("xz")  # Fait de xy le plan de visualisation

Contour arrière pour la lisibilité du texte

texte = Text("Étiquette")
texte.set_backstroke(BLACK, 5)  # Contour noir derrière le texte

Installation

# Installer ManimGL
pip install manimgl

# Vérifier l’installation
manimgl --version

Pièges courants à éviter

  1. Confusion de version – Assurez-vous d’utiliser manimgl, pas manim (version communauté)
  2. ShowCreation vs Create – ManimGL utilise ShowCreation, pas Create
  3. Tex vs MathTex – ManimGL utilise Tex avec des chaînes brutes R majuscule
  4. self.frame vs self.camera.frame – ManimGL utilise self.frame directement
  5. fix_in_frame() – Appelez-le sur le mobjet, pas sur la scène
  6. Mode interactif – Utilisez le flag -se pour le développement interactif

Licence & Attribution

Cette compétence contient des exemples de code adaptés du dépôt de vidéos de 3Blue1Brown par Grant Sanderson.

Licence : CC BY-NC-SA 4.0

  • Attribution requise – Créditez à la fois 3Blue1Brown et l’adaptateur
  • NonCommercial – Pas d’utilisation commerciale
  • ShareAlike – Les dérivés doivent utiliser la même licence

Voir LICENSE.txt pour les détails complets.

Individual skills in this repo

This repo contains 2 individual skills — each has its own dedicated page.

Skills associés