본문으로 건너뛰기
cccskills
무료GitHub에 공개

manim-video

Production pipeline for mathematical and technical animations using Manim Community Edition. Creates 3Blue1Brown-style explainer videos, algorithm visualizations, equation derivations, architecture diagrams, and data stories. Use when users request: animated explanations, math animations, concept visualizations, algorithm walkthroughs, technical explainers, 3Blue1Brown style videos, or any programmatic animation with geometric/mathematical content.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

설치 방법 보기

포함된 파일(17)

  • SKILL.md11.7 KB
  • README.md886 B
  • references/animation-design-thinking.md7.0 KB
  • references/animations.md8.6 KB
  • references/camera-and-3d.md4.0 KB
  • references/decorations.md4.9 KB
  • references/equations.md5.9 KB
  • references/graphs-and-data.md4.5 KB
  • references/mobjects.md9.5 KB
  • references/paper-explainer.md9.1 KB
  • references/production-quality.md5.8 KB
  • references/rendering.md3.9 KB
  • references/scene-planning.md2.7 KB
  • references/troubleshooting.md4.2 KB
  • references/updaters-and-trackers.md8.3 KB
  • references/visual-design.md4.7 KB
  • scripts/setup.sh921 B

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

Manim Video Production Pipeline

Creative Standard

This is educational cinema. Every frame teaches. Every animation reveals structure.

Before writing a single line of code, articulate the narrative arc. What misconception does this correct? What is the "aha moment"? What visual story takes the viewer from confusion to understanding? The user's prompt is a starting point — interpret it with pedagogical ambition.

Geometry before algebra. Show the shape first, the equation second. Visual memory encodes faster than symbolic memory. When the viewer sees the geometric pattern before the formula, the equation feels earned.

First-render excellence is non-negotiable. The output must be visually clear and aesthetically cohesive without revision rounds. If something looks cluttered, poorly timed, or like "AI-generated slides," it is wrong.

Opacity layering directs attention. Never show everything at full brightness. Primary elements at 1.0, contextual elements at 0.4, structural elements (axes, grids) at 0.15. The brain processes visual salience in layers.

Breathing room. Every animation needs self.wait() after it. The viewer needs time to absorb what just appeared. Never rush from one animation to the next. A 2-second pause after a key reveal is never wasted.

Cohesive visual language. All scenes share a color palette, consistent typography sizing, matching animation speeds. A technically correct video where every scene uses random different colors is an aesthetic failure.

Prerequisites

Run scripts/setup.sh to verify all dependencies. Requires: Python 3.10+, Manim Community Edition v0.20+ (pip install manim), LaTeX (texlive-full on Linux, mactex on macOS), and ffmpeg. Reference docs tested against Manim CE v0.20.1.

Modes

ModeInputOutputReference
Concept explainerTopic/conceptAnimated explanation with geometric intuitionreferences/scene-planning.md
Equation derivationMath expressionsStep-by-step animated proofreferences/equations.md
Algorithm visualizationAlgorithm descriptionStep-by-step execution with data structuresreferences/graphs-and-data.md
Data storyData/metricsAnimated charts, comparisons, countersreferences/graphs-and-data.md
Architecture diagramSystem descriptionComponents building up with connectionsreferences/mobjects.md
Paper explainerResearch paperKey findings and methods animatedreferences/scene-planning.md
3D visualization3D conceptRotating surfaces, parametric curves, spatial geometryreferences/camera-and-3d.md

Stack

Single Python script per project. No browser, no Node.js, no GPU required.

LayerToolPurpose
CoreManim Community EditionScene rendering, animation engine
MathLaTeX (texlive/MiKTeX)Equation rendering via MathTex
Video I/OffmpegScene stitching, format conversion, audio muxing
TTSLocal IndexTTS2 via workspace tts-skillLossless narration voiceover

Pipeline

PLAN --> CODE --> RENDER --> STITCH --> AUDIO (optional) --> REVIEW
  1. PLAN — Write plan.md with narrative arc, scene list, visual elements, color palette, voiceover script
  2. CODE — Write script.py with one class per scene, each independently renderable
  3. RENDER — manim -ql script.py Scene1 Scene2 ... for draft, -qh for production
  4. STITCH — ffmpeg concat of scene clips into final.mp4
  5. AUDIO (optional) — Add voiceover and/or background music via ffmpeg. See references/rendering.md
  6. REVIEW — Render preview stills, verify against plan, adjust

