Inspiration

Our team started by thinking about how AI could help people learn something new. We wanted to build something that worked with the tools people already use, but changed the experience from getting an answer to actually understanding how to get there. We were also worried about cognitive atrophy (the gradual decline in mental functions through the disuse of specific cognitive abilities over time) as people lean on LLMs without thinking. We kept coming back to this problem, which we thought was especially important for younger students.

One of our teammates works with children and had seen how often they turned to AI when they got stuck on schoolwork. We began discussing what students might miss when they skip that process. They can finish an assignment without developing the fundamentals or problem-solving skills it was meant to teach. This seemed particularly important in schools, where students increasingly have access to AI through school-issued laptops and tablets. The most useful response for a student is not always a direct answer. Sometimes they need a hint, a question that helps them see the next step, or a chance to try again. Teachers understand this, but they have little control over how general-purpose AI tools help their students.

What it does

That conversation led us to create Friction. Rather than building another tutoring app or trying to keep children away from AI, we wanted to change how the tools they already use respond to them. We decided to focus our first version on school-aged students, who are still developing the foundational skills they will rely on throughout their education. Friction starts with the teacher. They upload a syllabus, and Claude turns it into a skill tree that breaks the course into individual concepts and maps how they depend on one another. Teachers can review and edit the tree, keeping control over the learning goals. When a student asks a question in a supported AI tool, Friction identifies the relevant concept and checks the student's current mastery level. If the question doesn't use the syllabus's wording, Moss helps retrieve potentially relevant skills, while Claude makes the final classification. Friction then determines how much help the student receives based on their demonstrated understanding. For example, if a fifth grader asks how to divide six by two, the AI guides them through the reasoning instead of giving the answer outright, then checks their understanding. As they demonstrate mastery, the skill is marked complete on both dashboards and related concepts unlock. Students have a limited number of bypasses for times when they genuinely need to move on. Each bypass notifies the teacher, who can see progress and skipped steps without accessing the student's questions or replies, preserving students' privacy.

How we built it

We divided the work across four builders and an integrator. We built a Hono API with live updates, a React dashboard with teacher and student views, a sandbox chat, and a Chrome extension prototype for Claude.ai. Claude Opus handles syllabus parsing, tutoring, and grading, while Claude Haiku serves as a fallback classifier.

Challenges we ran into

Getting the full process to work in real time was harder than we expected. Grading needed to be fast enough that students would not be left waiting, which meant balancing token usage against quality. We discovered that an interrupted AI reply could look like a completed one, so we had to change how the system handled streaming failures. We also had to protect against students getting around Friction through the prompt itself. Building a web extension and designing in Figma were new to some of us, and we had to learn to integrate existing tools like Moss in ways that actually improved our design.

What we learned

On a small course, Moss did not outperform our existing classifier, so we kept it as a source of suggestions for Claude rather than letting it make the final decision. This reinforced a design choice: the rules determining how much help a student receives should live in our own code, while AI handles tasks that require interpretation. We learned that adding more AI infrastructure does not necessarily make a product better, and that reliability depends as much on how a system handles uncertainty and failure as on the model.

Accomplishments that we're proud of

Our pilot application is already being used for studying by students across multiple campuses around the country. We also got the whole loop working end to end: we could upload a fifth-grade fractions syllabus, generate a skill tree in about fifteen seconds, ask a question about dividing a pizza, receive guided help, and submit an answer that updates the student's mastery on the dashboard.

What's next for Friction

The prototype still needs work before it could be used in real classrooms, including:

  • school accounts
  • parental consent
  • stronger student-data protections
  • a production database
  • a way for teachers to decide how much friction students face We also want Friction to work across AI agents, so the same learning profile informs how different tools help a student and their goals do not disappear when they switch platforms. We want to develop a personal-use version for individuals just trying to learn something new outside school. We do not think students should have to choose between using AI and learning independently. We want to make it possible for them to do both.

Built With

Share this project:

Updates

Submission history