Inspiration

You can reread a chapter five times and still freeze the moment someone asks "but why?" That's the illusion of understanding — and the fastest way to break it is to teach. The protégé effect and the Feynman technique both say the same thing: explaining a concept forces you to sequence ideas, surface hidden assumptions, and confront the gaps you keep glossing over. The catch is that most people don't have a patient, curious learner on hand to teach at 11 p.m. So I built one.

What it does

You pick any topic and teach it in plain words. Curio — a curious AI student, never a tutor — listens and asks the one sharp question a bright beginner would ask: the part you skipped or assumed. As you teach:

  • A live 0–100 understanding score and a confusion meter track how well the idea is actually landing.
  • Curio lists the specific questions it still has.
  • When your explanation is subtly wrong, Curio flags the misconception in-line — the way a real student says "wait, that's not right."
  • On demand, Curio grades the whole session into a report card: what you explained clearly, the gaps still open, misconceptions set straight with the correct version, and what to teach next.

Curio's glowing aura warms from cool teal to gold as understanding rises — the score isn't a number in a corner, it's the mood of the whole screen.

How I built it

  • Vanilla JavaScript, HTML, and CSS — no framework, no build step. It's a static site, deployed free on GitHub Pages.
  • Google Gemini does all the pedagogy, called directly from the browser. Every turn uses Gemini's structured-output mode (responseMimeType: application/json + a response schema), so the model returns machine-renderable JSON — the reply, the score, the confusion level, the open gaps, the misconception — that drives the interface directly. No brittle text parsing.
  • Clean separation of concerns: prompts.js is the teaching brain (Curio's student persona + output schemas), api.js is the Gemini transport, app.js turns structured output into the live meters and report, and styles.css is the "understanding is light" design system.
  • The Curio character and its moods are inline SVG driven by CSS custom properties, so the aura reacts to the live score.

How AI is the core (not bolted on)

Remove the model and there is no product — Curio is not a quiz bank or a scripted bot. The probing questions, the real-time understanding score, the gap detection, the misconception catching, and the final graded report are all generated live by Gemini. The creative twist is the inverted role: the model plays the learner, not the expert, and structured output turns its reasoning into a quantified, renderable assessment UI.

Challenges I ran into

  • Keeping the AI in the student role. LLMs desperately want to explain and help. It took careful prompt design to make Curio ask instead of answer — and to voice believable beginner misconceptions on purpose to test the teacher.
  • Making free-form model output reliable enough to drive a UI. A strict response schema solved this: every turn returns the same shape, so the meters and report never break on a stray sentence.
  • Model availability differs per key and region — a hardcoded model 404'd for some accounts. I added a Detect feature that queries Gemini's ListModels endpoint and offers only the models your key can actually use.

Accomplishments that I proud of

  • The inversion genuinely works — teaching Curio surfaced gaps I didn't know I had.
  • It's a real, live, polished product anyone can use in their browser for free with their own key — no signup, no backend, no install.
  • The interface makes an abstract feeling — how well do I actually get this? — visible and visceral.

What I learned

  • Prompt-as-pedagogy: here the system prompt is the product design.
  • Structured output is what turns an LLM from a chat toy into a dependable app component.
  • A single tight visual metaphor (understanding = light) communicates more than any dashboard of numbers.

What's next for Curio-curious AI student

  • Save and revisit sessions; track a topic's mastery over time.
  • Spaced-repetition nudges to re-teach a topic days later.
  • A small server-side proxy so people can share it without each needing their own key.
  • Voice mode — teach Curio out loud.

Built With

Share this project:

Updates

Submission history