Project Structure

project-name/
  plan.md                # Narrative arc, scene breakdown
  script.py              # All scenes in one file
  concat.txt             # ffmpeg scene list
  final.mp4              # Stitched output
  media/                 # Auto-generated by Manim
    videos/script/480p15/

Creative Direction

Color Palettes

PaletteBackgroundPrimarySecondaryAccentUse case
Classic 3B1B#1C1C1C#58C4DD (BLUE)#83C167 (GREEN)#FFFF00 (YELLOW)General math/CS
Warm academic#2D2B55#FF6B6B#FFD93D#6BCB77Approachable
Neon tech#0A0A0A#00F5FF#FF00FF#39FF14Systems, architecture
Monochrome#1A1A2E#EAEAEA#888888#FFFFFFMinimalist

Animation Speed

Contextrun_timeself.wait() after
Title/intro appear1.5s1.0s
Key equation reveal2.0s2.0s
Transform/morph1.5s1.5s
Supporting label0.8s0.5s
FadeOut cleanup0.5s0.3s
"Aha moment" reveal2.5s3.0s

Typography Scale

RoleFont sizeUsage
Title48Scene titles, opening text
Heading36Section headers within a scene
Body30Explanatory text
Label24Annotations, axis labels
Caption20Subtitles, fine print

Fonts

Use monospace fonts for all text. Manim's Pango renderer produces broken kerning with proportional fonts at all sizes. See references/visual-design.md for full recommendations.

MONO = "Menlo"  # define once at top of file

Text("Fourier Series", font_size=48, font=MONO, weight=BOLD)  # titles
Text("n=1: sin(x)", font_size=20, font=MONO)                  # labels
MathTex(r"\nabla L")                                            # math (uses LaTeX)

Minimum font_size=18 for readability.

Per-Scene Variation

Never use identical config for all scenes. For each scene:

  • Different dominant color from the palette
  • Different layout — don't always center everything
  • Different animation entry — vary between Write, FadeIn, GrowFromCenter, Create
  • Different visual weight — some scenes dense, others sparse

Workflow

Step 1: Plan (plan.md)

Before any code, write plan.md. See references/scene-planning.md for the comprehensive template.

Step 2: Code (script.py)

One class per scene. Every scene is independently renderable.

from manim import *

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

class Scene1_Introduction(Scene):
    def construct(self):
        self.camera.background_color = BG
        title = Text("Why Does This Work?", font_size=48, color=PRIMARY, weight=BOLD, font=MONO)
        self.add_subcaption("Why does this work?", duration=2)
        self.play(Write(title), run_time=1.5)
        self.wait(1.0)
        self.play(FadeOut(title), run_time=0.5)

Key patterns:

  • Subtitles on every animation: self.add_subcaption("text", duration=N) or subcaption="text" on self.play()
  • Shared color constants at file top for cross-scene consistency
  • self.camera.background_color set in every scene
  • Clean exits — FadeOut all mobjects at scene end: self.play(FadeOut(Group(*self.mobjects)))

Step 3: Render

manim -ql script.py Scene1_Introduction Scene2_CoreConcept  # draft
manim -qh script.py Scene1_Introduction Scene2_CoreConcept  # production

Step 4: Stitch

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

Step 5: Review

manim -ql --format=png -s script.py Scene2_CoreConcept  # preview still

Critical Implementation Notes

Raw Strings for LaTeX

# WRONG: MathTex("\frac{1}{2}")
# RIGHT:
MathTex(r"\frac{1}{2}")

buff >= 0.5 for Edge Text

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

FadeOut Before Replacing Text

self.play(ReplacementTransform(note1, note2))  # not Write(note2) on top

Never Animate Non-Added Mobjects

self.play(Create(circle))  # must add first
self.play(circle.animate.set_color(RED))  # then animate

Performance Targets

QualityResolutionFPSSpeed
-ql (draft)854x480155-15s/scene
-qm (medium)1280x7203015-60s/scene
-qh (production)1920x10806030-120s/scene

Always iterate at -ql. Only render -qh for final output.

References

