Communitygithub.com

Manim-Video

Manim CE-Animationen: Mathematik- und Algorithmusvideos im Stil von 3Blue1Brown.

Was ist Manim-Video?

Diese KI-Agenten-Fertigkeit dient der Erstellung von 3Blue1Brown-ähnlichen Erklärvideos, Animationsvisualisierungen, Algorithmus-Walkthroughs und Daten-Storys mithilfe der Manim Community Edition. Sie eignet sich für Anfragen nach animierten Erklärungen, mathematischen Animationen, Konzeptvisualisierungen, technischen Erläuterungen oder jeder Art von programmatischer Animation mit geometrischen oder mathematischen Inhalten. Die Fertigkeit priorisiert pädagogische Exzellenz: Jede Animation soll eine Struktur offenbaren und einen „Aha-Moment“ erzeugen. Sie arbeitet auf Basis einer Pipeline aus Planung, Codierung, Rendering, Zusammenführung und optionaler Audiobearbeitung. Der Workflow erzeugt pro Projekt ein einzelnes Python-Skript, das mit Manim Community Edition gerendert und mit ffmpeg zu einem finalen Video zusammengesetzt wird. Voraussetzungen sind Python 3.10+, Manim v0.20+, LaTeX und ffmpeg. Die Fertigkeit enthält detaillierte Referenzen für Szenenplanung, Gleichungen, Diagramme, 3D-Visualisierung und mehr. Sie folgt strengen gestalterischen Prinzipien: farblich abgestimmte Paletten, abgestufte Opazität, klare Timing-Vorgaben, durchgängige Verwendung von Monospace-Schriftarten für korrekte Zeichenabstände und szenenspezifische Variationen in Farbe, Layout und Animationseingang. Bei kreativen oder experimentellen Anfragen kann zusätzlich mit SCAMPER oder Annahmenumkehrung gearbeitet werden.

Funktioniert mit~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/David2024patton/custom-skills-public/tree/main/skills/creative/manim-video

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

Manim-Video-Produktionspipeline

Wann verwenden

Verwenden, wenn Benutzer anfragen: animierte Erklärungen, mathematische Animationen, Konzeptvisualisierungen, Algorithmus-Walkthroughs, technische Erläuterungen, 3Blue1Brown-ähnliche Videos oder jede Art von programmatischen Animationen mit geometrischem/mathematischem Inhalt. Erstellt 3Blue1Brown-ähnliche Erklärvideos, Algorithmusvisualisierungen, Gleichungsableitungen, Architekturdiagramme und Daten-Storys mit Manim Community Edition.

Kreativer Standard

Dies ist pädagogisches Kino. Jeder Frame lehrt. Jede Animation enthüllt eine Struktur.

Bevor eine einzige Zeile Code geschrieben wird, formuliere den narrativen Bogen. Welches Missverständnis wird korrigiert? Was ist der „Aha-Moment“? Welche visuelle Geschichte führt den Zuschauer von Verwirrung zu Verständnis? Die Eingabe des Benutzers ist ein Ausgangspunkt – interpretiere sie mit pädagogischem Ehrgeiz.

Geometrie vor Algebra. Zeige zuerst die Form, dann die Gleichung. Das visuelle Gedächtnis kodiert schneller als das symbolische Gedächtnis. Wenn der Zuschauer das geometrische Muster vor der Formel sieht, fühlt sich die Gleichung verdient an.

Exzellenz im ersten Rendering ist nicht verhandelbar. Die Ausgabe muss visuell klar und ästhetisch kohärent sein, ohne Überarbeitungsrunden. Wenn etwas überladen, schlecht getimt oder wie „KI-generierte Folien“ aussieht, ist es falsch.

Opazitätsebenen lenken die Aufmerksamkeit. Zeige niemals alles in voller Helligkeit. Primäre Elemente bei 1,0, kontextuelle Elemente bei 0,4, strukturelle Elemente (Achsen, Gitter) bei 0,15. Das Gehirn verarbeitet visuelle Hervorhebung in Schichten.

Atempausen. Jede Animation benötigt ein self.wait() danach. Der Zuschauer braucht Zeit, um das gerade Erschienene aufzunehmen. Überstürze nie von einer Animation zur nächsten. Eine 2-Sekunden-Pause nach einer entscheidenden Enthüllung ist nie verschwendet.

