Skip to content

Commit 8d65f56

Browse files
Update README.md to enhance feature descriptions and improve project structure
1 parent c3db187 commit 8d65f56

1 file changed

Lines changed: 114 additions & 55 deletions

File tree

README.md

Lines changed: 114 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -1,82 +1,141 @@
1-
# EfficientManim v2.0.1
1+
# 🌿 EfficientManim — The Ultimate Node-Based Manim IDE
22

3-
A visual, node-based Manim IDE with AI-powered code generation via Google Gemini.
3+
![Icon](icon/icon.ico)
44

5-
---
6-
7-
## Features
8-
9-
- **Node Graph Canvas** — Visually compose Manim scenes by connecting Mobject and Animation nodes
10-
- **AI Code Generation** — Generate Manim code from natural language prompts using Gemini AI
11-
- **Live Mobject Preview** — Automatically renders a PNG preview when you select and modify a node
12-
- **Video Rendering** — Render full scenes to MP4/WebM via Manim with one click
13-
- **Manim Class Browser** — Searchable palette of all built-in Manim classes
14-
- **Code Snippet Library** — Load reusable templates directly into the editor
15-
- **GitHub Snippets** — Clone and browse `.py` files from any GitHub repository
16-
- **LaTeX Studio** — Live LaTeX preview with API-based rendering
17-
- **AI Voiceover (TTS)** — Generate narration audio via Gemini TTS and sync it to animation nodes
18-
- **VGroups** — Group Mobjects visually; VGroup code is auto-generated
19-
- **Usage Tracking** — Recents pane shows your most-used Mobjects and Animations
20-
- **Custom Keybindings** — Every action is remappable
5+
**🌈 Create mathematical animations visually with the power of Python, AI, and Production-Grade Type Safety.**
216

227
---
238

