AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
SKILL verified MIT Self-run

Manimgl Best Practices

skill-adithya-s-k-manim-skill-manimgl-best-practices · by adithya-s-k

|

— No reviews yet
0 installs
20 views
0.0% view→install

Install

$ agentstack add skill-adithya-s-k-manim-skill-manimgl-best-practices

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • ✓ Prompt-injection patterns
  • ✓ Secret / credential exfiltration
  • ✓ Dangerous shell & filesystem operations
  • ✓ Untrusted network calls
  • ✓ Known-malicious package signatures

What it can access

  • ✓ Network access No
  • ✓ Filesystem access No
  • ✓ Shell / process execution No
  • ✓ Environment & secrets No
  • ✓ Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/skill-adithya-s-k-manim-skill-manimgl-best-practices)

Reliability & compatibility

✓ Security review passed
0 installs to date
— no reviews yet
○ 8mo ago

Declared compatibility

Claude CodeClaude Desktop

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of Manimgl Best Practices? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

How to use

Read individual rule files for detailed explanations and code examples:

Core Concepts

  • [rules/scenes.md](rules/scenes.md) - InteractiveScene, Scene types, and construct method
  • [rules/mobjects.md](rules/mobjects.md) - Mobject types, VMobject, Groups, and positioning
  • [rules/animations.md](rules/animations.md) - Animation classes, playing animations, and timing

Creation & Transformation

  • [rules/creation-animations.md](rules/creation-animations.md) - ShowCreation, Write, FadeIn, DrawBorderThenFill
  • [rules/transform-animations.md](rules/transform-animations.md) - Transform, ReplacementTransform, TransformMatchingTex
  • [rules/animation-groups.md](rules/animation-groups.md) - LaggedStart, Succession, AnimationGroup

Text & Math

  • [rules/tex.md](rules/tex.md) - Tex class, raw strings R"...", and LaTeX rendering
  • [rules/text.md](rules/text.md) - Text mobjects, fonts, and styling
  • [rules/t2c.md](rules/t2c.md) - textocolor_map (t2c) for coloring math expressions

Styling & Appearance

  • [rules/colors.md](rules/colors.md) - Color constants, gradients, RGB, hex, GLSL coloring
  • [rules/styling.md](rules/styling.md) - Fill, stroke, opacity, backstroke, gloss, shadow

3D & Camera

  • [rules/3d.md](rules/3d.md) - 3D objects, surfaces, Sphere, Torus, parametric surfaces, lighting
  • [rules/camera.md](rules/camera.md) - frame.reorient(), Euler angles, fixinframe(), camera animations

Interactive Development

  • [rules/interactive.md](rules/interactive.md) - Interactive mode with -se flag, checkpoint_paste()
  • [rules/frame.md](rules/frame.md) - self.frame, camera control, reorient, and zooming
  • [rules/embedding.md](rules/embedding.md) - self.embed() for IPython debugging, touch() mode

Configuration & CLI

  • [rules/cli.md](rules/cli.md) - manimgl command, flags (-w, -o, -se, -l, -h), rendering options
  • [rules/config.md](rules/config.md) - custom_config.yml, directories, camera settings, quality presets

Working Examples

Complete, tested example files demonstrating common patterns:

  • [examples/basicanimations.py](examples/basicanimations.py) - Basic shapes, text, and animations
  • [examples/mathvisualization.py](examples/mathvisualization.py) - LaTeX equations and mathematical content
  • [examples/graphplotting.py](examples/graphplotting.py) - Axes, functions, and graphing
  • [examples/3dvisualization.py](examples/3dvisualization.py) - 3D scenes with camera control and surfaces
  • [examples/updaterpatterns.py](examples/updaterpatterns.py) - Dynamic animations with updaters

Scene Templates

