Inspiration
As a student, I realized PowerPoint slides aren't learning resources—they're teaching aids for professors. Students get "cooked" trying to decipher cryptic bullet points, unexplained diagrams, and disconnected concepts with zero context. We built Uncooked to transform static slides into fully narrated lecture videos with interactive Q&A, giving every student their own personal TA at their disposal.
What it does
Uncooked converts PDF slide decks into engaging lecture videos with AI-powered features:
- 🎬 Automated Lecture Generation - Upload slides, get fully narrated videos with natural speech, pedagogical explanations, and smooth transitions between concepts
- 💬 Context-Aware Q&A Assistant - Ask questions while watching; AI answers based only on content covered up to your current timestamp (like a real TA)
- 📝 Auto-Generated Quizzes - Creates conceptual, application, and analytical questions with timestamped references to video segments
- 📚 Clean Library Management - Organize recordings by subject with colored folders in a GoodNotes-inspired interface
- ⚡ Real-Time Progress Tracking - Live pipeline status with stage indicators and time estimates during video generation
How we built it
Multi-Agent Architecture: Flask + SocketIO web app orchestrating a 6-stage pipeline powered by Google ADK and Gemini 2.5:
- Slide Parser - Extracts slides as images (300 DPI) + OCR text via Tesseract
- LectureCoordinator Agent (Gemini 2.5 Flash Lite) - Analyzes slide structure, creates lecture context maps with cost-aware vision API usage (only 3-5 critical slides)
- NarrationOrchestrator Agent - Coordinates parallel narration generation with rate-limited batch processing (
asyncio.Semaphore(5)) - SlideNarrator Agent (temp=0.7) - Generates natural scripts with pedagogical flow, emphasis markers, and smooth transitions
- TTS Converter (Gemini TTS) - Parallel audio generation reduces 45-54 min sequential time to 9-11 minutes
- Video Assembler (MoviePy) - Synchronizes slides with audio, adds crossfade transitions (720p @ 15fps)
Tech Stack: Flask, Google ADK, Gemini 2.5, pdf2image, Tesseract OCR, MoviePy, asyncio
Challenges we ran into
- API Rate Limiting Hell - 28 simultaneous calls caused instant throttling. Implemented
asyncio.Semaphore(5)for controlled batching → 100% success rate, 5× speedup - Cost Explosion - Vision API costs 100× more than text. Built text-first analysis with selective visual verification → 80% value at 5% potential cost
- TTS Processing Bottleneck - Sequential processing = 45+ minutes for 27 slides. Parallelized with rate limiting → 9-11 minutes total
- Context-Aware Q&A Accuracy - AI answering questions about uncovered slides. Solved by estimating current slide from video timestamp and loading only covered narrations
Accomplishments that we're proud of
- ⚡ Full lecture video generation in under 15 minutes for 20-30 slide decks
- 🧠 Pedagogically intelligent narration - AI explains concepts, connects ideas, references previous slides—not just reading bullets
- 💰 Cost-optimized architecture - Strategic API usage saves 95% of potential costs while maintaining quality
- 🎨 Clean, intuitive UX - GoodNotes-inspired design with real-time progress feedback
- 🔄 Production-ready reliability - Resume capability (skips completed slides), automatic retries, graceful error handling
What we learned
Multi-agent orchestration with Google ADK and programmatic agent invocation, rate-limited parallel processing patterns with asyncio, cost-performance trade-offs in AI API usage (vision vs text), and designing pedagogically-aware AI systems where context and transitions matter as much as content.
What's next for Uncooked
- Mobile app for on-the-go learning with offline playback
- Custom voice cloning - Generate lectures in your professor's voice (with permission)
- Multi-language support with localized TTS for global accessibility
- LMS integration (Canvas, Blackboard, Moodle) for university-wide deployment
- Collaborative learning - Shared folders, discussion threads, group annotations
- ASL avatar integration for deaf/hard-of-hearing accessibility
- Learning analytics dashboard tracking progress, quiz performance, and personalized recommendations
Uncooked: Because students deserve more than cryptic slides.
Built With
- gemini
- html/css
- javascript
- python
- vertex

Log in or sign up for Devpost to join the conversation.