Kohärente visuelle Sprache. Alle Szenen teilen eine Farbpalette, konsistente Typografiegrößen und passende Animationsgeschwindigkeiten. Ein technisch korrektes Video, bei dem jede Szene zufällige, unterschiedliche Farben verwendet, ist ein ästhetischer Fehlschlag.

Voraussetzungen

Führe scripts/setup.sh aus, um alle Abhängigkeiten zu überprüfen. Erforderlich: Python 3.10+, Manim Community Edition v0.20+ (pip install manim), LaTeX (texlive-full unter Linux, mactex unter macOS) und ffmpeg. Referenzdokumentation getestet gegen Manim CE v0.20.1.

Modi

ModusEingabeAusgabeReferenz
KonzepterklärerThema/KonzeptAnimierte Erklärung mit geometrischer Intuitionreferences/scene-planning.md
GleichungsableitungMathematische AusdrückeSchrittweise animierter Beweisreferences/equations.md
AlgorithmusvisualisierungAlgorithmusbeschreibungSchrittweise Ausführung mit Datenstrukturenreferences/graphs-and-data.md
Daten-StoryDaten/MetrikenAnimierte Diagramme, Vergleiche, Zählerreferences/graphs-and-data.md
ArchitekturdiagrammSystembeschreibungKomponentenaufbau mit Verbindungenreferences/mobjects.md
PapiererklärerForschungsarbeitAnimierte Darstellung wichtiger Ergebnisse und Methodenreferences/scene-planning.md
3D-Visualisierung3D-KonzeptRotierende Oberflächen, parametrische Kurven, räumliche Geometriereferences/camera-and-3d.md

Technologie-Stack

Ein einzelnes Python-Skript pro Projekt. Kein Browser, kein Node.js, keine GPU erforderlich.

EbeneWerkzeugZweck
KernManim Community EditionSzenen-Rendering, Animationsengine
MathematikLaTeX (texlive/MiKTeX)Gleichungs-Rendering via MathTex
Video-E/AffmpegSzenenzusammenführung, Formatkonvertierung, Audio-Muxing
TTSElevenLabs / Qwen3-TTS (optional)Sprachausgabe Voiceover

Pipeline

PLAN --> CODE --> RENDERN --> ZUSAMMENFÜHREN --> AUDIO (optional) --> PRÜFEN
  1. PLAN – Erstelle plan.md mit narrativem Bogen, Szenenliste, visuellen Elementen, Farbpalette, Voiceover-Skript
  2. CODE – Schreibe script.py mit einer Klasse pro Szene, jede unabhängig renderbar
  3. RENDERN – manim -ql script.py Szene1 Szene2 ... für Entwurf, -qh für Produktion
  4. ZUSAMMENFÜHREN – ffmpeg concat der Szenenclips zu final.mp4
  5. AUDIO (optional) – Füge Voiceover und/oder Hintergrundmusik via ffmpeg hinzu. Siehe references/rendering.md
  6. PRÜFEN – Rendere Vorschaustandbilder, überprüfe am Plan, passe an

Projektstruktur

projekt-name/
  plan.md                # Narrativer Bogen, Szenenaufteilung
  script.py              # Alle Szenen in einer Datei
  concat.txt             # ffmpeg-Szenenliste
  final.mp4              # Zusammengeführte Ausgabe
  media/                 # Automatisch von Manim generiert
    videos/script/480p15/

Kreative Richtung

Farbpaletten

PaletteHintergrundPrimärSekundärAkzentAnwendungsfall
Classic 3B1B#1C1C1C#58C4DD (BLAU)#83C167 (GRÜN)#FFFF00 (GELB)Allgemeine Mathematik/Informatik
Warm akademisch#2D2B55#FF6B6B#FFD93D#6BCB77Zugänglich
Neon Technik#0A0A0A#00F5FF#FF00FF#39FF14Systeme, Architektur
Monochrom#1A1A2E#EAEAEA#888888#FFFFFFMinimalistisch

Animationsgeschwindigkeit

