Communitygithub.com

Syammon02/VideoUse

Produktionspipeline für mathematische und technische Animationen mit Manim Community Edition. Erstellt 3Blue1Brown-artige Erklärvideos, Algorithmusvisualisierungen, Gleichungsableitungen, Architekturdiagramme und Datengeschichten. Verwenden, wenn Benutzer animierte Erklärungen, Mathe-Animationen, Konzeptvisualisierungen, Algorithmus-Durchläufe, technische Erklärungen, 3Blue1Brown-Videos oder programmatische Animationen mit geometrisch/mathematischem Inhalt anfordern.

Was ist VideoUse?

Die **Manim Video Production Pipeline** ist eine aufgabenorientierte, strukturierte Pipeline zur Erstellung von Bildungsanimationen mit Manim Community Edition (v0.20+). Sie ist speziell für die Produktion von 3Blue1Brown-artigen Erklärvideos konzipiert – von einfachen Konzepten über Gleichungsableitungen und Algorithmusvisualisierungen bis hin zu Datenstorys und 3D-Visualisierungen. Die Pipeline definiert einen klaren sechsschrittigen Workflow (Plan → Code → Render → Stitch → Audio → Review) und stellt umfangreiche Referenzen und kreative Vorlagen für jede Phase bereit. Zu den unterstützten Modi gehören Konzepterklärer, Gleichungsableitungen, Algorithmusvisualisierung, Datenstorys, Architekturdiagramme, Paper-Erklärer und 3D-Visualisierungen. Das System erfordert Python 3.10+, Manim CE, LaTeX (texlive-full oder mactex) und ffmpeg. Es ist als einzelnes Python-Skript pro Projekt strukturiert, ohne Abhängigkeit von Browser, Node.js oder GPU. Die Pipeline legt großen Wert auf pädagogische Exzellenz (jede Animation offenbart eine Struktur, kein bloßes Dekorieren), erstklassige Renderqualität beim ersten Durchlauf, Opazitätsschichtung zur visuellen Führung, konsistente visuelle Sprache und eine mikrooptimierte Animationsgeschwindigkeit. Vor dem Code muss ein plan.md mit narrativem Bogen und Voiceover-Skript erstellt werden. Jede Szene ist unabhängig renderbar; die Ausgabe erfolgt schrittweise über Draft-Rendering (-ql) und finale Produktion (-qh). Der Referenzordner enthält detaillierte Anleitungen zu Animationen, Mobjects, visuellem Design, Gleichungen, Graphen/Daten, 3D-Kamera, Szenenplanung, Rendering, Fehlerbehebung, Updater/ Tracker, Paper-Explainer, Dekorationen und Produktionsqualität. Für kreative/experimentelle Projekte unterstützt die Pipeline zwei divergente Denkstrategien: SCAMPER (Substitute, Combine, Reverse, Modify, Eliminate) und Assumption Reversal, um Standard-Erklärungen frisch zu denken und versteckte Einsichten zu gewinnen.

Funktioniert mit~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/Syammon02/VideoUse/tree/HEAD/skills/manim-video

In Ihrer bevorzugten KI fragen

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

Dokumentation

Manim-Videoproduktionspipeline

Kreativstandard

Das ist Bildungskino. Jeder Frame lehrt. Jede Animation offenbart Struktur.

Bevor eine einzige Zeile Code geschrieben wird, den narrativen Bogen artikulieren. Welches Missverständnis wird hiermit korrigiert? Was ist der „Aha-Moment“? Welche visuelle Geschichte führt den Zuschauer 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. Visuelles Gedächtnis kodiert schneller als symbolisches Gedächtnis. Wenn der Zuschauer 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 getimed oder wie „KI-generierte Folien“ aussieht, ist es falsch.

Opazitätsschichtung 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.

Durchatmen. Jede Animation braucht danach self.wait(). Der Zuschauer braucht Zeit, um das gerade Erschienene aufzunehmen. Nie von einer Animation zur nächsten hetzen. Eine 2-sekündige Pause nach einer Schlüsselenthüllung ist nie verschwendet.

