Skills DirectorySkills Directory
SkillsLearnSecurityCategoriesDocsBlogPro
Sign InSubmit Skill
Skills Directory

Security-tested agent skills for Claude, coding agents, and AI workflows.

Directory

  • Browse Skills
  • All Skills A–Z
  • Claude Skills
  • Claude Code Skills
  • Agent Skills
  • Categories
  • Authors
  • Submit a Skill

Learn

  • Learn Hub
  • Install Claude Skills
  • Write SKILL.md
  • Skills vs MCP
  • Directories Compared

Security

  • Security
  • Methodology
  • Secure Claude Skills
  • Security Badges
  • Chrome Extension
  • Skill Manager

Company

  • About
  • Community
  • Blog
  • API Docs
  • Advertise

2026 Skills Directory. All rights reserved.

ProTermsPrivacyRefunds
Back to skills

Manim Animator

ASecurity

Create code-driven explanatory animations and precise vector graphics with Manim, optionally using SandBase for generated images, narration, music, or transcription. Use for mathematical, scientific, algorithmic, or diagrammatic animation; use a video-generation workflow for photoreal footage.

200 stars
0 votes
0 copies
0 views
Added 9/26/2026
ai-agentspythongoexpressapi

Works with

cliapi

Security Analysis

A100/100

Pro scans all 2 files and shows the line behind each finding

Scanned 9/26/2026

$npx -y skills add sandbaseai/sandbase-skills --skill manim-animator --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Manim Animator?

Add the live security badge to your README — it updates automatically with every re-scan.

