A multimodal AI learning platform that transforms static content into interactive, verifiable, and visual lessons.

We live in an era of information abundance but "explanation poverty." Students stare at static PDFs and textbooks, struggling to visualize complex concepts. Standard chatbots can answer questions, but they tell without showingโand they can hallucinate facts without verification.
We wanted to build a tutor that acts like a lab partner:
- ๐ See what you are reading.
- ๐ Prove concepts through math and simulation (Empirical).
- ๐จ Visualize abstract ideas on the fly.
Omni-Lab was born from the idea that AI should be more than a text generatorโit should be an active participant in the scientific method of learning.
Omni-Lab is an autonomous educational workspace powered by three specialized AI Agents:
| Agent | Model | Role |
|---|---|---|
| ๐ The Teacher | Gemini 2.5 Flash (Native Audio) | Real-time voice conversation, slide narration, Q&A |
| ๐ฌ The Scientist | Gemini 3 Pro | Analytical verification, code generation, live simulations |
| ๐จ The Visualizer | Gemini 3 Flash | Document โ slides, flashcards, quizzes, infographics |
Upload any PDF and the system generates a full slide deck, then delivers a live voice-narrated presentation automatically.
| Click Play to Auto-Explain | AI Teaching Live |
|---|---|
![]() |
![]() |
Ask questions by voice โ the AI Teacher listens, understands your slides' context, and responds naturally. Supports real-time interruptions with local VAD (Voice Activity Detection).
| Listening to Your Question | Answered via Voice |
|---|---|
![]() |
![]() |
Prefer text? Ask in the chat panel and receive detailed, contextual explanations alongside your slides.
| Chat Explanation | Answer Detail |
|---|---|
![]() |
![]() |
Auto-generate study materials from your content. Test yourself with interactive quizzes and review key concepts with flashcards.
| Generating Flashcards | Flashcards View | Quiz View | Submit & Grade |
|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
Generate comprehensive reports, visual infographics, and structured data tables from any topic.
| Report | Infographic | Data Table |
|---|---|---|
![]() |
![]() |
![]() |
Ask "Make a video about this" and the system uses Veo to generate educational video clips on demand.
| Video Structure | Generated Video |
|---|---|
![]() |
![]() |
Switch between Slides, Flashcards, Quiz, Infographic, and Mind Map views without losing context.
graph TB
subgraph Client["๐ฅ๏ธ React 19 SPA (Vite + TypeScript)"]
UI[UI Components]
VAD[Local VAD]
Orchestrator[Marathon Loop Orchestrator]
end
subgraph Agents["๐ค AI Agents"]
Teacher["๐ Teacher<br/>gemini-2.5-flash-native-audio"]
Scientist["๐ฌ Scientist<br/>gemini-3-pro-preview"]
Visualizer["๐จ Visualizer<br/>gemini-3-flash-preview"]
end
subgraph Media["๐ผ๏ธ Media Generation"]
Imagen["Imagen<br/>gemini-2.5-flash-image"]
Veo["Veo<br/>veo-3.1-fast-generate"]
end
UI --> Orchestrator
VAD --> Teacher
Orchestrator --> Teacher
Orchestrator --> Scientist
Orchestrator --> Visualizer
Visualizer --> Imagen
Visualizer --> Veo
Scientist --> |Recharts| UI
- Upload a PDF or enter a topic
- Marathon Loop analyzes intent and routes to the right agent
- Teacher narrates via WebSocket audio streaming
- Scientist generates Python code โ renders live charts via Recharts
- Visualizer creates structured content (slides, flashcards, quizzes) and media (images, videos)
| Layer | Technology |
|---|---|
| Framework | React 19, TypeScript, Vite 6 |
| Styling | Tailwind CSS |
| AI Core | Google Gemini API (@google/genai) |
| Voice | WebSocket + Native Audio (Gemini 2.5 Flash) |
| Charts | Recharts |
| Export | PptxGenJS, html2pdf.js, FileSaver |
| Deployment | GitHub Pages |
- ๐ค Voice Interruptions ("Barge-in"): Stopping playback and clearing the audio buffer instantly when the user interrupts, using client-side VAD to prevent the AI from hearing its own output.
- ๐ Multimodal State Sync: Keeping the visual state (current slide) synchronized with the audio state (what the model is saying) through a complex
AutoTutorContextstate machine. - ๐ Structured Output: Ensuring consistent JSON from LLMs for quizzes, slides, and flashcards using Gemini's
responseSchemaand focused system instructions.
- โ Auto-Explain Magic โ Upload โ Slide Generation โ Voice Presentation, fully automated
- โ Veo Integration โ On-demand educational video generation pipeline
- โ Scientist Agent โ AI writes code to prove a point, not just hallucinate answers
- โ Natural Voice Interaction โ Real-time, interruptible voice conversation
- Gemini 2.5 Flash native audio modality feels significantly more natural than stitching together STT + TTS services
- Agent Specialization โ Splitting into Teacher, Scientist, and Visualizer yields dramatically better responses than a single-prompt approach
- ๐ Real Python Runtime โ Integrate Pyodide (WebAssembly) to execute Scientist-generated code in-browser
- ๐ฅ Collaborative Classrooms โ Multi-user lecture rooms
- ๐ฅฝ AR Mode โ Project visual overlays into 3D space using WebXR
Prerequisites: Node.js v18+
# 1. Clone the repository
git clone https://github.com/Golden007-prog/Omni-Lab.git
cd Omni-Lab
# 2. Install dependencies
npm install
# 3. Configure API Key โ create a .env.local file
echo "VITE_GEMINI_API_KEY=your_api_key_here" > .env.local
# Get your key from https://aistudio.google.com/
# 4. Start the dev server
npm run devContributions are welcome! Feel free to open an issue or submit a pull request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
Built with โค๏ธ using Google Gemini
โญ Star this repo if you found it useful!


