FileContents
references/animations.mdCore animations, rate functions, composition, .animate syntax, timing patterns
references/mobjects.mdText, shapes, VGroup/Group, positioning, styling, custom mobjects
references/visual-design.md12 design principles, opacity layering, layout templates, color palettes
references/equations.mdLaTeX in Manim, TransformMatchingTex, derivation patterns
references/graphs-and-data.mdAxes, plotting, BarChart, animated data, algorithm visualization
references/camera-and-3d.mdMovingCameraScene, ThreeDScene, 3D surfaces, camera control
references/scene-planning.mdNarrative arcs, layout templates, scene transitions, planning template
references/rendering.mdCLI reference, quality presets, ffmpeg, voiceover workflow, GIF export
references/troubleshooting.mdLaTeX errors, animation errors, common mistakes, debugging
references/animation-design-thinking.mdWhen to animate vs show static, decomposition, pacing, narration sync
references/updaters-and-trackers.mdValueTracker, add_updater, always_redraw, time-based updaters, patterns
references/paper-explainer.mdTurning research papers into animations — workflow, templates, domain patterns
references/decorations.mdSurroundingRectangle, Brace, arrows, DashedLine, Angle, annotation lifecycle
references/production-quality.mdPre-code, pre-render, post-render checklists, spatial layout, color, tempo

Creative Divergence (use only when user requests experimental/creative/unique output)

If the user asks for creative, experimental, or unconventional explanatory approaches, select a strategy and reason through it BEFORE designing the animation.

  • SCAMPER — when the user wants a fresh take on a standard explanation
  • Assumption Reversal — when the user wants to challenge how something is typically taught

SCAMPER Transformation

Take a standard mathematical/technical visualization and transform it:

  • Substitute: replace the standard visual metaphor (number line → winding path, matrix → city grid)
  • Combine: merge two explanation approaches (algebraic + geometric simultaneously)
  • Reverse: derive backward — start from the result and deconstruct to axioms
  • Modify: exaggerate a parameter to show why it matters (10x the learning rate, 1000x the sample size)
  • Eliminate: remove all notation — explain purely through animation and spatial relationships

Assumption Reversal

  1. List what's "standard" about how this topic is visualized (left-to-right, 2D, discrete steps, formal notation)
  2. Pick the most fundamental assumption
  3. Reverse it (right-to-left derivation, 3D embedding of a 2D concept, continuous morphing instead of steps, zero notation)
  4. Explore what the reversal reveals that the standard approach hides

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

口播视频转录和口误识别。生成审查稿和删除任务清单。触发词:剪口播、处理视频、识别口误

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

Pluviobyte/rnskill1.7천2026년 9월 21일 업데이트

将法天象地、同源巨大法相或角色力量显现的视觉参考制作成连续关键帧,再使用用户选择或可用的图生视频工具分段生成、检查和合成动作视频,不绑定成片平台。适用于本体与法相同框、领域展开、凝实与同步出招;不负责整部小说改编或普通图片轮播。

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

Pluviobyte/rnskill1.7천2026년 9월 21일 업데이트

口播基础素材包生成。转录口播、识别口误、生成审核页;用户确认后剪出新视频,Agent 再基于剪后视频重新转写、AI 校对字幕,输出后续口播成片可用的 source_cut.mp4 和 subtitles.srt。触发词:剪口播、处理口播素材、准备口播素材、识别口误、基础素材包

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

Pluviobyte/rnskill1.7천2026년 9월 21일 업데이트

口播视频成片 Skill。把文章/口播稿/SRT、剪后视频和 HTML/图片素材串成分镜稿、时间线预览和最终 MP4;成片比例和动画风格从用户配置读取,动画默认使用小黑风格。触发词:口播成片、做分镜稿、时间线预览、合成口播视频、导出竖屏MP4

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

Pluviobyte/rnskill1.7천2026년 9월 21일 업데이트

自进化 skills。记录用户反馈,更新方法论和规则。触发词:更新规则、记录反馈、改进skill

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

Pluviobyte/rnskill1.7천2026년 9월 21일 업데이트

dbs

무료

dontbesilent 商业工具箱主入口。双模式:任务前路由(你的问题该用哪个 skill)+ 任务后导航(刚做完诊断,下一步该干什么)。 触发方式:/dbs、/商业、「帮我看看」、「下一步怎么走」 Main entry point for dontbesilent business toolkit. Dual mode: pre-task routing + post-task navigation. Trigger: /dbs, "help me with my business", "what's next"

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

Pluviobyte/rnskill1.7천2026년 9월 21일 업데이트

Pluviobyte의 스킬 모두 보기

이 스킬의 문제 신고