Kohärente visuelle Sprache. Alle Szenen teilen sich eine Farbpalette, einheitliche Typografiegrößen, übereinstimmende Animationsgeschwindigkeiten. Ein technisch korrektes Video, in dem jede Szene zufällige, unterschiedliche Farben verwendet, ist ein ästhetisches Versagen.

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
DatengeschichteDaten/MetrikenAnimierte Diagramme, Vergleiche, Zählerreferences/graphs-and-data.md
ArchitekturdiagrammSystembeschreibungKomponenten, die sich mit Verbindungen aufbauenreferences/mobjects.md
Paper-ErklärerForschungspapierWichtigste 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.

SchichtWerkzeugZweck
KernManim Community EditionSzenen-Rendering, Animations-Engine
MatheLaTeX (texlive/MiKTeX)Gleichungs-Rendering via MathTex
Video I/OffmpegSzenen-Zusammenfügung, Formatkonvertierung, Audio-Muxing
TTSElevenLabs / Qwen3-TTS (optional)Erzähl-Voiceover

Pipeline

PLAN --> CODE --> RENDER --> STITCH --> AUDIO (optional) --> REVIEW
  1. PLAN – Schreibe 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. RENDER – manim -ql script.py Scene1 Scene2 ... für Entwurf, -qh für Produktion
  4. STITCH – ffmpeg concat der Szenenclips zu final.mp4
  5. AUDIO (optional) – Füge Voiceover und/oder Hintergrundmusik via ffmpeg hinzu. Siehe references/rendering.md
  6. REVIEW – Rendere Vorschaustills, überprüfe gegen den Plan, passe an

Projektstruktur

project-name/
  plan.md                # Narrativer Bogen, Szenenaufteilung
  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 erscheint1,5s1,0s
Schlüsselgleichung enthüllt2,0s2,0s
Transformation/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ßtext30Erläuternder Text
Label24Annotationen, Achsenbeschriftungen
Untertitel20Untertitel, Kleingedrucktes

Schriftarten

Verwende Monospace-Schriftarten für allen Text. Manims Pango-Renderer erzeugt defekte Unterschneidung (Kerning) mit proportionalen Schriftarten bei 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")                                            # Mathe (verwendet LaTeX)

Mindest font_size=18 für Lesbarkeit.

Szenenspezifische Variation

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

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

Arbeitsablauf

Schritt 1: Plan (plan.md)

Vor jeglichem Code schreibe plan.md. Siehe references/scene-planning.md für die umfassende Vorlage.

Schritt 2: Code (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 gesetzt
  • Saubere Ausgänge – FadeOut aller Mobs 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  # Vorschaustill

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 Mobs animieren

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

Immer mit -ql iterieren. 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 Mobs
references/visual-design.md12 Designprinzipien, Opazitätsschichtung, Layout-Vorlagen, 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, Layout-Vorlagen, 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.mdForschungspapiere in Animationen umwandeln – Workflow, Vorlagen, Domänenmuster
references/decorations.mdSurroundingRectangle, Brace, Pfeile, DashedLine, Angle, Annotationslebenszyklus
references/production-quality.mdChecklisten vor Code, vor Render, nach Render, räumliches Layout, Farbe, Tempo

Kreative Divergenz (nur verwenden, wenn der Benutzer experimentelle/kreative/einzigartige Ausgabe anfordert)

Wenn der Benutzer nach kreativen, experimentellen oder unkonventionellen Erklärungsansätzen fragt, wähle eine Strategie und denke sie DURCH, bevor du die Animation entwirfst.

  • SCAMPER – wenn der Benutzer eine neue Perspektive auf eine Standarderklärung möchte
  • Annahme-Umkehrung – wenn der Benutzer herausfordern möchte, wie etwas normalerweise vermittelt wird

SCAMPER-Transformation

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

  • Substitute: Ersetze die standardmäßige visuelle Metapher (Zahlenstrahl → gewundener Pfad, Matrix → Stadtplan)
  • Combine: Kombiniere zwei Erklärungsansätze (algebraisch + geometrisch gleichzeitig)
  • Reverse: Leite rückwärts ab – starte vom Ergebnis und dekonstruiere zu Axiomen
  • Modify: Übertreibe einen Parameter, um zu zeigen, warum er wichtig ist (10x die Lernrate, 1000x die Stichprobengröße)
  • Eliminate: Entferne alle Notation – erkläre rein durch Animation und räumliche Beziehungen

Annahme-Umkehrung

  1. Liste auf, was „Standard“ 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 Verformen statt Schritte, null Notation)
  4. Erkunde, was die Umkehrung offenbart, was der Standardansatz verbirgt

Verwandte Skills