Inspiration

Evidently both of us have tried using the Feynman learning technique where essentially the best way to know if you understand understanding is to try explaining it to a child. The problem is that the 2 of us don't readily have someone available to sit down and let us dumb a topic down to see if our understanding holds up. We could use Chatbots, but that solution doesn't perfectly capture what we look for, especially when you try to do this learning technique through typing. When you type, it's much easier to catch yourself making mistakes before you send anything, so you never can actually see the gaps you have. Also, a lot of times when you talk to the AI, it doesn't know the scope of what you're trying to teach, and some of the clarifying questions it asks could have no relevance to what you are trying to talk about, so it doesn't really help reach our goal.

What it does

We created an app where you can talk to our bot "Pip" who acts as the kid you are trying to teach. You can take notes you likely typed up (maybe add the ability to attach pictures in the future?), then press start and get ready to explain the topic out loud. Our bot is asking 4 main questions: what is this, what is the relation to another related topic, why is this important, and can we give an example? We felt that being able to answer these 4 questions is the best indicator of understanding.

In our program, if your answer covers key points for understanding, Pip will then say "I get it." If Pip doesn't understand, it'll ask a follow-up the first time; the second time, it'll note that it's still fuzzy for them and just move on. Pip never corrects you or teaches you the answer so you're in the blind with your progress. Only at the end do you get a gap report showing which key points you hit and missed, where you were just repeating your notes, and what to try re-explaining.

How we built it

We used Python with FastAPI to call Gemini and ElevenLabs, with Gemini as our brain and ElevenLabs as our voice. Gemini plans the four rounds from your notes and judges each answer against a hidden rubric. ElevenLabs turns your speech into text and gives Pip a voice.

Challenges we ran into

At first ideating was a struggle and also trying to understand the syntax. Neither of us used FastAPI before, and one of us hasn't even programmed at all before this, so there was a pretty steep learning curve. Something we noticed was that Pip was pretty strict with judging at the start, so we had to make it act nicer and debug why it hated all our explanations (or we just sucked at explaining)

Accomplishments that we're proud of

We ended up with a tool that we realized is actually useful, one we could see ourselves using in the future. We’re also proud that we sat down and built something end-to-end that we can showcase

What we learned

We learned how to work with chatbots to get the results we want, and how to debug those results after querying.

What's next for Feynman

There's this one series where an expert explains a topic to a 5-year-old, then a high schooler, then an undergrad, then another expert. So we could possibly create this gauntlet of understanding? Something we would love to see, if possible, is adding interruptions and a real-time audio input to simulate a real convo.

Built With

Share this project:

Updates

Submission history