Kontextrun_timeself.wait() danach
Titel/Einleitung erscheint1,5s1,0s
Wichtige Gleichungsenthüllung2,0s2,0s
Transformieren/Morphing1,5s1,5s
Unterstützendes Label0,8s0,5s
FadeOut-Bereinigung0,5s0,3s
„Aha-Moment“-Enthüllung2,5s3,0s

Typografie-Skala

RolleSchriftgrößeVerwendung
Titel48Szenentitel, Eröffnungstext
Überschrift36Abschnittsüberschriften innerhalb einer Szene
Fließtext30Erklärungstext
Label24Anmerkungen, Achsenbeschriftungen
Bildunterschrift20Untertitel, Kleingedrucktes

Schriftarten

Verwende Monospace-Schriftarten für allen Text. Manims Pango-Renderer erzeugt fehlerhafte Unterschneidungen (Kerning) mit proportionalen Schriftarten in allen Größen. Siehe references/visual-design.md für vollständige Empfehlungen.

MONO = "Menlo"  # einmalig am Dateianfang definieren

Text("Fourier-Reihe", font_size=48, font=MONO, weight=BOLD)  # Titel
Text("n=1: sin(x)", font_size=20, font=MONO)                  # Labels
MathTex(r"\nabla L")                                            # Mathematik (verwendet LaTeX)

Mindestgröße font_size=18 für Lesbarkeit.

Szenenspezifische Variation

Verwende niemals für alle Szenen identische Konfiguration. Für jede Szene:

  • Andere dominante Farbe aus der Palette
  • Anderes Layout – zentriere nicht immer alles
  • Anderer Animationseingang – variiere zwischen Write, FadeIn, GrowFromCenter, Create
  • Anderes visuelles Gewicht – manche Szenen dicht, andere spärlich

Arbeitsablauf

Schritt 1: Planen (plan.md)

Schreibe vor dem Code die plan.md. Siehe references/scene-planning.md für die umfassende Vorlage.

Schritt 2: Codieren (script.py)

Eine Klasse pro Szene. Jede Szene ist unabhängig renderbar.

from manim import *

BG = "#1C1C1C"
PRIMARY = "#58C4DD"
SECONDARY = "#83C167"
ACCENT = "#FFFF00"
MONO = "Menlo"

class Szene1_Einleitung(Scene):
    def construct(self):
        self.camera.background_color = BG
        titel = Text("Warum funktioniert das?", font_size=48, color=PRIMARY, weight=BOLD, font=MONO)
        self.add_subcaption("Warum funktioniert das?", duration=2)
        self.play(Write(titel), run_time=1.5)
        self.wait(1.0)
        self.play(FadeOut(titel), run_time=0.5)

Wichtige Muster:

  • Untertitel bei jeder Animation: self.add_subcaption("text", duration=N) oder subcaption="text" bei self.play()
  • Geteilte Farbkonstanten am Dateianfang für szenenübergreifende Konsistenz
  • self.camera.background_color in jeder Szene setzen
  • Saubere Ausgänge – FadeOut aller Mobjects am Szenenende: self.play(FadeOut(Group(*self.mobjects)))

Schritt 3: Rendern

manim -ql script.py Szene1_Einleitung Szene2_Kernkonzept  # Entwurf
manim -qh script.py Szene1_Einleitung Szene2_Kernkonzept  # Produktion

Schritt 4: Zusammenführen

cat > concat.txt << 'EOF'
datei 'media/videos/script/480p15/Szene1_Einleitung.mp4'
datei 'media/videos/script/480p15/Szene2_Kernkonzept.mp4'
EOF
ffmpeg -y -f concat -safe 0 -i concat.txt -c copy final.mp4

Schritt 5: Prüfen

manim -ql --format=png -s script.py Szene2_Kernkonzept  # Vorschaustandbild

Wichtige Implementierungshinweise

Raw-Strings für LaTeX

# FALSCH: MathTex("\frac{1}{2}")
# RICHTIG:
MathTex(r"\frac{1}{2}")

buff >= 0,5 für Kantentext

label.to_edge(DOWN, buff=0.5)  # niemals < 0,5

FadeOut vor dem Ersetzen von Text

self.play(ReplacementTransform(notiz1, notiz2))  # nicht Write(notiz2) darüber

Niemals Nicht-hinzugefügte Mobjects animieren

