programmersd21
EfficientManim
Python

๐Ÿš€๐ŸŽฌ Node-based Manim IDE with AI-powered animation generation

Last updated Aug 9, 2026
27
Stars
1
Forks
0
Issues
+1
Stars/day
Attention Score
36
Language breakdown
Python 99.8%
PowerShell 0.2%
โ–ธ Files click to expand
README

๐ŸŒฟ EfficientManim

EfficientManim Icon

Python IdeaCred Manim MIT License Reddit

โœจ๐ŸŒฟ A node-based visual IDE for mathematical animations โ€” with AI tooling, a structured history system, and a built-in explanation engine for students and teachers. ๐ŸŽŠ๐ŸŽฏ


โœจ What It Is

EfficientManim turns Manim from a code-only tool into a visual, AI-augmented workspace. Wire Mobjects and animations together on an infinite canvas, generate scenes from plain English or PDF slides, and get structured explanations for every move โ€” all without leaving the editor.


๐Ÿš€ Features

๐ŸŽฌ Node-Based Visual Workflow

Drag-and-drop Mobjects and Animations onto an infinite canvas, connect them with smart wires, and watch your scene graph come alive. Wire validation runs automatically, and live static previews update as you build.

  • 60+ Manim classes across 8 categories (Geometry, Text, Graphs, 3D, Animationsโ€ฆ), searchable in real time via the Manim Class Browser
  • Multiple Scenes per project โ€” create, rename, delete, and switch between them in the Scenes tab; each scene carries its own node graph and auto-saves state on switch
  • VGroup Utility โ€” select Mobject nodes โ†’ click Create VGroup โ†’ get auto-generated VGroup(...) code displayed in an expandable tree
  • Recents Panel โ€” top-5 Mobjects and top-5 Animations tracked per session, persisted to ~/.efficientmanim/usage.json; double-click to add instantly

๐Ÿค– AI Features

Prompt โ†’ Manim

Describe an animation in plain English. Get runnable Manim code.

๐Ÿ“„ PDF Slide Animation

Upload one or more PDFs. The AI parses each slide, builds an animation plan, and produces both Manim code and a ready-to-edit node graph โ€” turning a static lecture deck into a structured animated scene.

๐ŸŽ™๏ธ AI Voiceover Studio

TTS generation with multi-voice support and automatic duration syncing to animation timing.

๐Ÿ™ GitHub Snippet Loader

Clone any GitHub repo into ~/.efficientmanim/snippets/, browse .py files, and double-click to load a snippet directly into the AI panel. All repos repopulate on startup automatically.

๐Ÿง  Explain This Animation

Select a scene, a group of nodes, or a single animation โ€” then hit ๐Ÿง  Explain in the main toolbar. The system produces a clear, student-friendly explanation of what the animation is doing and why.

| Mode | What You Get | |------|-------------| | Simple | Short, intuition-first summary | | Detailed | Full step breakdown with conceptual reasoning |

Copy or regenerate instantly from the Explain Panel. Explanations can also be triggered programmatically via MCP (explain.scene, explain.selected_nodes).


๐ŸŽ“ Learning Mode

Learning Mode watches what you build and fires micro-explanations as you go โ€” turning the editor into a live tutor.

Triggers automatically when you:

  • Add axes, graphs, or equations
  • Apply transformations
  • Attach tangent lines, slopes, or area visuals
  • Hit a checkpoint or land a large batch addition
Default: OFF (to keep the workspace quiet for experienced users). Enable: Settings โ†’ Learning Mode โ†’ Enable Learning Mode.


๐Ÿ‘ฉ๐Ÿซ Teacher Mode

Generate a full structured lesson from the current scene in one click.

Output includes:

  • Concept explanation
  • Visual explanation tied to the animation
  • Step-by-step teaching script
  • Student-friendly notes
  • Key takeaways
Export as: Markdown (.md), plain text (.txt), or copy to clipboard. Enable: Settings โ†’ Teacher Mode โ†’ Enable Teacher Mode.


๐Ÿ•ฐ๏ธ History-Powered Explanations

The rewritten HistoryManager captures grouped atomic operations โ€” AI merges, property edits, motion, wiring โ€” with per-node undo/redo stacks and project/scene/node checkpoints.

