app/
main.py Entry point (creates app + home screen)
app_window.py Creates the main editor window
startup.py App bootstrapping (logging, icons, styles, hooks)
ui/
main_window.py Main editor window implementation
home.py Home screen (new/open/recent/docs/example)
toolbar.py Quick export toolbar
menus.py Menu bar builder
dialogs.py Settings and shortcuts dialogs
ai_pdf_upload_widget.py PDF attachment UI for the AI Assistant tab
panels/
node_panel.py Node, AI, assets, voiceover, outliner panels
render_panel.py Render + output panels
settings_panel.py Settings form widget
graph/
graph_editor.py Graph scene/view and connection rules
node.py Node data model + node graphics
edge.py Wire graphics
layout.py Auto-layout helpers
node_factory.py Node creation helpers
ai_slides_to_nodes.py Slide plan to node graph conversion
rendering/
render_manager.py Worker threads for preview + video render
preview.py Preview helpers
export.py Export helpers
core/
project_manager.py Project lifecycle coordinator
file_manager.py Recents + asset management
history_manager.py Undo/redo stack
config.py App config + settings
ai_slides_to_manim.py Slide plan to Manim scene generator
utils/
shortcuts.py Keybinding helpers
tooltips.py Consistent tooltip builder
helpers.py Parsing + AI helpers
logger.py Application logging
ai_pdf_attachment_manager.py PDF attachment state
ai_pdf_parser.py PDF text and structure extraction
ai_context_builder.py Structured AI context builder
ai_slide_animator.py AI JSON slide/animation planner
main.pycallsapp.main.main().app.startup.create_application()configures logging, icons, Qt rules, and exception hooks.- The home screen is shown first. Selecting an action opens the main editor window.
- The editor window is created by
app.app_window.create_main_window().
ui/home.py provides the home screen UI with:
- New and Open project actions
- Recent projects list
- Documentation button
- Example project button
- Getting Started guidance
The graph system is defined in graph/:
node.pycontainsNodeDataandNodeItem(visual node).edge.pycontainsWireItem(connection).graph_editor.pyprovidesGraphSceneandGraphViewplus validation rules.node_factory.pycentralizes node creation.layout.pyprovides auto-layout helpers used by the main window.
Rendering is handled in rendering/:
render_manager.pyincludes preview and video render worker threads.preview.pyprovides lightweight preview helpers.export.pycontains code export helpers.ui/panels/render_panel.pyprovides the UI to control rendering and preview playback.
ui/ai_pdf_upload_widget.pyembeds PDF attachment controls in the AI Assistant tab and drives the pipeline.utils/ai_pdf_attachment_manager.pystores ordered PDF paths and supports add/remove/clear.utils/ai_pdf_parser.pyreads PDFs withpdfplumber, extracting headings, bullets, equations, and page order.utils/ai_context_builder.pycompacts slide data and merges it with the user prompt into structured context.utils/ai_slide_animator.pycalls the AI API usingGEMINI_API_KEYand returns a JSON slide plan.core/ai_slides_to_manim.pyconverts the plan into runnable Manim scenes.graph/ai_slides_to_nodes.pycreates node groups, animations, and wiring per slide, then loads them into the editor.
- UI widgets: add to
ui/panels/orui/dialogs.py. - Graph logic: add to
graph/. - Rendering features: add to
rendering/. - App-level orchestration: add to
ui/main_window.py. - Shared helpers: add to
utils/.
- Start the app and create a new project.
- Add Mobjects and Animations from the Elements tab.
- Connect nodes to define ordering.
- Preview nodes to validate changes.
- Render the full scene in the Video tab.
- Export Python code if needed.
docs/history_system.mdexplains the newHistoryManager, checkpoint APIs, signals, and how grouped actions (including AI merges/imports) are recorded.docs/mcp_commands.mdis the canonical reference for the expanded MCP surface covering nodes, wires, AI workflows, rendering, settings, recents, themes, keybindings, and history operations.