24-
## Requirements
25-
26-
- Python 3.10+
27-
- [Manim Community Edition](https://www.manim.community/)
28-
- PySide6
29-
- `google-genai` (for AI features)
30-
- `pydub` (optional, for audio duration sync)
31-
32-
Install dependencies:
33-
34-
```bash
35-
pip install manim PySide6 google-genai pydub
36-
```
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+
### 🎬 Multiple Scenes
18+
- Manage multiple scenes per project in the **Scenes** tab
19+
- Create, rename, delete, and switch between scenes — each with its own node graph
20+
- Scene state auto-saved and restored when switching
21+
22+
### 📦 VGroup Utility
23+
- Select Mobject nodes → click **Create VGroup** in the **VGroups** tab
24+
- VGroup code automatically generated: `group_1 = VGroup(circle_1, square_1)`
25+
- Groups shown in expandable tree view
26+
27+
### 🤖 Gemini AI Code Generation
28+
- Describe animations in plain English — AI generates Manim code
29+
- AI code parsed into editable nodes with correct wiring
30+
- Streaming responses with real-time feedback
31+
32+
### 🎙️ AI-Powered Voiceover Studio
33+
- Gemini TTS Integration with multi-voice support (Zephyr, Puck, Fenrir, etc.)
34+
- Auto-sync animation duration to audio length
35+
36+
### 🐙 GitHub Snippet Loader
37+
- Clone any GitHub repository into `~/.efficientmanim/snippets/`
38+
- Browse `.py` files; double-click to load into AI panel as snippet
39+
- All cloned repos automatically repopulated on startup
40+
41+
### ⭐ Recents Panel
42+
- Top-5 most-used Mobjects + top-5 most-used Animations tracked per session
43+
- Persisted to `~/.efficientmanim/usage.json`
44+
- Double-click to instantly add to canvas
45+
46+
### ⌨️ Editable Keybindings
47+
- **Help → Edit Keybindings…** opens the keybindings editor
48+
- Double-click any shortcut to change it
49+
- Duplicate detection; changes persisted to QSettings
50+
51+
### 📁 Editable Project Name
52+
- Project name textbox in the top-right corner of the window
53+
- Rename your `.efp` file without leaving the editor
54+
55+
### 📦 Portable Project Format (.efp)
56+
- Bundled images, sounds, and videos included
57+
- ZIP-based, cross-platform, easy to share
58+
59+
### 🌓 Dark / Light Themes
60+
- Full dark mode with no white bleed-through
61+
- Switch via the theme button in the corner or Settings
62+
- QSS-based styling with ColorToken system
63+
64+
### 🎨 Manim Class Browser
65+
- 60+ Manim classes in 8 categories (Geometry, Text, Graphs, 3D, Animations, etc.)
66+
- Search bar filters in real-time
67+
- Double-click or drag to add node to canvas
68+
69+
### 🎬 Professional Video Rendering
70+
- Full scene export to MP4/WebM
71+
- Up to 4K resolution, 15–60 FPS, quality presets
3772

3873
---
3974

40-
## Running the Application
75+
## 🏠 Home Screen
4176

42-
```bash
43-
# Launch home screen
44-
python home.py
45-
46-
# Or launch the editor directly
47-
python main.py
48-
```
77+
Run `python home.py` to see the home screen with recent projects.
78+
Run `python main.py` to skip the home screen and open the editor directly.
4979

5080
---
5181

52-
## AI Configuration
53-
54-
1. Go to **File → Settings**
55-
2. Enter your **Google Gemini API Key**
56-
3. Select the desired code generation and TTS models
82+
## ⌨️ Keyboard Shortcuts
83+
84+
| Action | Shortcut |
85+
|--------|----------|
86+
| New Project | `Ctrl+N` |
87+
| Open Project | `Ctrl+O` |
88+
| Save Project | `Ctrl+S` |
89+
| Save As | `Ctrl+Shift+S` |
90+
| Exit | `Ctrl+Q` |
91+
| Undo | `Ctrl+Z` |
92+
| Redo | `Ctrl+Y` |
93+
| Delete Selected | `Del` |
94+
| Fit View | `Ctrl+0` |
95+
| Auto-Layout | `Ctrl+L` |
96+
| Export Code | `Ctrl+E` |
97+
| Copy Code | `Ctrl+Shift+C` |
98+
| Toggle Theme | `Ctrl+T` |
99+
| Edit Keybindings | `Ctrl+,` |
100+
101+
All shortcuts are editable via **Help → Edit Keybindings…**
57102

58103
---
59104

60-
## Rendering
105+
## 🛠️ Prerequisites
61106

62-
Any valid Manim `Scene` subclass renders correctly. The renderer dynamically detects the scene class in generated code — **no forced renaming, no hidden rewriting**.
107+
1. **Python 3.10+**
108+
2. **FFmpeg** — for video rendering (must be in PATH)
109+
3. **Git** — optional, for GitHub Snippet Loader
110+
4. **LaTeX** — optional, for local LaTeX rendering
63111

64-
When you export code to `.py`, the class name is preserved exactly as defined. When rendering via the Video panel, the correct class is detected and rendered transparently.
65-
66-
---
112+
## 📦 Installation
67113

68-
## Project Files
114+
```bash
115+
git clone https://github.com/pro-grammer-SD/EfficientManim.git
116+
cd EfficientManim
117+
pip install -r requirements.txt
118+
python home.py # Full experience with home screen
119+
# or
120+
python main.py # Open editor directly
121+
```
69122

70-
Projects are saved as `.efp` files (ZIP archives containing graph data, assets, and code).
123+
Manual install:
124+
```bash
125+
pip install manim PySide6 google-genai pydub requests numpy
126+
```
71127

72128
---
73129

74-
## Themes
130+
## 📸 Screenshots
75131

76-
EfficientManim uses a clean **light mode** design. No theme switching; one consistent, professional interface.
132+
![Starting up](gallery/1.png)
133+
![Inserting elements](gallery/2.png)
134+
![Customizing animations](gallery/3.png)
135+
![Rendered output](gallery/4.png)
77136

78137
---
79138

80-
## License
139+
Made with lots of ❤️💚💙 by Soumalya a.k.a. @pro-grammer-SD
81140

82-
© 2026 Soumalya Das (@pro-grammer-SD)
141+
Discussions: https://www.reddit.com/r/manim/comments/1qck0ji/i_built_a_nodebased_manim_ide_with_ai_assistance/

0 commit comments

Comments
 (0)