Better Office Hours

A voice tutor that teaches on a live whiteboard and the student's own notes, and gives hints instead of answers.

I built the voice loop, the whiteboard engine, and the workspace · Sep to Oct 2026

Recognition: 1st place · YaleAI x SpaceXAI Cursor Build Challenge

Results

The problem

Office hours are crowded and intimidating, and generic AI tutors tend to solve the problem instead of teaching it. A 2025 PNAS field study found unguarded AI help raised practice scores but cut later unassisted exam performance by 17 percent.

What I built

The hard part

Keeping generated drawings in step with a voice that is synthesized, buffered, and interruptible. Model output streams faster than speech plays, so drawing immediately would show the picture (or the answer) before the tutor said it. I queued each visual command behind the words before it and released it only when that audio actually started playing. A playback epoch means an interruption cancels every pending visual, and late results are ignored.

How it fits together

Invariant: nothing appears on the board before the tutor says it.

Decisions

Tech: Next.js, TypeScript, ElevenLabs, Voice AI. Code

By David Antwi (david.antwi@yale.edu). Markdown version: /work/better-office-hours.md. Full profile: /llms.txt.