Date: February 28, 2026
- This release removes architectural hacks and replaces them with honest, transparent behavior.
- P.S. added 2nd admin acc. @b-cubed-3 YAYYYYYYYY!!!!!!!!!!!!!!
The Geist custom font has been completely removed.
- All
QFontDatabasefont-loading logic removed - All Geist font references removed from codebase
- All fallback checks and font utility helpers removed
utils.pycleaned; no font-loading logs remain- Application uses the system default font cleanly via
QFont()with point size 10 - No font warnings; no residual references
The Scenes tab has been fully removed from the UI.
MultiSceneManagerPanelno longer mounted as a tab- All signal connections (
scene_switched,scene_added,scene_deleted) disconnected from the main window - Tab entry
"🎬 Scenes"removed fromQTabWidget - No dead imports; no dangling signal handlers in the active UI path
- Application runs cleanly without the Scenes tab
Previously, the graph compiler hardcoded all generated code to use:
class EfficientScene(Scene):This silently renamed every AI-generated or user-defined class to EfficientScene, which was a trust violation.
Now, the compiler generates a neutral class name:
class GeneratedScene(Scene):And the video renderer uses detect_scene_class() to dynamically identify the actual scene class in any code — whether AI-generated or user-written.
Behavior now:
- Any class inheriting from
Scenerenders correctly - AI-generated class names (e.g.,
PythagoreanTheorem,MyScene) are never renamed - No injected wrapper classes
- No hidden code mutation before rendering
- Rendering is transparent and deterministic
The VideoRenderWorker now:
- Accepts
scene_classas an explicit parameter - Passes the detected class name directly to the Manim CLI
- Never assumes
EfficientSceneor any fixed name
The detect_scene_class(code) function scans for class X(Scene): patterns and returns the actual class name, falling back to "Scene" only if none is found.
- Removed broken
self.theme.currentText()reference (widget was never created) - Settings dialog now saves cleanly without attempting theme switching
- Light-mode-only mode confirmed stable
- Removed undefined
ThemeModetype annotation from_on_theme_changed() - Theme change handler signature cleaned up to be safe and forward-compatible
All built-in snippet templates updated:
class EfficientScene(Scene)→class MyScene(Scene)in all SnippetLibrary entries- Templates are now neutral and don't impose a naming convention on users
Initial production release including:
- Node graph canvas with visual wiring
- AI code generation via Google Gemini
- Live Mobject preview rendering
- Video export to MP4/WebM
- Manim class browser
- Code snippet library
- GitHub snippet loader
- LaTeX live preview
- AI voiceover (TTS) with node sync
- VGroup creation and code generation
- Usage tracking and Recents pane
- Custom keybindings
- Light mode design system
- A new MCP system (mcp.py for source code)