[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6C3DWYMXBNQF24N29DMH4YV":3,"skill-same:01M6C3DWYMXBNQF24N29DMH4YV":137},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":23,"publishedAt":34,"linkOnly":35,"markdownContent":36,"markdownBody":37,"frontMatter":38,"refName":48,"commitSha":49,"skillDirectory":50,"forksCount":51,"repositoryHtmlUrl":52,"repositoryHomepageUrl":6,"ownerHtmlUrl":53,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":54,"install":55,"resources":68},"01M6C3DWYMXBNQF24N29DMH4YV","manim-video",null,"Manim CE animations: 3Blue1Brown math\u002Falgo videos.","adnichols\u002Fai-configs","adnichols","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F493746?v=4","01M6C33VRY9WF6XWYPT1AFA7JJ","Aaron Nichols","01M6C33VWTNKGRM92E9G643V4W",5,"MIT","https:\u002F\u002Fgithub.com\u002Fadnichols\u002Fai-configs\u002Fblob\u002Fmain\u002F_hermes\u002Fdefault\u002Fprofiles\u002Fnerd\u002Fskills\u002Fcreative\u002Fmanim-video\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000016","图像与多媒体","SCENARIO","使用场景",[24,25,26,27,28,29,30,31,32,33],"manim","Video","manim video","macos","linux","windows","Animation","hermes","hermes agent","math","2026-11-10 10:12:30",false,"---\nname: manim-video\ndescription: \"Manim CE animations: 3Blue1Brown math\u002Falgo videos.\"\nversion: 1.0.0\nauthor: SHL0MS, Hermes Agent\nlicense: MIT\nplatforms: [linux, macos, windows]\nmetadata:\n  hermes:\n    tags: [Manim, Animation, Math, Video]\n    related_skills: []\n---\n\n# Manim Video Production Pipeline\n\n## When to use\n\nUse when users request: animated explanations, math animations, concept visualizations, algorithm walkthroughs, technical explainers, 3Blue1Brown style videos, or any programmatic animation with geometric\u002Fmathematical content. Creates 3Blue1Brown-style explainer videos, algorithm visualizations, equation derivations, architecture diagrams, and data stories using Manim Community Edition.\n\n## Creative Standard\n\nThis is educational cinema. Every frame teaches. Every animation reveals structure.\n\n**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.\n\n**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.\n\n**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.\n\n**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.\n\n**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.\n\n**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.\n\n## Prerequisites\n\nRun `scripts\u002Fsetup.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.\n\n## Modes\n\n| Mode | Input | Output | Reference |\n|------|-------|--------|-----------|\n| **Concept explainer** | Topic\u002Fconcept | Animated explanation with geometric intuition | `references\u002Fscene-planning.md` |\n| **Equation derivation** | Math expressions | Step-by-step animated proof | `references\u002Fequations.md` |\n| **Algorithm visualization** | Algorithm description | Step-by-step execution with data structures | `references\u002Fgraphs-and-data.md` |\n| **Data story** | Data\u002Fmetrics | Animated charts, comparisons, counters | `references\u002Fgraphs-and-data.md` |\n| **Architecture diagram** | System description | Components building up with connections | `references\u002Fmobjects.md` |\n| **Paper explainer** | Research paper | Key findings and methods animated | `references\u002Fscene-planning.md` |\n| **3D visualization** | 3D concept | Rotating surfaces, parametric curves, spatial geometry | `references\u002Fcamera-and-3d.md` |\n\n## Stack\n\nSingle Python script per project. No browser, no Node.js, no GPU required.\n\n| Layer | Tool | Purpose |\n|-------|------|---------|\n| Core | Manim Community Edition | Scene rendering, animation engine |\n| Math | LaTeX (texlive\u002FMiKTeX) | Equation rendering via `MathTex` |\n| Video I\u002FO | ffmpeg | Scene stitching, format conversion, audio muxing |\n| TTS | ElevenLabs \u002F Qwen3-TTS (optional) | Narration voiceover |\n\n## Pipeline\n\n```\nPLAN --> CODE --> RENDER --> STITCH --> AUDIO (optional) --> REVIEW\n```\n\n1. **PLAN** — Write `plan.md` with narrative arc, scene list, visual elements, color palette, voiceover script\n2. **CODE** — Write `script.py` with one class per scene, each independently renderable\n3. **RENDER** — `manim -ql script.py Scene1 Scene2 ...` for draft, `-qh` for production\n4. **STITCH** — ffmpeg concat of scene clips into `final.mp4`\n5. **AUDIO** (optional) — Add voiceover and\u002For background music via ffmpeg. See `references\u002Frendering.md`\n6. **REVIEW** — Render preview stills, verify against plan, adjust\n\n## Project Structure\n\n```\nproject-name\u002F\n  plan.md                # Narrative arc, scene breakdown\n  script.py              # All scenes in one file\n  concat.txt             # ffmpeg scene list\n  final.mp4              # Stitched output\n  media\u002F                 # Auto-generated by Manim\n    videos\u002Fscript\u002F480p15\u002F\n```\n\n## Creative Direction\n\n### Color Palettes\n\n| Palette | Background | Primary | Secondary | Accent | Use case |\n|---------|-----------|---------|-----------|--------|----------|\n| **Classic 3B1B** | `#1C1C1C` | `#58C4DD` (BLUE) | `#83C167` (GREEN) | `#FFFF00` (YELLOW) | General math\u002FCS |\n| **Warm academic** | `#2D2B55` | `#FF6B6B` | `#FFD93D` | `#6BCB77` | Approachable |\n| **Neon tech** | `#0A0A0A` | `#00F5FF` | `#FF00FF` | `#39FF14` | Systems, architecture |\n| **Monochrome** | `#1A1A2E` | `#EAEAEA` | `#888888` | `#FFFFFF` | Minimalist |\n\n### Animation Speed\n\n| Context | run_time | self.wait() after |\n|---------|----------|-------------------|\n| Title\u002Fintro appear | 1.5s | 1.0s |\n| Key equation reveal | 2.0s | 2.0s |\n| Transform\u002Fmorph | 1.5s | 1.5s |\n| Supporting label | 0.8s | 0.5s |\n| FadeOut cleanup | 0.5s | 0.3s |\n| \"Aha moment\" reveal | 2.5s | 3.0s |\n\n### Typography Scale\n\n| Role | Font size | Usage |\n|------|-----------|-------|\n| Title | 48 | Scene titles, opening text |\n| Heading | 36 | Section headers within a scene |\n| Body | 30 | Explanatory text |\n| Label | 24 | Annotations, axis labels |\n| Caption | 20 | Subtitles, fine print |\n\n### Fonts\n\n**Use monospace fonts for all text.** Manim's Pango renderer produces broken kerning with proportional fonts at all sizes. See `references\u002Fvisual-design.md` for full recommendations.\n\n```python\nMONO = \"Menlo\"  # define once at top of file\n\nText(\"Fourier Series\", font_size=48, font=MONO, weight=BOLD)  # titles\nText(\"n=1: sin(x)\", font_size=20, font=MONO)                  # labels\nMathTex(r\"\\nabla L\")                                            # math (uses LaTeX)\n```\n\nMinimum `font_size=18` for readability.\n\n### Per-Scene Variation\n\nNever use identical config for all scenes. For each scene:\n- **Different dominant color** from the palette\n- **Different layout** — don't always center everything\n- **Different animation entry** — vary between Write, FadeIn, GrowFromCenter, Create\n- **Different visual weight** — some scenes dense, others sparse\n\n## Workflow\n\n### Step 1: Plan (plan.md)\n\nBefore any code, write `plan.md`. See `references\u002Fscene-planning.md` for the comprehensive template.\n\n### Step 2: Code (script.py)\n\nOne class per scene. Every scene is independently renderable.\n\n```python\nfrom manim import *\n\nBG = \"#1C1C1C\"\nPRIMARY = \"#58C4DD\"\nSECONDARY = \"#83C167\"\nACCENT = \"#FFFF00\"\nMONO = \"Menlo\"\n\nclass Scene1_Introduction(Scene):\n    def construct(self):\n        self.camera.background_color = BG\n        title = Text(\"Why Does This Work?\", font_size=48, color=PRIMARY, weight=BOLD, font=MONO)\n        self.add_subcaption(\"Why does this work?\", duration=2)\n        self.play(Write(title), run_time=1.5)\n        self.wait(1.0)\n        self.play(FadeOut(title), run_time=0.5)\n```\n\nKey patterns:\n- **Subtitles** on every animation: `self.add_subcaption(\"text\", duration=N)` or `subcaption=\"text\"` on `self.play()`\n- **Shared color constants** at file top for cross-scene consistency\n- **`self.camera.background_color`** set in every scene\n- **Clean exits** — FadeOut all mobjects at scene end: `self.play(FadeOut(Group(*self.mobjects)))`\n\n### Step 3: Render\n\n```bash\nmanim -ql script.py Scene1_Introduction Scene2_CoreConcept  # draft\nmanim -qh script.py Scene1_Introduction Scene2_CoreConcept  # production\n```\n\n### Step 4: Stitch\n\n```bash\ncat > concat.txt \u003C\u003C 'EOF'\nfile 'media\u002Fvideos\u002Fscript\u002F480p15\u002FScene1_Introduction.mp4'\nfile 'media\u002Fvideos\u002Fscript\u002F480p15\u002FScene2_CoreConcept.mp4'\nEOF\nffmpeg -y -f concat -safe 0 -i concat.txt -c copy final.mp4\n```\n\n### Step 5: Review\n\n```bash\nmanim -ql --format=png -s script.py Scene2_CoreConcept  # preview still\n```\n\n## Critical Implementation Notes\n\n### Raw Strings for LaTeX\n```python\n# WRONG: MathTex(\"\\frac{1}{2}\")\n# RIGHT:\nMathTex(r\"\\frac{1}{2}\")\n```\n\n### buff >= 0.5 for Edge Text\n```python\nlabel.to_edge(DOWN, buff=0.5)  # never \u003C 0.5\n```\n\n### FadeOut Before Replacing Text\n```python\nself.play(ReplacementTransform(note1, note2))  # not Write(note2) on top\n```\n\n### Never Animate Non-Added Mobjects\n```python\nself.play(Create(circle))  # must add first\nself.play(circle.animate.set_color(RED))  # then animate\n```\n\n## Performance Targets\n\n| Quality | Resolution | FPS | Speed |\n|---------|-----------|-----|-------|\n| `-ql` (draft) | 854x480 | 15 | 5-15s\u002Fscene |\n| `-qm` (medium) | 1280x720 | 30 | 15-60s\u002Fscene |\n| `-qh` (production) | 1920x1080 | 60 | 30-120s\u002Fscene |\n\nAlways iterate at `-ql`. Only render `-qh` for final output.\n\n## References\n\n| File | Contents |\n|------|----------|\n| `references\u002Fanimations.md` | Core animations, rate functions, composition, `.animate` syntax, timing patterns |\n| `references\u002Fmobjects.md` | Text, shapes, VGroup\u002FGroup, positioning, styling, custom mobjects |\n| `references\u002Fvisual-design.md` | 12 design principles, opacity layering, layout templates, color palettes |\n| `references\u002Fequations.md` | LaTeX in Manim, TransformMatchingTex, derivation patterns |\n| `references\u002Fgraphs-and-data.md` | Axes, plotting, BarChart, animated data, algorithm visualization |\n| `references\u002Fcamera-and-3d.md` | MovingCameraScene, ThreeDScene, 3D surfaces, camera control |\n| `references\u002Fscene-planning.md` | Narrative arcs, layout templates, scene transitions, planning template |\n| `references\u002Frendering.md` | CLI reference, quality presets, ffmpeg, voiceover workflow, GIF export |\n| `references\u002Ftroubleshooting.md` | LaTeX errors, animation errors, common mistakes, debugging |\n| `references\u002Fanimation-design-thinking.md` | When to animate vs show static, decomposition, pacing, narration sync |\n| `references\u002Fupdaters-and-trackers.md` | ValueTracker, add_updater, always_redraw, time-based updaters, patterns |\n| `references\u002Fpaper-explainer.md` | Turning research papers into animations — workflow, templates, domain patterns |\n| `references\u002Fdecorations.md` | SurroundingRectangle, Brace, arrows, DashedLine, Angle, annotation lifecycle |\n| `references\u002Fproduction-quality.md` | Pre-code, pre-render, post-render checklists, spatial layout, color, tempo |\n\n---\n\n## Creative Divergence (use only when user requests experimental\u002Fcreative\u002Funique output)\n\nIf the user asks for creative, experimental, or unconventional explanatory approaches, select a strategy and reason through it BEFORE designing the animation.\n\n- **SCAMPER** — when the user wants a fresh take on a standard explanation\n- **Assumption Reversal** — when the user wants to challenge how something is typically taught\n\n### SCAMPER Transformation\nTake a standard mathematical\u002Ftechnical visualization and transform it:\n- **Substitute**: replace the standard visual metaphor (number line → winding path, matrix → city grid)\n- **Combine**: merge two explanation approaches (algebraic + geometric simultaneously)\n- **Reverse**: derive backward — start from the result and deconstruct to axioms\n- **Modify**: exaggerate a parameter to show why it matters (10x the learning rate, 1000x the sample size)\n- **Eliminate**: remove all notation — explain purely through animation and spatial relationships\n\n### Assumption Reversal\n1. List what's \"standard\" about how this topic is visualized (left-to-right, 2D, discrete steps, formal notation)\n2. Pick the most fundamental assumption\n3. Reverse it (right-to-left derivation, 3D embedding of a 2D concept, continuous morphing instead of steps, zero notation)\n4. Explore what the reversal reveals that the standard approach hides\n","# Manim Video Production Pipeline\n\n## When to use\n\nUse when users request: animated explanations, math animations, concept visualizations, algorithm walkthroughs, technical explainers, 3Blue1Brown style videos, or any programmatic animation with geometric\u002Fmathematical content. Creates 3Blue1Brown-style explainer videos, algorithm visualizations, equation derivations, architecture diagrams, and data stories using Manim Community Edition.\n\n## Creative Standard\n\nThis is educational cinema. Every frame teaches. Every animation reveals structure.\n\n**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.\n\n**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.\n\n**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.\n\n**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.\n\n**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.\n\n**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.\n\n## Prerequisites\n\nRun `scripts\u002Fsetup.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.\n\n## Modes\n\n| Mode | Input | Output | Reference |\n|------|-------|--------|-----------|\n| **Concept explainer** | Topic\u002Fconcept | Animated explanation with geometric intuition | `references\u002Fscene-planning.md` |\n| **Equation derivation** | Math expressions | Step-by-step animated proof | `references\u002Fequations.md` |\n| **Algorithm visualization** | Algorithm description | Step-by-step execution with data structures | `references\u002Fgraphs-and-data.md` |\n| **Data story** | Data\u002Fmetrics | Animated charts, comparisons, counters | `references\u002Fgraphs-and-data.md` |\n| **Architecture diagram** | System description | Components building up with connections | `references\u002Fmobjects.md` |\n| **Paper explainer** | Research paper | Key findings and methods animated | `references\u002Fscene-planning.md` |\n| **3D visualization** | 3D concept | Rotating surfaces, parametric curves, spatial geometry | `references\u002Fcamera-and-3d.md` |\n\n## Stack\n\nSingle Python script per project. No browser, no Node.js, no GPU required.\n\n| Layer | Tool | Purpose |\n|-------|------|---------|\n| Core | Manim Community Edition | Scene rendering, animation engine |\n| Math | LaTeX (texlive\u002FMiKTeX) | Equation rendering via `MathTex` |\n| Video I\u002FO | ffmpeg | Scene stitching, format conversion, audio muxing |\n| TTS | ElevenLabs \u002F Qwen3-TTS (optional) | Narration voiceover |\n\n## Pipeline\n\n```\nPLAN --> CODE --> RENDER --> STITCH --> AUDIO (optional) --> REVIEW\n```\n\n1. **PLAN** — Write `plan.md` with narrative arc, scene list, visual elements, color palette, voiceover script\n2. **CODE** — Write `script.py` with one class per scene, each independently renderable\n3. **RENDER** — `manim -ql script.py Scene1 Scene2 ...` for draft, `-qh` for production\n4. **STITCH** — ffmpeg concat of scene clips into `final.mp4`\n5. **AUDIO** (optional) — Add voiceover and\u002For background music via ffmpeg. See `references\u002Frendering.md`\n6. **REVIEW** — Render preview stills, verify against plan, adjust\n\n## Project Structure\n\n```\nproject-name\u002F\n  plan.md                # Narrative arc, scene breakdown\n  script.py              # All scenes in one file\n  concat.txt             # ffmpeg scene list\n  final.mp4              # Stitched output\n  media\u002F                 # Auto-generated by Manim\n    videos\u002Fscript\u002F480p15\u002F\n```\n\n## Creative Direction\n\n### Color Palettes\n\n| Palette | Background | Primary | Secondary | Accent | Use case |\n|---------|-----------|---------|-----------|--------|----------|\n| **Classic 3B1B** | `#1C1C1C` | `#58C4DD` (BLUE) | `#83C167` (GREEN) | `#FFFF00` (YELLOW) | General math\u002FCS |\n| **Warm academic** | `#2D2B55` | `#FF6B6B` | `#FFD93D` | `#6BCB77` | Approachable |\n| **Neon tech** | `#0A0A0A` | `#00F5FF` | `#FF00FF` | `#39FF14` | Systems, architecture |\n| **Monochrome** | `#1A1A2E` | `#EAEAEA` | `#888888` | `#FFFFFF` | Minimalist |\n\n### Animation Speed\n\n| Context | run_time | self.wait() after |\n|---------|----------|-------------------|\n| Title\u002Fintro appear | 1.5s | 1.0s |\n| Key equation reveal | 2.0s | 2.0s |\n| Transform\u002Fmorph | 1.5s | 1.5s |\n| Supporting label | 0.8s | 0.5s |\n| FadeOut cleanup | 0.5s | 0.3s |\n| \"Aha moment\" reveal | 2.5s | 3.0s |\n\n### Typography Scale\n\n| Role | Font size | Usage |\n|------|-----------|-------|\n| Title | 48 | Scene titles, opening text |\n| Heading | 36 | Section headers within a scene |\n| Body | 30 | Explanatory text |\n| Label | 24 | Annotations, axis labels |\n| Caption | 20 | Subtitles, fine print |\n\n### Fonts\n\n**Use monospace fonts for all text.** Manim's Pango renderer produces broken kerning with proportional fonts at all sizes. See `references\u002Fvisual-design.md` for full recommendations.\n\n```python\nMONO = \"Menlo\"  # define once at top of file\n\nText(\"Fourier Series\", font_size=48, font=MONO, weight=BOLD)  # titles\nText(\"n=1: sin(x)\", font_size=20, font=MONO)                  # labels\nMathTex(r\"\\nabla L\")                                            # math (uses LaTeX)\n```\n\nMinimum `font_size=18` for readability.\n\n### Per-Scene Variation\n\nNever use identical config for all scenes. For each scene:\n- **Different dominant color** from the palette\n- **Different layout** — don't always center everything\n- **Different animation entry** — vary between Write, FadeIn, GrowFromCenter, Create\n- **Different visual weight** — some scenes dense, others sparse\n\n## Workflow\n\n### Step 1: Plan (plan.md)\n\nBefore any code, write `plan.md`. See `references\u002Fscene-planning.md` for the comprehensive template.\n\n### Step 2: Code (script.py)\n\nOne class per scene. Every scene is independently renderable.\n\n```python\nfrom manim import *\n\nBG = \"#1C1C1C\"\nPRIMARY = \"#58C4DD\"\nSECONDARY = \"#83C167\"\nACCENT = \"#FFFF00\"\nMONO = \"Menlo\"\n\nclass Scene1_Introduction(Scene):\n    def construct(self):\n        self.camera.background_color = BG\n        title = Text(\"Why Does This Work?\", font_size=48, color=PRIMARY, weight=BOLD, font=MONO)\n        self.add_subcaption(\"Why does this work?\", duration=2)\n        self.play(Write(title), run_time=1.5)\n        self.wait(1.0)\n        self.play(FadeOut(title), run_time=0.5)\n```\n\nKey patterns:\n- **Subtitles** on every animation: `self.add_subcaption(\"text\", duration=N)` or `subcaption=\"text\"` on `self.play()`\n- **Shared color constants** at file top for cross-scene consistency\n- **`self.camera.background_color`** set in every scene\n- **Clean exits** — FadeOut all mobjects at scene end: `self.play(FadeOut(Group(*self.mobjects)))`\n\n### Step 3: Render\n\n```bash\nmanim -ql script.py Scene1_Introduction Scene2_CoreConcept  # draft\nmanim -qh script.py Scene1_Introduction Scene2_CoreConcept  # production\n```\n\n### Step 4: Stitch\n\n```bash\ncat > concat.txt \u003C\u003C 'EOF'\nfile 'media\u002Fvideos\u002Fscript\u002F480p15\u002FScene1_Introduction.mp4'\nfile 'media\u002Fvideos\u002Fscript\u002F480p15\u002FScene2_CoreConcept.mp4'\nEOF\nffmpeg -y -f concat -safe 0 -i concat.txt -c copy final.mp4\n```\n\n### Step 5: Review\n\n```bash\nmanim -ql --format=png -s script.py Scene2_CoreConcept  # preview still\n```\n\n## Critical Implementation Notes\n\n### Raw Strings for LaTeX\n```python\n# WRONG: MathTex(\"\\frac{1}{2}\")\n# RIGHT:\nMathTex(r\"\\frac{1}{2}\")\n```\n\n### buff >= 0.5 for Edge Text\n```python\nlabel.to_edge(DOWN, buff=0.5)  # never \u003C 0.5\n```\n\n### FadeOut Before Replacing Text\n```python\nself.play(ReplacementTransform(note1, note2))  # not Write(note2) on top\n```\n\n### Never Animate Non-Added Mobjects\n```python\nself.play(Create(circle))  # must add first\nself.play(circle.animate.set_color(RED))  # then animate\n```\n\n## Performance Targets\n\n| Quality | Resolution | FPS | Speed |\n|---------|-----------|-----|-------|\n| `-ql` (draft) | 854x480 | 15 | 5-15s\u002Fscene |\n| `-qm` (medium) | 1280x720 | 30 | 15-60s\u002Fscene |\n| `-qh` (production) | 1920x1080 | 60 | 30-120s\u002Fscene |\n\nAlways iterate at `-ql`. Only render `-qh` for final output.\n\n## References\n\n| File | Contents |\n|------|----------|\n| `references\u002Fanimations.md` | Core animations, rate functions, composition, `.animate` syntax, timing patterns |\n| `references\u002Fmobjects.md` | Text, shapes, VGroup\u002FGroup, positioning, styling, custom mobjects |\n| `references\u002Fvisual-design.md` | 12 design principles, opacity layering, layout templates, color palettes |\n| `references\u002Fequations.md` | LaTeX in Manim, TransformMatchingTex, derivation patterns |\n| `references\u002Fgraphs-and-data.md` | Axes, plotting, BarChart, animated data, algorithm visualization |\n| `references\u002Fcamera-and-3d.md` | MovingCameraScene, ThreeDScene, 3D surfaces, camera control |\n| `references\u002Fscene-planning.md` | Narrative arcs, layout templates, scene transitions, planning template |\n| `references\u002Frendering.md` | CLI reference, quality presets, ffmpeg, voiceover workflow, GIF export |\n| `references\u002Ftroubleshooting.md` | LaTeX errors, animation errors, common mistakes, debugging |\n| `references\u002Fanimation-design-thinking.md` | When to animate vs show static, decomposition, pacing, narration sync |\n| `references\u002Fupdaters-and-trackers.md` | ValueTracker, add_updater, always_redraw, time-based updaters, patterns |\n| `references\u002Fpaper-explainer.md` | Turning research papers into animations — workflow, templates, domain patterns |\n| `references\u002Fdecorations.md` | SurroundingRectangle, Brace, arrows, DashedLine, Angle, annotation lifecycle |\n| `references\u002Fproduction-quality.md` | Pre-code, pre-render, post-render checklists, spatial layout, color, tempo |\n\n---\n\n## Creative Divergence (use only when user requests experimental\u002Fcreative\u002Funique output)\n\nIf the user asks for creative, experimental, or unconventional explanatory approaches, select a strategy and reason through it BEFORE designing the animation.\n\n- **SCAMPER** — when the user wants a fresh take on a standard explanation\n- **Assumption Reversal** — when the user wants to challenge how something is typically taught\n\n### SCAMPER Transformation\nTake a standard mathematical\u002Ftechnical visualization and transform it:\n- **Substitute**: replace the standard visual metaphor (number line → winding path, matrix → city grid)\n- **Combine**: merge two explanation approaches (algebraic + geometric simultaneously)\n- **Reverse**: derive backward — start from the result and deconstruct to axioms\n- **Modify**: exaggerate a parameter to show why it matters (10x the learning rate, 1000x the sample size)\n- **Eliminate**: remove all notation — explain purely through animation and spatial relationships\n\n### Assumption Reversal\n1. List what's \"standard\" about how this topic is visualized (left-to-right, 2D, discrete steps, formal notation)\n2. Pick the most fundamental assumption\n3. Reverse it (right-to-left derivation, 3D embedding of a 2D concept, continuous morphing instead of steps, zero notation)\n4. Explore what the reversal reveals that the standard approach hides\n",{"name":5,"author":39,"license":15,"version":40,"metadata":41,"platforms":47,"description":7},"SHL0MS, Hermes Agent","1.0.0",{"hermes":42},{"tags":43,"related_skills":46},[44,30,45,25],"Manim","Math",[],[28,27,29],"main","64e2fc9afa7bb3da1138eb73399144d0e7e73e9d","_hermes\u002Fdefault\u002Fprofiles\u002Fnerd\u002Fskills\u002Fcreative\u002Fmanim-video",4,"https:\u002F\u002Fgithub.com\u002Fadnichols\u002Fai-configs","https:\u002F\u002Fgithub.com\u002Fadnichols","2026-11-06 00:28:38",{"source":8,"skillName":5,"commands":56,"prompt":66,"zipAvailable":67},[57,60,63],{"tool":58,"command":59},"npx","npx skills add adnichols\u002Fai-configs --skill manim-video",{"tool":61,"command":62},"bunx","bunx skills add adnichols\u002Fai-configs --skill manim-video",{"tool":64,"command":65},"pnpm","pnpm dlx skills add adnichols\u002Fai-configs --skill manim-video","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fadnichols\u002Fai-configs\u002Fblob\u002Fmain\u002F_hermes\u002Fdefault\u002Fprofiles\u002Fnerd\u002Fskills\u002Fcreative\u002Fmanim-video\u002FSKILL.md",true,[69,75,79,83,87,91,95,99,103,107,111,115,119,123,127,131],{"path":70,"resourceType":71,"resourceTypeDesc":72,"sizeBytes":73,"sourceHtmlUrl":74},"README.md","REFERENCE","参考文档",886,"https:\u002F\u002Fgithub.com\u002Fadnichols\u002Fai-configs\u002Fblob\u002Fmain\u002F_hermes\u002Fdefault\u002Fprofiles\u002Fnerd\u002Fskills\u002Fcreative\u002Fmanim-video\u002FREADME.md",{"path":76,"resourceType":71,"resourceTypeDesc":72,"sizeBytes":77,"sourceHtmlUrl":78},"references\u002Fanimation-design-thinking.md",7205,"https:\u002F\u002Fgithub.com\u002Fadnichols\u002Fai-configs\u002Fblob\u002Fmain\u002F_hermes\u002Fdefault\u002Fprofiles\u002Fnerd\u002Fskills\u002Fcreative\u002Fmanim-video\u002Freferences\u002Fanimation-design-thinking.md",{"path":80,"resourceType":71,"resourceTypeDesc":72,"sizeBytes":81,"sourceHtmlUrl":82},"references\u002Fanimations.md",8836,"https:\u002F\u002Fgithub.com\u002Fadnichols\u002Fai-configs\u002Fblob\u002Fmain\u002F_hermes\u002Fdefault\u002Fprofiles\u002Fnerd\u002Fskills\u002Fcreative\u002Fmanim-video\u002Freferences\u002Fanimations.md",{"path":84,"resourceType":71,"resourceTypeDesc":72,"sizeBytes":85,"sourceHtmlUrl":86},"references\u002Fcamera-and-3d.md",4132,"https:\u002F\u002Fgithub.com\u002Fadnichols\u002Fai-configs\u002Fblob\u002Fmain\u002F_hermes\u002Fdefault\u002Fprofiles\u002Fnerd\u002Fskills\u002Fcreative\u002Fmanim-video\u002Freferences\u002Fcamera-and-3d.md",{"path":88,"resourceType":71,"resourceTypeDesc":72,"sizeBytes":89,"sourceHtmlUrl":90},"references\u002Fdecorations.md",5006,"https:\u002F\u002Fgithub.com\u002Fadnichols\u002Fai-configs\u002Fblob\u002Fmain\u002F_hermes\u002Fdefault\u002Fprofiles\u002Fnerd\u002Fskills\u002Fcreative\u002Fmanim-video\u002Freferences\u002Fdecorations.md",{"path":92,"resourceType":71,"resourceTypeDesc":72,"sizeBytes":93,"sourceHtmlUrl":94},"references\u002Fequations.md",6086,"https:\u002F\u002Fgithub.com\u002Fadnichols\u002Fai-configs\u002Fblob\u002Fmain\u002F_hermes\u002Fdefault\u002Fprofiles\u002Fnerd\u002Fskills\u002Fcreative\u002Fmanim-video\u002Freferences\u002Fequations.md",{"path":96,"resourceType":71,"resourceTypeDesc":72,"sizeBytes":97,"sourceHtmlUrl":98},"references\u002Fgraphs-and-data.md",4628,"https:\u002F\u002Fgithub.com\u002Fadnichols\u002Fai-configs\u002Fblob\u002Fmain\u002F_hermes\u002Fdefault\u002Fprofiles\u002Fnerd\u002Fskills\u002Fcreative\u002Fmanim-video\u002Freferences\u002Fgraphs-and-data.md",{"path":100,"resourceType":71,"resourceTypeDesc":72,"sizeBytes":101,"sourceHtmlUrl":102},"references\u002Fmobjects.md",9739,"https:\u002F\u002Fgithub.com\u002Fadnichols\u002Fai-configs\u002Fblob\u002Fmain\u002F_hermes\u002Fdefault\u002Fprofiles\u002Fnerd\u002Fskills\u002Fcreative\u002Fmanim-video\u002Freferences\u002Fmobjects.md",{"path":104,"resourceType":71,"resourceTypeDesc":72,"sizeBytes":105,"sourceHtmlUrl":106},"references\u002Fpaper-explainer.md",9333,"https:\u002F\u002Fgithub.com\u002Fadnichols\u002Fai-configs\u002Fblob\u002Fmain\u002F_hermes\u002Fdefault\u002Fprofiles\u002Fnerd\u002Fskills\u002Fcreative\u002Fmanim-video\u002Freferences\u002Fpaper-explainer.md",{"path":108,"resourceType":71,"resourceTypeDesc":72,"sizeBytes":109,"sourceHtmlUrl":110},"references\u002Fproduction-quality.md",5904,"https:\u002F\u002Fgithub.com\u002Fadnichols\u002Fai-configs\u002Fblob\u002Fmain\u002F_hermes\u002Fdefault\u002Fprofiles\u002Fnerd\u002Fskills\u002Fcreative\u002Fmanim-video\u002Freferences\u002Fproduction-quality.md",{"path":112,"resourceType":71,"resourceTypeDesc":72,"sizeBytes":113,"sourceHtmlUrl":114},"references\u002Frendering.md",5375,"https:\u002F\u002Fgithub.com\u002Fadnichols\u002Fai-configs\u002Fblob\u002Fmain\u002F_hermes\u002Fdefault\u002Fprofiles\u002Fnerd\u002Fskills\u002Fcreative\u002Fmanim-video\u002Freferences\u002Frendering.md",{"path":116,"resourceType":71,"resourceTypeDesc":72,"sizeBytes":117,"sourceHtmlUrl":118},"references\u002Fscene-planning.md",2751,"https:\u002F\u002Fgithub.com\u002Fadnichols\u002Fai-configs\u002Fblob\u002Fmain\u002F_hermes\u002Fdefault\u002Fprofiles\u002Fnerd\u002Fskills\u002Fcreative\u002Fmanim-video\u002Freferences\u002Fscene-planning.md",{"path":120,"resourceType":71,"resourceTypeDesc":72,"sizeBytes":121,"sourceHtmlUrl":122},"references\u002Ftroubleshooting.md",4319,"https:\u002F\u002Fgithub.com\u002Fadnichols\u002Fai-configs\u002Fblob\u002Fmain\u002F_hermes\u002Fdefault\u002Fprofiles\u002Fnerd\u002Fskills\u002Fcreative\u002Fmanim-video\u002Freferences\u002Ftroubleshooting.md",{"path":124,"resourceType":71,"resourceTypeDesc":72,"sizeBytes":125,"sourceHtmlUrl":126},"references\u002Fupdaters-and-trackers.md",8500,"https:\u002F\u002Fgithub.com\u002Fadnichols\u002Fai-configs\u002Fblob\u002Fmain\u002F_hermes\u002Fdefault\u002Fprofiles\u002Fnerd\u002Fskills\u002Fcreative\u002Fmanim-video\u002Freferences\u002Fupdaters-and-trackers.md",{"path":128,"resourceType":71,"resourceTypeDesc":72,"sizeBytes":129,"sourceHtmlUrl":130},"references\u002Fvisual-design.md",4762,"https:\u002F\u002Fgithub.com\u002Fadnichols\u002Fai-configs\u002Fblob\u002Fmain\u002F_hermes\u002Fdefault\u002Fprofiles\u002Fnerd\u002Fskills\u002Fcreative\u002Fmanim-video\u002Freferences\u002Fvisual-design.md",{"path":132,"resourceType":133,"resourceTypeDesc":134,"sizeBytes":135,"sourceHtmlUrl":136},"scripts\u002Fsetup.sh","SCRIPT","脚本",921,"https:\u002F\u002Fgithub.com\u002Fadnichols\u002Fai-configs\u002Fblob\u002Fmain\u002F_hermes\u002Fdefault\u002Fprofiles\u002Fnerd\u002Fskills\u002Fcreative\u002Fmanim-video\u002Fscripts\u002Fsetup.sh",[138,155,187,212,223,239],{"skillNo":139,"name":140,"nameZh":6,"description":141,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":142,"categories":143,"keywords":144,"publishedAt":34},"01M6CB7RN791P5RRRCJWWC7DAR","blocked-page-recovery","Use when a fetch fails: 403\u002F429, paywall, WAF, bot wall.","https:\u002F\u002Fgithub.com\u002Fadnichols\u002Fai-configs\u002Fblob\u002Fmain\u002F_hermes\u002Fdefault\u002Fskills\u002Fweb\u002Fblocked-page-recovery\u002FSKILL.md",[],[145,146,147,148,149,150,151,32,31,152,153,29,154,28,27],"recovery","page","blocked page recovery","bot","fallback","use","fetch","Citations","waf","research",{"skillNo":156,"name":157,"nameZh":6,"description":158,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":159,"categories":160,"keywords":172,"publishedAt":34},"01M6CB7NQY2VVYCQJ1QBXACQF4","writing-plans","Use when creating or updating executable software plans. Keep plans as local files unless the user explicitly asks to register them in Doct.","https:\u002F\u002Fgithub.com\u002Fadnichols\u002Fai-configs\u002Fblob\u002Fmain\u002F_hermes\u002Fdefault\u002Fskills\u002Fsoftware-development\u002Fwriting-plans\u002FSKILL.md",[161,164,167],{"categoryNo":162,"categoryName":163,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000018","写作与文案",{"categoryNo":165,"categoryName":166,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发",{"categoryNo":168,"categoryName":169,"taxonomyType":170,"taxonomyTypeDesc":171},"01JBSEEDCAT000000000000036","内容创作者","PROFESSION","适用职业",[173,174,175,176,177,178,179,180,181,182,183,184,150,185,32,31,186],"writing","writing plans","documentation","test","workflow","design","user","development","planning","files","implementation","html","ops","plan",{"skillNo":188,"name":189,"nameZh":6,"description":190,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":191,"categories":192,"keywords":202,"publishedAt":34},"01M6CB7JME246KZQHP73Z2STDF","test-driven-development","TDD: enforce RED-GREEN-REFACTOR, tests before code.","https:\u002F\u002Fgithub.com\u002Fadnichols\u002Fai-configs\u002Fblob\u002Fmain\u002F_hermes\u002Fdefault\u002Fskills\u002Fsoftware-development\u002Ftest-driven-development\u002FSKILL.md",[193,196,199],{"categoryNo":194,"categoryName":195,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000007","代码审查",{"categoryNo":197,"categoryName":198,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000008","测试与质量",{"categoryNo":200,"categoryName":201,"taxonomyType":170,"taxonomyTypeDesc":171},"01JBSEEDCAT000000000000037","律师与法务",[176,180,203,204,205,32,31,206,186,207,208,209,27,210,28,211,29],"test driven development","red-green-refactor","superpowers","quality","refactor","code","debugging","tdd","testing",{"skillNo":213,"name":214,"nameZh":6,"description":215,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":216,"categories":217,"keywords":219,"publishedAt":34},"01M6CB7FQ407KQTD4Z9VAWKY54","systematic-debugging","4-phase root cause debugging: understand bugs before fixing.","https:\u002F\u002Fgithub.com\u002Fadnichols\u002Fai-configs\u002Fblob\u002Fmain\u002F_hermes\u002Fdefault\u002Fskills\u002Fsoftware-development\u002Fsystematic-debugging\u002FSKILL.md",[218],{"categoryNo":197,"categoryName":198,"taxonomyType":21,"taxonomyTypeDesc":22},[209,220,180,205,32,31,221,186,222,29,176,28,27],"systematic debugging","troubleshooting","investigation",{"skillNo":224,"name":225,"nameZh":6,"description":226,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":227,"categories":228,"keywords":232,"publishedAt":34},"01M6CB7D57MK88HE5YPZHKH68Q","spike","Throwaway experiments to validate an idea before build.","https:\u002F\u002Fgithub.com\u002Fadnichols\u002Fai-configs\u002Fblob\u002Fmain\u002F_hermes\u002Fdefault\u002Fskills\u002Fsoftware-development\u002Fspike\u002FSKILL.md",[229],{"categoryNo":230,"categoryName":231,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000021","资料检索与研究",[225,29,233,234,154,235,28,27,236,237,238,32,31,186,181],"validate","experiments","prototype","feasibility","sketch","experiment",{"skillNo":240,"name":241,"nameZh":6,"description":242,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":243,"categories":244,"keywords":249,"publishedAt":34},"01M6CB7APAQ37YE5YE1MAAFT42","simplify-code","Parallel 3-agent cleanup of recent code changes.","https:\u002F\u002Fgithub.com\u002Fadnichols\u002Fai-configs\u002Fblob\u002Fmain\u002F_hermes\u002Fdefault\u002Fskills\u002Fsoftware-development\u002Fsimplify-code\u002FSKILL.md",[245,246],{"categoryNo":165,"categoryName":166,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":247,"categoryName":248,"taxonomyType":170,"taxonomyTypeDesc":171},"01JBSEEDCAT000000000000030","开发工程师",[250,251,208,252,32,31,253,186,207,254,255,256,180,29,176,28,257,27],"simplify code","simplify","subagent","parallel","code-review","delegation","cleanup","review"]