Communitygithub.com

shashi-ai10/manim-video

Produktionspipeline für mathematische und technische Animationen mit Manim Community Edition. Erstellt erklärende Videos im Stil von 3Blue1Brown, Algorithmus-Visualisierungen, Gleichungsableitungen, Architekturdiagramme und Datengeschichten. Verwenden Sie diesen Skill, wenn Benutzer animierte Erklärungen, mathematische Animationen, Konzeptvisualisierungen, Algorithmus-Walkthroughs, technische Erklärvideos oder programmatische Animationen mit geometrisch/mathematischem Inhalt anfordern.

Was ist manim-video?

Dieser Skill stellt eine professionelle Pipeline zur Erstellung hochwertiger Manim-Animationen bereit, die speziell für lehrreiche und erklärende Videos konzipiert ist. Er wurde entwickelt, um eine breite Palette von Anwendungsfällen abzudecken: von Konzepterklärungen und Gleichungsableitungen über Algorithmusvisualisierungen bis hin zu Architekturdiagrammen und Datengeschichten. Die Pipeline unterstützt mehrere Modi, darunter Konzepterklärungen, Gleichungsableitungen, Algorithmusvisualisierungen, Datengeschichten, Architekturdiagramme, Paper-Erklärungen und 3D-Visualisierungen. Die Kernphilosophie des Skills basiert auf pädagogischer Exzellenz: Jeder Frame soll lehren, jede Animation eine Struktur offenbaren. Der Workflow beginnt mit einem detaillierten Plan (plan.md), gefolgt von der Implementierung in Python (script.py), Rendering mit Manim CE, Zusammenfügen der Szenen mit ffmpeg und optionaler Audio-Nachbearbeitung. Der Skill enthält umfassende Referenzdokumentationen zu Animationen, Mobjekten, visuellen Designprinzipien, Gleichungen, Datenvisualisierung und Fehlerbehebung. Besonders hervorzuheben sind die detaillierten kreativen Richtlinien: Farbpaletten (z.B. Classic 3B1B, Warm academic, Neon tech), Animationsgeschwindigkeiten, Typografie-Skalierung und Per-Szenen-Variationen. Der Skill erzwingt eine durchgängig hohe visuelle Qualität, inklusive Opazitäts-Layering (primäre Elemente bei 1.0, kontextuelle bei 0.4, strukturelle bei 0.15) und eingebaute Pufferzeit ('self.wait()') für kognitive Verarbeitung. Die Verwendung von Monospace-Schriftarten für alle Texte und die Unified-Color-Konstanten über alle Szenen hinweg sorgen für konsistente Ästhetik. Die Pipeline verwendet ausschließlich Python/Manim, benötigt keinen Browser, kein Node.js und keine GPU – sie ist vollständig auf der Kommandozeile lauffähig. Sie unterstützt drei Render-Qualitäten: -ql (Entwurf, 854×480), -qm (Mittel, 1280×720) und -qh (Produktion, 1920×1080). Referenzen und eine ausführliche Dokumentation zu kreativer Divergenz (SCAMPER, Annahmenumkehrung) sind eingebaut, um unkonventionelle und experimentelle Ansätze zu ermöglichen.

Funktioniert mit~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/shashi-ai10/Manim-Skill-Project-Integration/tree/HEAD/manim-skill-main/skills/manim-video

In Ihrer bevorzugten KI fragen

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

Dokumentation

Manim Video-Produktionspipeline

Kreativstandard

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

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

Geometrie vor Algebra. Zeigen Sie 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 beim ersten Rendern ist nicht verhandelbar. Die Ausgabe muss visuell klar und ästhetisch kohärent sein, ohne Überarbeitungsrunden. Wenn etwas überladen, schlecht getaktet oder wie „KI-generierte Folien“ aussieht, ist es falsch.

Opazitätsschichtung lenkt die Aufmerksamkeit. Zeigen Sie niemals alles bei 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 benötigt ein self.wait() danach. Der Betrachter braucht Zeit, um das gerade Erschienene aufzunehmen. Eile niemals von einer Animation zur nächsten. Eine 2-sekündige Pause nach einer wichtigen Enthüllung ist nie verschwendet.

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

Voraussetzungen

Führen Sie 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. Die Referenzdokumentation wurde mit Manim CE v0.20.1 getestet.

Modi

ModusEingabeAusgabeReferenz
KonzepterklärungThema/KonzeptAnimierte Erklärung mit geometrischer Intuitionreferences/scene-planning.md
GleichungsableitungMathematische AusdrückeSchrittweise animierte Beweisführungreferences/equations.md
AlgorithmusvisualisierungAlgorithmusbeschreibungSchrittweise Ausführung mit Datenstrukturenreferences/graphs-and-data.md
DatengeschichteDaten/MetrikenAnimierte Diagramme, Vergleiche, Zählerreferences/graphs-and-data.md
ArchitekturdiagrammSystembeschreibungKomponenten, die sich mit Verbindungen aufbauenreferences/mobjects.md
Paper-ErklärungForschungspapierZentrale Erkenntnisse und Methoden animiertreferences/scene-planning.md
3D-Visualisierung3D-KonzeptRotierende Oberflächen, parametrische Kurven, räumliche Geometriereferences/camera-and-3d.md

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)Gleichungsrendering über MathTex
Video-E/AffmpegSzenenzusammenfügung, Formatkonvertierung, Audio-Muxing
TTSElevenLabs / Qwen3-TTS (optional)Erzählende Sprachausgabe

