Inspiration
Most of us have rehearsed a presentation alone in a room, felt ready, and then frozen the moment someone in the audience asked a question we hadn't expected. Practicing alone just doesn't recreate the pressure of a real classroom. There's no one to interrupt you, push back on your argument, or check their phone while you're talking. We also noticed that most AI learning tools work the other way around. You ask, they answer. They're great at handing out information but rarely make you defend what you know. We wanted to build something that challenges students instead of doing the thinking for them.
What it does
YapLab is an AI-powered presentation and learning simulator. Students present a topic, and a panel of AI agents acts as their audience. These agents:
- Interrupt mid-presentation, the way a curious classmate or professor would
- Ask tough follow-up questions that probe whether the student actually understands the material
- Simulate real classroom distractions so students learn to stay composed and keep their flow
- Give personalized feedback afterward on clarity, confidence, and how well they handled pressure
- Coach teaching moves backed by real classroom data: the report shows how often you checked in with the room, asked "why," pushed for precision, or connected ideas, and compares you with how real teachers do it across 566 expert-annotated lessons
How we built it
We built YapLab with React on the frontend and FastAPI+asyncio on the backend. Speech is captured in real time and transcribed with ElevenLabs Scribe, and each audience member is an LLM agent with its own persona, memory, and questioning style. We run DeepSeek in production, with OpenAI and Claude also supported. Agents ask their questions out loud in distinct ElevenLabs voices.
For the feedback, we didn't want to just ask an LLM "how did I do?", so we grounded part of the report in real data. We used TalkMoves (Suresh et al., 2022), a public dataset of 567 K-12 math lesson transcripts in which experts labeled each teacher sentence with the "talk move" it makes. We trained a lightweight TF-IDF + logistic-regression classifier on about 150,000 labeled teacher sentences. It scores 73.2% accuracy on the official held-out test set, and the model file is only 3.9 MB. We also ran a bootstrap analysis of the human labels to find how often real teachers use each move per lesson (median and middle 50%). At the end of a session, the backend classifies the presenter's own sentences locally on our server. It never sends them to a third party, and they're never used for training. The report then places the presenter's rate next to the real classroom range and quotes their own example sentences.
Challenges we ran into
- Timing interruptions naturally. An agent that cuts in every ten seconds is annoying, and one that never speaks up is useless. Finding the balance took a lot of tuning.
- Keeping latency low. Interruptions only feel real if they happen in the moment, so we had to keep the speech-to-response loop fast.
- Making agents feel distinct. Getting several agents to sound like different people, rather than one model with different names, was harder than expected.
- Agent orchestration. We had to orchestrate the agents and manage the context and speech transcription so every agent sees the same flow of the presentation through its own personality.
- Moving classroom data to presentations. TalkMoves comes from K-12 math classrooms, not college talks. Our first version labeled ordinary lecture explanations as "pressing for accuracy." We fixed this by classifying each sentence on its own and only counting a move when the sentence is actually a question. We also dropped two move types (restating and revoicing) because the model wasn't reliable enough on them to show users.
Accomplishments that we're proud of
- Building a multi-agent audience that reacts to what the student is actually saying, live
- Questions that genuinely push students to think rather than just recall
- When testing with deck slides, we saw real value in the new and unique questions the agents asked
- Feedback backed by real data: a classifier trained and evaluated on expert-labeled classroom transcripts, with its accuracy and per-move F1 shown right in the report
- Shipping a working end-to-end experience within the hackathon window
What we learned
We learned that designing for realism is much harder than designing for correctness. A good audience member is not just accurate; they're timely, a little unpredictable, and occasionally inconvenient. We also learned a lot about real-time audio pipelines, multi-agent orchestration, and prompt design, and how small changes in an agent's persona can completely change how a session feels.
On the data side, we learned that a model's test score doesn't tell you how it behaves in your product. The classifier looked solid on classroom data but needed domain-specific rules before it gave sensible results on presentations. We also learned to treat benchmarks as context rather than targets: a real classroom median isn't a pass mark. So the report is labeled "advisory, not a grade," and we credit the dataset and respect its noncommercial license.
What's next for YapLab
- Difficulty levels ranging from a friendly study group to a tough thesis committee
- Progress tracking so students can see their confidence and response quality improve over time
- Subject-specific panels tuned for fields like CS, biology, or business
- Video analysis for body language, eye contact, and pacing
- Classroom mode so instructors can assign practice sessions and review
- Interview mode: expanding the scope to panel interviews, since AI-led interviews are becoming much more common
- Presentation-specific training data: retraining the teaching-moves model on labeled college lectures and talks instead of K-12 math classrooms
Built With
- agentic
- fastapi
- gcp
- llm
- react
Log in or sign up for Devpost to join the conversation.