Communitygithub.com

Manim Video-Produktions-Pipeline

Produktions-Pipeline für mathematische und technische Animationen mit der Manim Community Edition. Erstellt Erklärvideos im Stil von 3Blue1Brown, Algorithmus-Visualisierungen, Gleichungsherleitungen, Architekturdiagramme und Daten-Geschichten.

Was ist Manim Video-Produktions-Pipeline?

Diese Pipeline ist ein spezialisiertes Tool zur Erstellung professioneller, pädagogischer Animationen mit Manim Community Edition. Sie ermöglicht es KI-Agenten, komplexe mathematische und technische Konzepte visuell darzustellen – von Gleichungsherleitungen über Algorithmus-Visualisierungen bis hin zu Architekturdiagrammen. Die Pipeline folgt einem klaren Workflow (Plan → Code → Render → Stitch → Audio → Review) und stellt sicher, dass jede Animation nicht nur korrekt, sondern auch ästhetisch ansprechend und pädagogisch wertvoll ist. Sie unterstützt verschiedene Modi (Concept Explainer, Equation Derivation, Algorithm Visualization, Data Story, Architecture Diagram, Paper Explainer, 3D Visualization) und bietet umfangreiche Referenzdokumentation für Design, Rendering und Fehlerbehebung. Besonderer Wert wird auf klare visuelle Sprache, konsistente Farbpaletten, angemessene Animationsgeschwindigkeiten und pädagogische Erzählstrukturen gelegt.

Funktioniert mit~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/HemVaria/Ai-powered-video-editor/tree/HEAD/engine/skills/manim-video

In Ihrer bevorzugten KI fragen

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

Dokumentation

Was macht Manim Video-Produktions-Pipeline?

Kreativer Standard

Dies ist pädagogisches Kino. Jeder Frame lehrt. Jede Animation offenbart Struktur.

Bevor eine einzige Zeile Code geschrieben wird, formuliere den Erzählbogen. Welches Missverständnis korrigiert dies? Was ist der "Aha-Moment"? Welche visuelle Geschichte führt den Betrachter von Verwirrung zu Verständnis? Der Prompt des Benutzers ist ein Ausgangspunkt – interpretiere ihn 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 Betrachter das geometrische Muster vor der Formel sieht, fühlt sich die Gleichung verdient an.

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

Schichtung der Deckkraft lenkt 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 Auffälligkeit in Schichten.

Atempause. Jede Animation braucht danach ein self.wait(). Der Betrachter braucht Zeit, um das gerade Erscheinene zu verarbeiten. Eile niemals von einer Animation zur nächsten. Eine 2-Sekunden-Pause nach einer wichtigen Enthüllung ist niemals verschwendet.

Kohärente visuelle Sprache. Alle Szenen teilen sich eine Farbpalette, konsistente Typografie-Größen und passende Animationsgeschwindigkeiten. Ein technisch korrektes Video, in dem jede Szene zufällige, unterschiedliche Farben verwendet, ist ein ästhetischer Misserfolg.

Voraussetzungen

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

Modi

ModusEingabeAusgabeReferenz
Konzept-ErklärungThema/KonzeptAnimierte Erklärung mit geometrischer Intuitionreferences/scene-planning.md
GleichungsherleitungMathematische AusdrückeSchrittweise animierter Beweisreferences/equations.md
Algorithmus-VisualisierungAlgorithmus-BeschreibungSchrittweise Ausführung mit Datenstrukturenreferences/graphs-and-data.md
Daten-GeschichteDaten/MetrikenAnimierte Diagramme, Vergleiche, Zählerreferences/graphs-and-data.md
ArchitekturdiagrammSystembeschreibungAufbauende Komponenten mit Verbindungenreferences/mobjects.md
Paper-ErklärungForschungsarbeitAnimierte Schlüsselergebnisse 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, Animations-Engine
MathematikLaTeX (texlive/MiKTeX)Gleichungs-Rendering via MathTex
Video I/OffmpegSzenen-Zusammenfügung, Formatkonvertierung, Audio-Muxing
TTSElevenLabs / Qwen3-TTS (optional)Sprach-Overlay

Pipeline

PLANEN --> CODIEREN --> RENDERN --> ZUSAMMENFÜGEN --> AUDIO (optional) --> ÜBERPRÜFEN
  1. PLANEN — Schreibe plan.md mit Erzählbogen, Szenenliste, visuellen Elementen, Farbpalette, Voiceover-Skript
  2. CODIEREN — Schreibe script.py mit einer Klasse pro Szene, jede unabhängig renderbar
  3. RENDERN — manim -ql script.py Scene1 Scene2 ... für Entwurf, -qh für Produktion
  4. ZUSAMMENFÜGEN — ffmpeg concat der Szenen-Clips zu final.mp4
  5. AUDIO (optional) — Füge Voiceover und/oder Hintergrundmusik via ffmpeg hinzu. Siehe references/rendering.md
  6. ÜBERPRÜFEN — Rendere Vorschaubilder, überprüfe mit Plan, passe an

