[Feature]: Per-Scene Editing & Regeneration
- Dominant language
- TypeScript
- Stars
- 37.7k
- Forks
- 5.9k
- Avg merge
- 1d 3h
- Merged PRs (30d)
- 193
Description
### Problem or Motivation
After generating a classroom lesson, there is no way to edit or regenerate individual scenes. If I want to fix the text on slide 7, change an image on slide 12, or rephrase a quiz question on slide 4, my only options are:
Regenerate the entire lesson from scratch — which loses all the good content on other slides
Export to PPTX and edit manually in PowerPoint — which loses all interactive classroom features (narration, quizzes, simulations, whiteboard)
This is especially frustrating for longer lessons. I generated a 23-slide presentation on energy transition, and while 20 slides were excellent, 3 needed text adjustments and 1 needed a different image. I had to regenerate the whole thing multiple times to get all slides right, wasting tokens and time.
The current workflow forces an all-or-nothing approach that doesn't match how professionals actually create presentations: generate → review → refine specific parts → finalize.
### Proposed Solution
Proposed Solution
A per-scene editing system with three levels of control:
Level 1 — Direct Text Editing (highest priority)
Click any text element in a scene to edit it inline
Changes save to scene data and reflect in both classroom playback and PPTX export
Covers: typo fixes, rephrasing, updating numbers/names/terminology
Level 2 — AI-Powered Scene Regeneration
Add an "Edit with AI" button on each scene
User types a natural language instruction, e.g.:
"Make this slide more visual and less text-heavy"
"Replace the chart with a comparison table"
"Simplify the language for a non-technical audience"
System calls the LLM to regenerate only that one scene, using surrounding scenes as context for coherence
Suggested API: POST /api/regenerate-scene with classroomId, sceneIndex, instruction, and optional directEdits
Level 3 — Image & Layout Editing
Swap images (upload custom or request AI regeneration)
Adjust layout (e.g., single-column → two-column)
Modify visual elements (colors, chart types)
Why this is technically feasible: The Stage 2 generation pipeline in lib/generation/ already generates each scene independently. Exposing per-scene regeneration as a separate endpoint reuses the existing logic. The components/scene-renderers/ already render scenes independently, so adding an edit overlay per scene should be contained. The PPTX export in packages/pptxgenjs/ processes slides individually, so updated scenes would automatically appear in re-exports.
### Alternatives Considered
Full regeneration with seed/lock: Lock specific scenes as "approved" and only regenerate unlocked ones. Simpler than a full editor but still requires re-running the generation pipeline. Doesn't help with small text fixes.
Post-export editing only: Accept that editing happens outside OpenMAIC in PowerPoint/Google Slides. Works for static slides but loses all interactive features (narration timing, quizzes, simulations, whiteboard drawings, agent discussions).
Prompt refinement loop: Iteratively improve the initial prompt until all scenes are satisfactory. In practice this doesn't work well — improving one scene through prompt changes often degrades others.
External editor integration: Build a plugin for Figma or Google Slides that syncs back to OpenMAIC. Too complex and creates dependency on third-party tools.
None of these alternatives provide the simple, integrated editing experience that users expect from a content creation tool.
### Area
Classroom generation
### Additional Context
Real-world use case: I'm using OpenMAIC to create educational presentations about renewable energy and community ownership models for a European startup. A typical lesson has 20+ slides covering complex topics (EU regulations, financial models, technology curves). After generation, typically 80-90% of slides are excellent, but 2-3 need text refinements, and 1-2 need different visuals. The inability to edit individual scenes is the single biggest friction point in my workflow.
Suggested implementation phases:
Phase 1: Direct text editing (lowest effort, highest immediate value)
Phase 2: AI-powered per-scene regeneration (medium effort, unique differentiator)
Phase 3: Image & layout editing (highest effort, makes OpenMAIC competitive with dedicated tools)
Additional ideas that pair well with this feature:
Scene version history (keep last 2-3 versions, allow "undo" if regeneration is worse)
"Regenerate scene" command via OpenClaw integration ("regenerate slide 5 to focus on financial returns")
Batch mode: select multiple scenes and apply the same instruction to all
Environment:
Platform: open.maic.chat (hosted)
Test classroom: 23-slide energy transition lesson with mixed scene types (slides, quizzes, interactive simulations)
Browser: Chrome, Windows
Contributor guide
Research direction
Start by reading the Stage 2 generation pipeline in lib/generation/ and the independent scene renderers in components/scene-renderers/. Trace how scene data reaches classroom playback and how packages/pptxgenjs/ processes slides, then assess the proposed POST /api/regenerate-scene entry point. Done means the phased scope is agreed and individual scene edits or regeneration remain consistent in playback and PPTX export.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- full-stack
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 32/100