What Are the Main Scene Types Supported by OpenMAIC? A Complete Guide
OpenMAIC supports four main scene types—slide, quiz, interactive, and pbl (Project-Based Learning)—that define how educational content is structured and rendered in the THU-MAIC/OpenMAIC platform.
The THU-MAIC/OpenMAIC repository implements a flexible scene-based architecture where each scene type determines the presentation mode, interaction model, and storage schema for educational modules. These core scene types drive the UI generation, storage pipelines, and editing interfaces throughout the codebase.
The Four Core Scene Types
OpenMAIC organizes educational content into discrete scenes, with each type optimized for specific pedagogical contexts. The platform validates these types through comprehensive test suites that enforce the schema across the application.
Slide Scenes
The slide type serves as the default presentation-style container for visual educational content. It provides a canvas-based layout system where instructors arrange text, images, and media elements in a sequential presentation format.
According to the test suite in tests/workbench/tool-presentation.test.ts at line 242, slide scenes are instantiated with specific metadata structures that control navigation and layout properties. This type forms the backbone of traditional lecture-style content delivery within the platform.
Quiz Scenes
The quiz scene type handles assessment interactions, supporting single-choice, multiple-choice, and other question formats. It manages answer collection, validation logic, and scoring workflows.
The registration test in tests/edit/surfaces/quiz/register.test.ts at line 8 explicitly confirms the quiz type identifier during surface registration. This ensures that quiz-specific UI components and validation rules are activated when the system encounters this scene type.
Interactive Scenes
The interactive type provides a generic container for custom widgets, live-coding environments, and dynamic learning experiences. Unlike the rigid structure of slides or quizzes, interactive scenes accommodate arbitrary JavaScript-based learning tools and real-time collaboration features.
This type appears in the allowed values enumeration within tests/i18n/edit-chrome-keys.test.ts at line 46, confirming its status as a first-class scene type in the platform's internationalization and chrome key management systems.
PBL (Project-Based Learning) Scenes
The pbl scene type supports project-oriented pedagogical workflows, featuring integrated timelines, deliverable tracking, and collaborative workspace tools. It structures learning around extended projects rather than discrete content consumption.
Also listed in tests/i18n/edit-chrome-keys.test.ts at line 46, the pbl type activates specialized UI chrome elements including milestone trackers, team management panels, and submission workflows that differ significantly from standard presentation or assessment interfaces.
Scene Type Definitions in the Source Code
The OpenMAIC codebase validates scene types through multiple test layers that enforce type safety and UI consistency.
In tests/workbench/tool-presentation.test.ts, the test suite verifies that slide scenes initialize correctly with the expected canvas dimensions and navigation controls. The quiz surface registration tests in tests/edit/surfaces/quiz/register.test.ts ensure that quiz scenes properly bind to their respective rendering surfaces and validation schemas.
The comprehensive key validation in tests/i18n/edit-chrome-keys.test.ts explicitly lists slide, quiz, interactive, and pbl as the allowed scene type values, preventing invalid type strings from entering the localization pipeline or UI generation logic.
Creating Scenes Programmatically
Developers interact with scene types through the Stage API, which exposes type-safe methods for instantiation. The architecture defined in lib/api/stage-api.ts documents the extensible scene-type design, allowing runtime creation of any supported type.
// Creating a new slide scene via the Stage API
await api.scene.create({
type: 'slide',
title: 'Introduction',
});
// Creating a quiz scene with question definitions
await api.scene.create({
type: 'quiz',
title: 'Chapter 2 Quiz',
content: {
questions: [
{ id: 'q1', type: 'single', question: 'What is the primary function of...' }
]
},
});
These API calls validate the type parameter against the four core scene types before persisting to the backend storage layer.
Extending the Scene Type System
While slide, quiz, interactive, and pbl constitute the built-in scene types, the OpenMAIC SDK supports custom scene type registration for specialized educational applications. The extensible architecture in lib/api/stage-api.ts permits apps to register additional scene handlers that integrate with the platform's rendering pipeline, storage schema, and editing tools.
Custom scene types must implement the same interface contracts validated in the core test suites, ensuring consistency across navigation, serialization, and UI chrome generation.
Summary
- Four core scene types define OpenMAIC's content architecture:
slide,quiz,interactive, andpbl. - Source validation occurs in
tests/workbench/tool-presentation.test.ts,tests/edit/surfaces/quiz/register.test.ts, andtests/i18n/edit-chrome-keys.test.ts. - Programmatic creation uses the Stage API with type-safe parameters as documented in
lib/api/stage-api.ts. - Extensibility allows custom scene types while maintaining compatibility with the core UI and storage systems.
Frequently Asked Questions
What is the default scene type in OpenMAIC?
The slide scene type serves as the default presentation format in OpenMAIC. According to the test definitions in tests/workbench/tool-presentation.test.ts, this type provides the standard canvas-based layout system used when no specific pedagogical mode is specified during scene creation.
Can I create custom scene types beyond the four core options?
Yes. While slide, quiz, interactive, and pbl are the built-in scene types supported by OpenMAIC, the SDK architecture documented in lib/api/stage-api.ts permits applications to register custom scene types. These extensions must conform to the platform's interface contracts for rendering, serialization, and navigation to ensure compatibility with the editing tools and storage backend.
How does OpenMAIC validate scene type identifiers?
The platform validates scene types through multiple test layers, including tests/i18n/edit-chrome-keys.test.ts at line 46, which explicitly enumerates the allowed values. This prevents invalid type strings from propagating through the internationalization system or UI generation pipeline, ensuring that only recognized scene types activate their respective rendering surfaces and chrome elements.
Have a question about this repo?
These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:
curl -s "https://instagit.com/install.md" Maintain an open-source project? Get it listed too →