Projektstruktur

projekt-name/
  plan.md                # Erzählbogen, Szenenaufteilung
  script.py              # Alle Szenen in einer Datei
  concat.txt             # ffmpeg Szenenliste
  final.mp4              # Zusammengefügte Ausgabe
  media/                 # Automatisch von Manim erzeugt
    videos/script/480p15/

Kreative Richtlinien

Farbpaletten

PaletteHintergrundPrimärSekundärAkzentAnwendungsfall
Klassisch 3B1B#1C1C1C#58C4DD (BLAU)#83C167 (GRÜN)#FFFF00 (GELB)Allgemein Mathe/CS
Warm akademisch#2D2B55#FF6B6B#FFD93D#6BCB77Einladend
Neon Tech#0A0A0A#00F5FF#FF00FF#39FF14Systeme, Architektur
Monochrom#1A1A2E#EAEAEA#888888#FFFFFFMinimalistisch

Animationsgeschwindigkeit

Kontextrun_timeself.wait() danach
Titel/Einführung erscheint1.5s1.0s
Wichtige Gleichungsenthüllung2.0s2.0s
Transformieren/Morph1.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ärender Text
Beschriftung24Annotationen, Achsenbeschriftungen
Untertitel20Untertitel, Kleingedrucktes

Schriftarten

Verwende Monospace-Schriftarten für den gesamten Text. Manims Pango-Renderer erzeugt mit proportionalen Schriftarten bei allen Größen defekte Laufweiten. Siehe references/visual-design.md für vollständige Empfehlungen.

MONO = "Menlo"  # einmal oben in der Datei definieren

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

Mindest font_size=18 für Lesbarkeit.

Variation pro Szene

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

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

Arbeitsablauf

Schritt 1: Planen (plan.md)

Vor jedem Code, schreibe 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 Scene1_Einfuehrung(Scene):
    def construct(self):
        self.camera.background_color = BG
        title = Text("Warum funktioniert das?", font_size=48, color=PRIMARY, weight=BOLD, font=MONO)
        self.add_subcaption("Warum funktioniert das?", duration=2)
        self.play(Write(title), run_time=1.5)
        self.wait(1.0)
        self.play(FadeOut(title), 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 Scene1_Einfuehrung Scene2_Kernkonzept  # Entwurf
manim -qh script.py Scene1_Einfuehrung Scene2_Kernkonzept  # Produktion

Schritt 4: Zusammenfügen

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

Schritt 5: Überprüfen

manim -ql --format=png -s script.py Scene2_Kernkonzept  # Vorschaubild

Kritische Implementierungshinweise

Raw Strings für LaTeX

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

buff >= 0.5 für Randtext

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

FadeOut vor 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. Nur -qh für die endgültige Ausgabe rendern.

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, Deckkraftschichtung, Layoutvorlagen, Farbpaletten
references/equations.mdLaTeX in Manim, TransformMatchingTex, Herleitungsmuster
references/graphs-and-data.mdAchsen, Plotten, BarChart, animierte Daten, Algorithmus-Visualisierung
references/camera-and-3d.mdMovingCameraScene, ThreeDScene, 3D-Oberflächen, Kamerasteuerung
references/scene-planning.mdErzählbö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, Erzählsynchronisation
references/updaters-and-trackers.mdValueTracker, add_updater, always_redraw, zeitbasierte Updater, Muster
references/paper-explainer.mdForschungsarbeiten in Animationen verwandeln – Workflow, Vorlagen, Domänenmuster
references/decorations.mdSurroundingRectangle, Brace, Pfeile, DashedLine, Angle, Lebenszyklus von Annotationen
references/production-quality.mdVor-Code-, Vor-Render-, Nach-Render-Checklisten, 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 aus und denke sie DURCH, bevor du die Animation entwirfst.

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

SCAMPER-Transformation

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

  • Substitute (Ersetzen): Ersetze die standardmäßige visuelle Metapher (Zahlenstrahl → gewundener Pfad, Matrix → Stadtplan)
  • Combine (Kombinieren): Verschmelze zwei Erklärungsansätze (algebraisch + geometrisch gleichzeitig)
  • Reverse (Umkehren): Leite rückwärts her – beginne mit dem Ergebnis und zerlege es bis zu den Axiomen
  • Modify (Modifizieren): Übertreibe einen Parameter, um zu zeigen, warum er wichtig ist (10x die Lernrate, 1000x die Stichprobengröße)
  • Eliminate (Entfernen): Entferne die gesamte Notation – erkläre rein durch Animation und räumliche Beziehungen

Annahmeumkehrung

  1. Liste auf, was "standardmäßig" 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 Herleitung, 3D-Einbettung eines 2D-Konzepts, kontinuierliches Morphen anstatt Schritte, null Notation)
  4. Erforsche, was die Umkehrung offenbart, was der Standardansatz verbirgt

Verwandte Skills