self.play(Create(kreis))  # muss zuerst hinzugefügt werden
self.play(kreis.animate.set_color(RED))  # dann animieren

Leistungsziele

QualitätAuflösungFPSGeschwindigkeit
-ql (Entwurf)854x480155-15s/Szene
-qm (mittel)1280x7203015-60s/Szene
-qh (Produktion)1920x10806030-120s/Szene

Iteriere immer mit -ql. Rendere -qh nur für die endgültige Ausgabe.

Referenzen

DateiInhalt
references/animations.mdKernanimationen, Geschwindigkeitsfunktionen, Komposition, .animate-Syntax, Timing-Muster
references/mobjects.mdText, Formen, VGroup/Group, Positionierung, Styling, benutzerdefinierte Mobjects
references/visual-design.md12 Designprinzipien, Opazitätsebenen, Layoutvorlagen, Farbpaletten
references/equations.mdLaTeX in Manim, TransformMatchingTex, Ableitungsmuster
references/graphs-and-data.mdAchsen, Plotten, BarChart, animierte Daten, Algorithmusvisualisierung
references/camera-and-3d.mdMovingCameraScene, ThreeDScene, 3D-Oberflächen, Kamerasteuerung
references/scene-planning.mdNarrative Bögen, Layoutvorlagen, Szenenübergänge, Planungsvorlage
references/rendering.mdCLI-Referenz, Qualitätsvoreinstellungen, ffmpeg, Voiceover-Workflow, GIF-Export
references/troubleshooting.mdLaTeX-Fehler, Animationsfehler, häufige Fehler, Debugging
references/animation-design-thinking.mdWann animieren vs. statisch zeigen, Zerlegung, Tempo, Synchronisation der Erzählung
references/updaters-and-trackers.mdValueTracker, add_updater, always_redraw, zeitbasierte Updater, Muster
references/paper-explainer.mdForschungsarbeiten in Animationen umwandeln – Arbeitsablauf, Vorlagen, Domänenmuster
references/decorations.mdSurroundingRectangle, Brace, Pfeile, DashedLine, Angle, Anmerkungslebenszyklus
references/production-quality.mdChecklisten vor dem Code, vor dem Rendern, nach dem Rendern, räumliches Layout, Farbe, Tempo

Kreative Abweichung (nur verwenden, wenn der Benutzer experimentelle/kreative/einzigartige Ausgabe wünscht)

Wenn der Benutzer nach kreativen, experimentellen oder unkonventionellen Erklärungsansätzen fragt, wähle eine Strategie und denke darüber nach, BEVOR du die Animation entwirfst.

  • SCAMPER – wenn der Benutzer eine neue Perspektive auf eine Standarderklärung wünscht
  • Annahmenumkehrung – wenn der Benutzer herausfordern möchte, wie etwas normalerweise gelehrt wird

SCAMPER-Transformation

Nimm eine standardmäßige mathematische/technische Visualisierung und transformiere sie:

  • Ersetzen (Substitute): Ersetze die Standard-Metapher (Zahlenstrahl → gewundener Pfad, Matrix → Stadtraster)
  • Kombinieren (Combine): Vereinige zwei Erklärungsansätze (algebraisch + geometrisch gleichzeitig)
  • Umkehren (Reverse): Leite rückwärts ab – beginne mit dem Ergebnis und zerlege es bis zu den Axiomen
  • Modifizieren (Modify): Übertreibe einen Parameter, um zu zeigen, warum er wichtig ist (10-fache Lerngeschwindigkeit, 1000-fache Stichprobengröße)
  • Eliminieren (Eliminate): Entferne alle Notation – erkläre rein durch Animation und räumliche Beziehungen

Annahmenumkehrung

  1. Liste auf, was „Standard“ daran ist, wie dieses Thema visualisiert wird (links-nach-rechts, 2D, diskrete Schritte, formale Notation)
  2. Wähle die grundlegendste Annahme
  3. Kehre sie um (rechts-nach-links-Ableitung, 3D-Einbettung eines 2D-Konzepts, kontinuierliches Morphing statt Schritte, Null Notation)
  4. Untersuche, was die Umkehrung offenlegt, was der Standardansatz verbirgt

Individual skills in this repo

This repo contains 1 individual skill — each has its own dedicated page.

Verwandte Skills