|
1 | | -# EfficientManim |
2 | | - |
3 | | -EfficientManim is a node-based Manim editor that helps you build mathematical animations visually, preview quickly, and export clean Python code. |
4 | | - |
5 | | -## Highlights |
6 | | -- Visual graph editor for Mobjects and Animations |
7 | | -- Live preview rendering for quick iteration |
8 | | -- Video render pipeline with quality presets |
9 | | -- Gemini-powered helpers for code generation and voiceover |
10 | | - |
11 | | -## Quick Start |
12 | | -1. Install dependencies: |
13 | | - ```bash |
14 | | - pip install -r requirements.txt |
15 | | - ``` |
16 | | -2. Run the app: |
17 | | - ```bash |
18 | | - python main.py |
19 | | - ``` |
20 | | - |
21 | | -## Documentation |
22 | | -See `docs/README.md` for architecture, workflow, and developer guidance. |
| 1 | +# 🌿 EfficientManim — The Ultimate Node-Based Manim IDE |
| 2 | + |
| 3 | + |
| 4 | + |
| 5 | +**🌈 Create mathematical animations visually with the power of Python, AI, and Production-Grade Type Safety.** |
| 6 | + |
| 7 | +--- |
| 8 | + |
| 9 | +## 🚀 Key Features |
| 10 | + |
| 11 | +### 🎬 Node-Based Visual Workflow |
| 12 | +- **Visual Editor:** Drag-and-drop Mobjects and Animations with intuitive wiring |
| 13 | +- **Infinite Canvas:** Pan and zoom freely to manage large node graphs |
| 14 | +- **Live Preview:** Real-time static previews of individual nodes |
| 15 | +- **Smart Connections:** Automatic wire validation and scene synchronization |
| 16 | + |
| 17 | +### 🎯 Tooltips |
| 18 | + |
| 19 | +* Every button, panel, and action now includes a clear tooltip |
| 20 | +* Instantly understand what anything does without searching the documentation |
| 21 | +* Faster navigation, fewer mistakes, and a smoother workflow |
| 22 | +* The interface becomes self-explanatory, even for first-time users |
| 23 | + |
| 24 | +This makes the app easier to learn, faster to use, and far more intuitive overall. |
| 25 | + |
| 26 | +### 🎬 Multiple Scenes |
| 27 | +- Manage multiple scenes per project in the **Scenes** tab |
| 28 | +- Create, rename, delete, and switch between scenes — each with its own node graph |
| 29 | +- Scene state auto-saved and restored when switching |
| 30 | + |
| 31 | +### 📦 VGroup Utility |
| 32 | +- Select Mobject nodes → click **Create VGroup** in the **VGroups** tab |
| 33 | +- VGroup code automatically generated: `group_1 = VGroup(circle_1, square_1)` |
| 34 | +- Groups shown in expandable tree view |
| 35 | + |
| 36 | +### 🤖 Gemini AI Code Generation |
| 37 | +- Describe animations in plain English — AI generates Manim code |
| 38 | +- AI code parsed into editable nodes with correct wiring |
| 39 | +- Streaming responses with real-time feedback |
| 40 | + |
| 41 | +### 🎙️ AI-Powered Voiceover Studio |
| 42 | +- Gemini TTS Integration with multi-voice support (Zephyr, Puck, Fenrir, etc.) |
| 43 | +- Auto-sync animation duration to audio length |
| 44 | + |
| 45 | +### 🐙 GitHub Snippet Loader |
| 46 | +- Clone any GitHub repository into `~/.efficientmanim/snippets/` |
| 47 | +- Browse `.py` files; double-click to load into AI panel as snippet |
| 48 | +- All cloned repos automatically repopulated on startup |
| 49 | + |
| 50 | +### ⭐ Recents Panel |
| 51 | +- Top-5 most-used Mobjects + top-5 most-used Animations tracked per session |
| 52 | +- Persisted to `~/.efficientmanim/usage.json` |
| 53 | +- Double-click to instantly add to canvas |
| 54 | + |
| 55 | +### ⌨️ Editable Keybindings |
| 56 | +- **Help → Edit Keybindings…** opens the keybindings editor |
| 57 | +- Double-click any shortcut to change it |
| 58 | +- Duplicate detection; changes persisted to QSettings |
| 59 | + |
| 60 | +### 📁 Editable Project Name |
| 61 | +- Project name textbox in the top-right corner of the window |
| 62 | +- Rename your `.efp` file without leaving the editor |
| 63 | + |
| 64 | +### 📦 Portable Project Format (.efp) |
| 65 | +- Bundled images, sounds, and videos included |
| 66 | +- ZIP-based, cross-platform, easy to share |
| 67 | + |
| 68 | +### 🌓 Dark / Light Themes |
| 69 | +- Full dark mode with no white bleed-through |
| 70 | +- Switch via the theme button in the corner or Settings |
| 71 | +- QSS-based styling with ColorToken system |
| 72 | + |
| 73 | +### 🎨 Manim Class Browser |
| 74 | +- 60+ Manim classes in 8 categories (Geometry, Text, Graphs, 3D, Animations, etc.) |
| 75 | +- Search bar filters in real-time |
| 76 | +- Double-click or drag to add node to canvas |
| 77 | + |
| 78 | +### 🎬 Professional Video Rendering |
| 79 | +- Full scene export to MP4/WebM |
| 80 | +- Up to 4K resolution, 15–60 FPS, quality presets |
| 81 | + |
| 82 | +--- |
| 83 | + |
| 84 | +## ✨ For more information |
| 85 | + |
| 86 | +See [here](docs/README.md) |
| 87 | + |
| 88 | +--- |
| 89 | + |
| 90 | +## 🏠 Start |
| 91 | + |
| 92 | +Run `python main.py` to open home screen and open the editor directly. |
| 93 | + |
| 94 | +--- |
| 95 | + |
| 96 | +## ⌨️ Keyboard Shortcuts |
| 97 | + |
| 98 | +| Action | Shortcut | |
| 99 | +|--------|----------| |
| 100 | +| New Project | `Ctrl+N` | |
| 101 | +| Open Project | `Ctrl+O` | |
| 102 | +| Save Project | `Ctrl+S` | |
| 103 | +| Save As | `Ctrl+Shift+S` | |
| 104 | +| Exit | `Ctrl+Q` | |
| 105 | +| Undo | `Ctrl+Z` | |
| 106 | +| Redo | `Ctrl+Y` | |
| 107 | +| Delete Selected | `Del` | |
| 108 | +| Fit View | `Ctrl+0` | |
| 109 | +| Auto-Layout | `Ctrl+L` | |
| 110 | +| Export Code | `Ctrl+E` | |
| 111 | +| Copy Code | `Ctrl+Shift+C` | |
| 112 | +| Toggle Theme | `Ctrl+T` | |
| 113 | +| Edit Keybindings | `Ctrl+,` | |
| 114 | + |
| 115 | +All shortcuts are editable via **Help → Edit Keybindings…** |
| 116 | + |
| 117 | +--- |
| 118 | + |
| 119 | +## 🛠️ Prerequisites |
| 120 | + |
| 121 | +1. **Python 3.10+** |
| 122 | +2. **FFmpeg** — for video rendering (must be in PATH) |
| 123 | +3. **Git** — optional, for GitHub Snippet Loader |
| 124 | +4. **LaTeX** — optional, for local LaTeX rendering |
| 125 | + |
| 126 | +## 📦 Installation |
| 127 | + |
| 128 | +```bash |
| 129 | +git clone https://github.com/pro-grammer-SD/EfficientManim.git |
| 130 | +cd EfficientManim |
| 131 | +pip install -r requirements.txt |
| 132 | +python main.py |
| 133 | +``` |
| 134 | + |
| 135 | +Manual install: |
| 136 | +```bash |
| 137 | +pip install manim PySide6 google-genai pydub requests numpy |
| 138 | +``` |
| 139 | + |
| 140 | +--- |
| 141 | + |
| 142 | +## 📸 Gallery |
| 143 | + |
| 144 | +### Overview & Setup |
| 145 | + |
| 146 | + |
| 147 | +Launch the application and initialize the workspace. |
| 148 | + |
| 149 | + |
| 150 | +Start with a clean node canvas, ready for composition and design. |
| 151 | + |
| 152 | + |
| 153 | +Quickly access recently opened projects and elements from the Recents panel. |
| 154 | + |
| 155 | +--- |
| 156 | + |
| 157 | +### Customization & Rendering |
| 158 | + |
| 159 | + |
| 160 | +Manipulate nodes interactively to refine workflows and structures. |
| 161 | + |
| 162 | + |
| 163 | +Use the search tool to locate elements and components efficiently. |
| 164 | + |
| 165 | + |
| 166 | +Access GitHub snippets directly for rapid code reuse and integration. |
| 167 | + |
| 168 | +--- |
| 169 | + |
| 170 | +### Features in Action |
| 171 | + |
| 172 | + |
| 173 | +Select a snippet from GitHub to integrate seamlessly into your project. |
| 174 | + |
| 175 | + |
| 176 | +Load and insert external code dynamically into the workspace. |
| 177 | + |
| 178 | + |
| 179 | +Preview your work instantly for faster iteration and verification. |
| 180 | + |
| 181 | + |
| 182 | +View the resulting output, demonstrating final rendering in the node canvas. |
| 183 | + |
| 184 | +--- |
| 185 | + |
| 186 | +Made with lots of ❤️💚💙 by Soumalya a.k.a. @pro-grammer-SD |
| 187 | + |
| 188 | +Discussions: https://www.reddit.com/r/manim/comments/1qck0ji/i_built_a_nodebased_manim_ide_with_ai_assistance/ |
0 commit comments