Pipeline

PLAN --> CODE --> RENDERN --> ZUSAMMENFÜGEN --> AUDIO (optional) --> PRÜFEN
  1. PLAN – Schreiben Sie plan.md mit narrativem Bogen, Szenenliste, visuellen Elementen, Farbpalette, Voiceover-Skript
  2. CODE – Schreiben Sie 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 Szenenclips zu final.mp4
  5. AUDIO (optional) – Fügen Sie Voiceover und/oder Hintergrundmusik über ffmpeg hinzu. Siehe references/rendering.md
  6. PRÜFEN – Rendern Sie Vorschaustandbilder, überprüfen Sie sie gegen den Plan, passen Sie an

Projektstruktur

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

Kreative Richtlinien

Farbpaletten

PaletteHintergrundPrimärSekundärAkzentAnwendungsfall
Klassisch 3B1B#1C1C1C#58C4DD (BLAU)#83C167 (GRÜN)#FFFF00 (GELB)Allgemein Mathe/Informatik
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 erscheinen1,5s1,0s
Schlüsselgleichung enthüllen2,0s2,0s
Transformieren/Morphen1,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ßtext30Erläuterungstext
Label24Annotationen, Achsenbeschriftungen
Bildunterschrift20Untertitel, Kleingedrucktes

Schriftarten

Verwenden Sie Monospace-Schriftarten für den gesamten 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"  # einmal am Anfang der Datei 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.

Pro-Szene-Variation

Verwenden Sie niemals identische Konfigurationen für alle Szenen. Variieren Sie für jede Szene:

  • Eine andere dominante Farbe aus der Palette
  • Ein anderes Layout – zentrieren Sie nicht immer alles
  • Eine andere Animationseingangsart – variieren Sie zwischen Write, FadeIn, GrowFromCenter, Create
  • Ein anderes visuelles Gewicht – manche Szenen dicht, andere spärlich

Arbeitsablauf

Schritt 1: Planen (plan.md)

Schreiben Sie vor jeglichem Code 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_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 Mobjekte am Szenenende: self.play(FadeOut(Group(*self.mobjects)))

Schritt 3: Rendern

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

Schritt 4: Zusammenfügen

cat > concat.txt << 'EOF'
datei 'media/videos/script/480p15/Szene1_Einfuehrung.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

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 dem Ersetzen von Text

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

Niemals nicht-hinzugefügte Mobjekte animieren

self.play(Create(kreis))  # muss zuerst hinzugefügt worden sein
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

Iterieren Sie immer mit -ql. Rendern Sie -qh nur für die finale Ausgabe.

Referenzen

DateiInhalt
references/animations.mdKernanimationen, Rate-Funktionen, Komposition, .animate-Syntax, Timing-Muster
references/mobjects.mdText, Formen, VGroup/Group, Positionierung, Styling, benutzerdefinierte Mobjekte
references/visual-design.md12 Designprinzipien, Opazitätsschichtung, 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ätseinstellungen, ffmpeg, Voiceover-Arbeitsablauf, GIF-Export
references/troubleshooting.mdLaTeX-Fehler, Animationsfehler, häufige Fehler, Debugging
references/animation-design-thinking.mdWann animieren vs. statisch anzeigen, Zerlegung, Tempo, Erzähl-Synchronisation
references/updaters-and-trackers.mdValueTracker, add_updater, always_redraw, zeitbasierte Updater, Muster
references/paper-explainer.mdForschungspapiere in Animationen umwandeln – Arbeitsablauf, Vorlagen, Domänenmuster
references/decorations.mdSurroundingRectangle, Brace, Pfeile, DashedLine, Winkel, Annotationslebenszyklus
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 anfordert)

Wenn der Benutzer nach kreativen, experimentellen oder unkonventionellen Erklärungsansätzen fragt, wählen Sie eine Strategie und denken Sie sie VOR dem Entwurf der Animation durch.

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

SCAMPER-Transformation

Nehmen Sie eine standardmäßige mathematische/technische Visualisierung und transformieren Sie sie:

  • Substitute (Ersetzen): Ersetzen Sie die standardmäßige visuelle Metapher (Zahlenstrahl → gewundener Pfad, Matrix → Stadtgitter)
  • Combine (Kombinieren): Verschmelzen Sie zwei Erklärungsansätze (algebraisch + geometrisch gleichzeitig)
  • Reverse (Umkehren): Leiten Sie rückwärts ab – beginnen Sie mit dem Ergebnis und dekonstruieren Sie zu Axiomen
  • Modify (Modifizieren): Übertreiben Sie einen Parameter, um zu zeigen, warum er wichtig ist (10x die Lernrate, 1000x die Stichprobengröße)
  • Eliminate (Entfernen): Entfernen Sie die gesamte Notation – erklären Sie ausschließlich durch Animation und räumliche Beziehungen

Annahmenumkehrung

  1. Listen Sie auf, was „standardmäßig“ daran ist, wie dieses Thema visualisiert wird (links-nach-rechts, 2D, diskrete Schritte, formale Notation)
  2. Wählen Sie die fundamentalste Annahme
  3. Kehren Sie sie um (rechts-nach-links-Ableitung, 3D-Einbettung eines 2D-Konzepts, kontinuierliches Morphen anstelle von Schritten, null Notation)
  4. Erkunden Sie, was die Umkehrung enthüllt, das der standardmäßige Ansatz verbirgt

Verwandte Skills