Copy and modify these templates to start new projects:

  • [templates/basicscene.py](templates/basicscene.py) - Standard 2D scene template
  • [templates/interactivescene.py](templates/interactivescene.py) - InteractiveScene with self.embed()
  • [templates/3dscene.py](templates/3dscene.py) - 3D scene with frame.reorient()
  • [templates/mathscene.py](templates/mathscene.py) - Mathematical derivations and equations

Quick Reference

Basic Scene Structure

from manimlib import *

class MyScene(InteractiveScene):
    def construct(self):
        # Create mobjects
        circle = Circle()

        # Add to scene (static)
        self.add(circle)

        # Or animate
        self.play(ShowCreation(circle))  # Note: ShowCreation, not Create

        # Wait
        self.wait(1)

Render Command

# Render and preview
manimgl scene.py MyScene

# Interactive mode - drop into shell at line 15
manimgl scene.py MyScene -se 15

# Write to file
manimgl scene.py MyScene -w

# Low quality for testing
manimgl scene.py MyScene -l

Key Differences from ManimCE

| Feature | ManimGL (3b1b) | Manim Community | |---------|----------------|-----------------| | Import | from manimlib import * | from manim import * | | CLI | manimgl | manim | | Math text | Tex(R"\pi") | MathTex(r"\pi") | | Scene | InteractiveScene | Scene | | Create anim | ShowCreation | Create | | Camera | self.frame | self.camera.frame | | Fix in frame | mob.fix_in_frame() | self.add_fixed_in_frame_mobjects(mob) | | Package | manimgl (PyPI) | manim (PyPI) |

Interactive Development Workflow

ManimGL's killer feature is interactive development:

# Start at line 20 with state preserved
manimgl scene.py MyScene -se 20

In interactive mode:

# Copy code to clipboard, then run:
checkpoint_paste()           # Run with animations
checkpoint_paste(skip=True)  # Run instantly (no animations)
checkpoint_paste(record=True) # Record while running

Camera Control (self.frame)

# Get the camera frame
frame = self.frame

# Reorient in 3D (phi, theta, gamma, center, height)
frame.reorient(45, -30, 0, ORIGIN, 8)

# Animate camera movement
self.play(frame.animate.reorient(60, -45, 0))

# Fix mobjects to stay in screen space during 3D movement
title.fix_in_frame()

LaTeX with Tex class

# Use raw strings with capital R
formula = Tex(R"\int_0^1 x^2 \, dx = \frac{1}{3}")

# Color mapping with t2c
equation = Tex(
    R"E = mc^2",
    t2c={"E": BLUE, "m": GREEN, "c": YELLOW}
)

# Isolate substrings for animation
formula = Tex(R"\sum_{n=1}^{\infty} \frac{1}{n^2} = \frac{\pi^2}{6}")
formula.set_color_by_tex("n", BLUE)

Common Patterns

Embedding for debugging
def construct(self):
    circle = Circle()
    self.play(ShowCreation(circle))
    self.embed()  # Drops into IPython shell here
Set floor plane for 3D
self.set_floor_plane("xz")  # Makes xy the viewing plane
Backstroke for text readability
text = Text("Label")
text.set_backstroke(BLACK, 5)  # Black outline behind text

Installation

# Install ManimGL
pip install manimgl

# Check installation
manimgl --version

Common Pitfalls to Avoid

  1. Version confusion - Ensure you're using manimgl, not manim (community version)
  2. ShowCreation vs Create - ManimGL uses ShowCreation, not Create
  3. Tex vs MathTex - ManimGL uses Tex with capital R raw strings
  4. self.frame vs self.camera.frame - ManimGL uses self.frame directly
  5. fixinframe() - Call on the mobject, not the scene
  6. Interactive mode - Use -se flag for interactive development

License & Attribution

This skill contains example code adapted from 3Blue1Brown's video repository by Grant Sanderson.

License: CC BY-NC-SA 4.0

  • Attribution required - Credit both 3Blue1Brown and the adapter
  • NonCommercial - Not for commercial use
  • ShareAlike - Derivatives must use the same license

See [LICENSE.txt](LICENSE.txt) for full details.

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.