The explanation engine hooks directly into history:

  • Explain a checkpoint state โ€” what did the scene look like at this moment?
  • Explain a diff โ€” what changed between two checkpoints?
  • Explain an undo/redo action โ€” in plain student language, not code
See docs/history_system.md for the full data model and checkpoint API.


๐Ÿงญ MCP Command Interface

Every action in EfficientManim โ€” node edits, wires, VGroups, scenes, rendering, assets, AI workflows, themes, keybindings, TTS, explanations, Learning Mode, Teacher Mode โ€” is scriptable via structured JSON through the MCP command layer.

// Example
{ "command": "explain.scene", "mode": "detailed" }
{ "command": "teachermode.generatelesson", "export": "markdown" }
{ "command": "history.restorecheckpoint", "id": "chk42" }

Full reference in docs/mcp_commands.md.


๐ŸŽจ Workspace & Polish

| Feature | Detail | |---------|--------| | Dark / Light Themes | Full dark mode, QSS-based with a ColorToken system, toggled via Ctrl+T or Settings | | Tooltips Everywhere | Every button, panel, and action has a tooltip โ€” the UI is self-explanatory | | Editable Keybindings | Help โ†’ Edit Keybindingsโ€ฆ Double-click any shortcut to rebind; duplicate detection included | | Editable Project Name | Rename the .efp file from a textbox in the top-right corner โ€” no file manager required | | Portable .efp Format | ZIP-based project bundle: nodes, wires, images, sounds, and video assets in one file | | Professional Rendering | Full scene export to MP4/WebM โ€” up to 4K, 15โ€“60 FPS, multiple quality presets |


โŒจ๏ธ Keyboard Shortcuts

| Action | Shortcut | |--------|----------| | New Project | Ctrl+N | | Open Project | Ctrl+O | | Save Project | Ctrl+S | | Save As | Ctrl+Shift+S | | Exit | Ctrl+Q | | Undo | Ctrl+Z | | Redo | Ctrl+Y | | Delete Selected | Del | | Fit View | Ctrl+0 | | Auto-Layout | Ctrl+L | | Export Code | Ctrl+E | | Copy Code | Ctrl+Shift+C | | Toggle Theme | Ctrl+T | | Edit Keybindings | Ctrl+, |

All shortcuts are fully editable via Help โ†’ Edit Keybindingsโ€ฆ


๐Ÿ› ๏ธ Prerequisites

  • Python 3.10+
  • FFmpeg โ€” required for video rendering (must be in PATH)
  • Git โ€” optional, for the GitHub Snippet Loader
  • LaTeX โ€” optional, for local LaTeX rendering

๐Ÿ“ฆ Installation

git clone https://github.com/programmersd21/EfficientManim.git
cd EfficientManim
pip install -r requirements.txt
python main.py

Manual install:

pip install manim PySide6 google-genai pydub requests numpy pdfplumber regex

๐Ÿ“ธ Gallery

| | | |---|---| | Starting up | Blank node canvas | | Launch and initialize the workspace | A clean canvas ready for composition | | Recents Menu | Tinkering with Nodes | | Recents panel โ€” jump back in fast | Manipulate nodes interactively | | Searching for elements | GitHub snippets panel | | Real-time element search | GitHub snippets at your fingertips | | Selecting a GitHub snippet | Loading the snippet | | Selecting a snippet from a cloned repo | Loading external code into the workspace | | Quickly previewing | Rendered output | | Instant preview for fast iteration | Final rendered output in the node canvas |


๐Ÿ“š Documentation

| File | Contents | |------|----------| | docs/explain_system.md | Explain Panel architecture and extension guide | | docs/history_system.md | History data model, checkpoint API, and history-powered explanations | | docs/mcp_commands.md | Full MCP command reference โ€” every command, payload, and sample response | | docs/README.md | Architectural overview, project structure, and design decisions |


๐Ÿ’ฌ Community

Discuss the project on Reddit: r/manim โ€” I built a node-based Manim IDE with AI assistance


Made with โค๏ธ๐Ÿ’š๐Ÿ’™ by Soumalya ยท @programmersd21

๐Ÿ”— More in this category

ยฉ 2026 GitRepoTrend ยท programmersd21/EfficientManim ยท Updated daily from GitHub