<< All versions
Skill v1.0.0
currentAutomated scan100/100alexai-mcp/hermes-ccc/manim-video
──Details
PublishedOctober 28, 2026 at 07:24 AM
Content Hashsha256:1adacbbea652f576...
Git SHA8107e895541f
──Files
Files (1 file, 9.1 KB)
SKILL.md9.1 KBactive
SKILL.md · 342 lines · 9.1 KB
name: manim-video description: Create mathematical animations and explainer videos with Manim Community - code-driven animations for math, CS concepts, data visualization. version: 1.0.0 author: hermes-CCC (ported from Hermes Agent by NousResearch) license: MIT metadata: hermes: tags: [Creative, Manim, Animation, Video, Mathematics, Visualization] related_skills: []
Manim Video
Purpose
- Use this skill to create precise, code-driven animations for mathematics, computer science, algorithms, and data visualization.
- Prefer Manim when the content is structural, symbolic, or instructional rather than cinematic live-action editing.
- Manim is especially strong for equations, graphs, geometric constructions, and animated explanations of abstract systems.
Install
bash
pip install manim
- On some systems you may also need FFmpeg and LaTeX-related dependencies for full math rendering support.
- Verify the installation with
manim --version.
Mental Model
- A Manim scene is a Python class.
- You place visual objects into the scene.
- You animate transitions between states.
- The render command converts the scene into a video file.
- The code is the asset, which makes revisions reproducible.
Minimal Scene Structure
python
from manim import *class MyScene(Scene):def construct(self):text = Text("Hello, Manim")self.play(Write(text))self.wait()
Basic Workflow
- Create a Python file such as
scene.py. - Define one or more scene classes.
- Render the desired scene by name.
- Inspect the output video.
- Revise the code and rerender.
Render Command
bash
manim -pql scene.py MyScene
-pqlmeans preview plus quality low.- Use
-pqhwhen you want a higher-quality render for export or sharing. - Low-quality previews are much faster during iteration.
Core Objects
CircleSquareTextMathTexAxesNumberPlaneArrow
These cover a large fraction of introductory math and CS explainer work.
Shapes Example
python
from manim import *class Shapes(Scene):def construct(self):circle = Circle(color=BLUE)square = Square(color=GREEN).shift(RIGHT * 2)arrow = Arrow(circle.get_right(), square.get_left(), color=YELLOW)self.play(Create(circle), Create(square))self.play(Create(arrow))self.wait()
Text and Labels
- Use
Textfor plain words, labels, titles, and UI-like annotations. - Use
MathTexfor equations and symbolic math. - Keep labels short and readable.
- Position text relative to objects with helpers like
.next_to()and.to_edge().
Math Rendering
python
from manim import *class Derivative(Scene):def construct(self):expr = MathTex(r"\frac{d}{dx} x^2 = 2x")self.play(Write(expr))self.wait()
- Use raw strings for LaTeX-heavy expressions.
- Split long formulas into chunks if you want to animate parts independently.
MathTexis one of Manim's highest-value primitives for educational video.
Graphs
python
from manim import *class PlotExample(Scene):def construct(self):ax = Axes()graph = ax.plot(lambda x: x**2, color=BLUE)label = ax.get_graph_label(graph, label="x^2")self.play(Create(ax))self.play(Create(graph), FadeIn(label))self.wait()
- Use
Axes()for standard 2D coordinate systems. - Use
NumberPlane()when you want a visible grid. - Use
.plot()for function graphs. - Add labels only when they clarify the message.
Coordinate Grid Example
python
from manim import *class PlaneExample(Scene):def construct(self):plane = NumberPlane()point = Dot(plane.c2p(2, 3), color=RED)note = Text("Point (2, 3)").scale(0.5).next_to(point, UP)self.play(Create(plane))self.play(FadeIn(point), Write(note))self.wait()
Common Animations
CreateWriteTransformFadeInFadeOutMoveAlongPath
These are enough to build most educational sequences.
Animation Example
python
from manim import *class AnimateBasics(Scene):def construct(self):circle = Circle(color=BLUE)square = Square(color=GREEN)self.play(Create(circle))self.play(Transform(circle, square))self.play(FadeOut(circle))
Move Along Path
python
from manim import *class AlongPath(Scene):def construct(self):path = Circle(radius=2, color=WHITE)dot = Dot(color=YELLOW).move_to(path.point_from_proportion(0))self.add(path, dot)self.play(MoveAlongPath(dot, path), run_time=3)self.wait()
MoveAlongPathis useful for state machines, orbital motion, and process flow visuals.- Use it for conceptual journeys, packets moving through systems, or points moving across graphs.
Layout Helpers
.shift().move_to().next_to().align_to().to_edge().to_corner()VGroup(...)for grouping and arrangement
Good layout discipline saves time during revision.
Colors
REDBLUEGREENYELLOWWHITEORANGEPURPLETEAL
Use consistent semantic coloring across the scene.
Color Strategy
- Use one color for inputs, another for transformations, and another for outputs.
- Keep background contrast in mind.
- Avoid using too many unrelated colors in the same explanation.
- Use
WHITEor light tones for neutral reference geometry.
Camera Control
python
from manim import *class CameraExample(Scene):def construct(self):plane = NumberPlane()self.add(plane)self.play(self.camera.frame.animate.scale(0.5))self.wait()
- Camera animation helps when zooming into local detail.
- Use it sparingly so viewers do not lose context.
- Zooming is most useful for dense graphs, local geometry, or multi-part explanations.
Output
- Manim writes rendered video outputs under
media/videos/. - Preview renders and partial intermediates also appear under the
media/tree. - Treat the Python source as canonical and the rendered MP4 as generated output.
- Final videos are typically MP4 files.
Timing
- Use
self.wait()to hold the frame. - Adjust
run_time=on animation calls to tune pacing. - Move slower for conceptual reveals and faster for purely decorative transitions.
- Educational clarity depends on timing as much as layout.
Narration-Oriented Design
- Write scenes as if a narrator is speaking over them.
- Introduce one concept at a time.
- Avoid changing too many objects in the same beat.
- Keep equations readable on screen long enough to be processed.
- Use transforms to show continuity rather than replacing everything at once.
Reusable Pattern for Explainers
- Title the concept.
- Show the initial objects.
- Animate the transformation or derivation.
- Highlight the result.
- Pause.
This pattern works for algorithms, math derivations, and data stories.
Computer Science Use Cases
- Sorting algorithm visualizations
- Graph traversal animations
- Finite-state machines
- Distributed systems message flow
- Complexity intuition with plotted growth curves
- Data structure operations such as stack and queue updates
Data Visualization Use Cases
- Plot a function or data series
- Animate parameter changes
- Show area under a curve
- Reveal axes, labels, and legend in stages
- Compare two functions through
Transform
Three-Dimensional Scenes
python
from manim import *class My3DScene(ThreeDScene):def construct(self):axes = ThreeDAxes()sphere = Sphere(radius=1, color=BLUE)self.set_camera_orientation(phi=75 * DEGREES, theta=30 * DEGREES)self.play(Create(axes), FadeIn(sphere))self.begin_ambient_camera_rotation(rate=0.2)self.wait(3)
- Use
ThreeDScenefor surfaces, vectors, and spatial intuition. - Keep 3D scenes simple unless the extra dimension is genuinely explanatory.
- Camera motion in 3D should support understanding, not distract from it.
Debugging Tips
- Start with
-pqlfor fast feedback. - Build the scene incrementally.
- Comment out complex sections while debugging layout.
- If math fails to render, verify the TeX environment and formula syntax.
- Use small prototype scenes before composing a long final animation.
Production Guidance
- Keep one concept per scene unless continuity demands otherwise.
- Name classes clearly so render commands stay obvious.
- Break long videos into scene modules and concatenate later if needed.
- Use higher quality only after content and timing are stable.
Summary
- Install with
pip install manim. - Build scenes with
class MyScene(Scene): def construct(self):. - Use objects like
Circle,Square,Text,MathTex,Axes,NumberPlane, andArrow. - Animate with
Create,Write,Transform,FadeIn,FadeOut, andMoveAlongPath. - Render with
manim -pql scene.py MySceneand switch to-pqhfor higher quality. - Use
MathTex(r"\\frac{d}{dx} x^2 = 2x")for math andAxes().plot(...)for graphs. - Use
self.camera.frame.animate.scale(0.5)when zooming improves comprehension. - Expect MP4 output under
media/videos/.