Security grade badge for Manim Animator
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/sandbaseai-manim-animator/badge)](https://www.skillsdirectory.com/skills/sandbaseai-manim-animator)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
Files
SKILL.md
---
name: manim-animator
description: "Create code-driven explanatory animations and precise vector graphics with Manim, optionally using SandBase for generated images, narration, music, or transcription. Use for mathematical, scientific, algorithmic, or diagrammatic animation; use a video-generation workflow for photoreal footage."
---

# Manim Animator

Turn an explanation into reproducible Manim source code and a verified video. Draw equations, diagrams, charts, and transitions locally; use SandBase only for generative media that Manim cannot produce itself.

Read [the SandBase API map](references/sandbase-api-map.md) before generating any image or audio asset.

## Route the request

Use Manim when the value comes from exact geometry, mathematical notation, deterministic timing, reproducible diagrams, or a step-by-step conceptual explanation. Prefer another workflow when the main deliverable is:

- photoreal or cinematic generated footage;
- conventional timeline editing of supplied footage;
- a static chart or diagram with no meaningful animation;
- an avatar or talking-head presentation.

Translate named stylistic references into concrete traits such as dark background, minimal palette, hand-drawn-feeling curves, spatial transformations, or deliberate pacing. Do not promise an exact imitation of a creator's identity.

## Preflight

Inspect the current project before creating files:

- determine whether it already uses Manim Community or ManimGL and do not mix their APIs;
- check the installed Python and Manim versions, renderer, FFmpeg, and LaTeX availability;
- preserve the project's existing environment and dependency manager;
- identify output resolution, frame rate, aspect ratio, duration, codec, and caption requirements.

Default to Manim Community for a new project unless the request specifically depends on ManimGL behavior. Do not install system packages, change global environments, or add optional plugins without user authorization. If required tooling is unavailable, return the source and an exact dependency plan instead of claiming a render succeeded.

## Plan scenes

For more than one short idea, create a compact scene plan before coding:

| Field | Record |
|---|---|
| Purpose | Question or idea the scene resolves |
| Duration | Target seconds, or measured narration duration |
| Objects | Equations, labels, shapes, axes, graphs, images, and camera elements |
| State changes | What appears, transforms, moves, highlights, or disappears |
| Explanation | Narration or on-screen text associated with each beat |
| Continuity | Objects and visual state carried into the next scene |
| Technical needs | 2D/3D scene type, LaTeX, updater, plugin, raster asset, or audio |

Keep each scene focused on one conceptual transition. Reuse object instances when continuity matters, and design equations so corresponding terms can transform cleanly.

## Generate optional media through SandBase

Manim code and vector graphics are local work and do not require SandBase. For raster images, narration, music, sound effects, or transcription:

1. Call `sandbase_discover` separately for the needed capability, such as `text to image`, `text to speech`, `text to music`, or `speech to text`.
2. Call `sandbase_inspect` for serious candidates. Confirm language, timing controls, formats, reference-input rules, limits, price, and execution mode.
3. Prefer vector construction over generated raster media when Manim can express the visual precisely.
4. Before any paid call, show the selected endpoint, important arguments, call count, per-call price, and total estimate or uncertainty. Obtain confirmation for the exact call or batch.
5. Use `sandbase_account` before an approved multi-call batch.
6. Call `sandbase_run` with the exact discovered name and only current schema-defined arguments.
7. Poll an asynchronous result with `sandbase_run_get` using the same run ID. Never submit a replacement merely because it is pending.
8. Use `sandbase_runs` only to recover a result or reconcile actual cost.

Generate and save every asset before writing code that references its path. Keep an asset ledger with purpose, file path, SandBase endpoint, run ID, license or provenance, and actual cost when available.

### Narration-first timing

When narration controls the pace:

1. Finalize the narration text per scene.
2. Generate one approved audio clip per scene rather than one monolithic file.
3. Measure each clip with an available local media inspector.
4. Use the measured duration as the scene timing budget.
5. Make the sum of animation `run_time` and waits match that budget through meaningful pacing, not black-frame padding.

Use an inspected transcription capability only when captions or word-level timing are required and the selected schema provides suitable timestamps. Otherwise use scene-level caption timing derived from the narration plan.

## Write maintainable Manim code

- Keep configuration outside scene bodies when the installed Manim version supports project configuration.
- Use named constants for palette, typography, margins, timing, and repeated coordinates.
- Group related objects and use relative placement methods instead of unexplained pixel-like offsets.
- Create axes, labels, and equations with explicit ranges and semantic names.
- Prefer transforms between related states over delete-and-recreate sequences.
- Keep updaters bounded, remove them when no longer needed, and avoid frame-dependent side effects.
- Use camera movement only when it clarifies spatial relationships.
- Ensure text contrast, minimum readable size, safe margins, and enough dwell time.
- Avoid runtime network requests. Resolve external assets before rendering.

For multi-scene output, keep scenes independently renderable and maintain a deterministic source order for final assembly.

## Render and iterate

1. Render every scene at low quality first with caching disabled when stale output is possible.
2. Capture the exit status and a concise error tail per scene.
3. Fix import, API-version, LaTeX, missing-asset, geometry, and timing errors before visual review.
4. Inspect representative frames at the beginning, key transformations, dense layouts, scene boundaries, and ending.
5. Revise overlaps, clipping, illegible text, jerky transforms, excessive motion, and continuity breaks.
6. Stop after three unsuccessful revision loops and return the source, logs, and remaining blocker.
7. After all scenes pass, render at the requested final quality and concatenate or mix audio with local deterministic tooling.

Do not start a costly final render until a low-quality preview has passed technical and visual checks. Do not edit encoded frames by hand to hide a source-level defect.

## Final verification

Check the final container, video and audio codecs, duration, dimensions, frame rate, decodability, audio presence, caption presence, and representative frames. Watch the complete render when the host supports playback. For narrated work, compare each scene's visual duration with its measured clip and check that speech is not cut off.

Return the Manim source, dependency or run command, final video, scene plan, generated-asset ledger with SandBase run IDs and costs, and any known rendering or timing compromises. Do not claim completion if a scene failed, a required asset is missing, or the final file was not checked.

Attribution

sandbaseaisandbaseai
View sourceSee grades on GitHubMore from sandbaseai →
SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments (0)

No comments yet. Be the first to comment!

SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Related Skills

Caveman

Terse caveman voice: answer first, fluff gone, every technical fact kept. Use for /caveman, "caveman mode", "talk like caveman", "be brief", "less tokens". Stays on until "stop caveman" or "normal mode".

1100021 votes

Hyperplan

Adversarial multi-agent planning skill. Self-orchestrates 5 hostile category members (unspecified-low, unspecified-high, deep, ultrabrain, artistry) via team-mode for ruthless cross-critique debate, distills only the defensible insights, then MANDATORILY hands the distilled insight bundle to the `plan` agent for executable plan formalization. Use when planning needs maximum rigor and surfacing of weak assumptions, blind spots, and over-engineering. Triggers: 'hyperplan', 'hpp', '/hyperplan', ...

698621 votes

Writing Skills

Create and manage Claude Code skills in HASH repository following Anthropic best practices. Use when creating new skills, modifying skill-rules.json, understanding trigger patterns, working with hooks, debugging skill activation, or implementing progressive disclosure. Covers skill structure, YAML frontmatter, trigger types (keywords, intent patterns), UserPromptSubmit hook, and the 500-line rule. Includes validation and debugging with SKILL_DEBUG. Examples include rust-error-stack, cargo-dep...

3931 votes

Mcp Code Execution

Routes multi-tool workflows through MCP servers for large datasets and pipelines. Use when Bash tool overhead is limiting throughput on data-heavy tasks.

3421 votes

catchup

Recovers the conversation and failed tool calls of a previous Codex, Amp, Claude Code, Antigravity, Cline, Copilot CLI, Cursor, DeepSeek Harness, Grok Build, Kimi, OpenCode, Pi Agent, or ZCode session. Use when the user says "catch up", "what did the last session do", "get me up to speed", "I switched agents", asks to recover/summarize a previous session before continuing, or asks to diagnose or report a catchup failure. Do NOT use for the current conversation, git history, or any non-agent log.

741 votes
View all in ai-agents →