Inspiration

Learning today is too traditional to the most part, all around us things change but learning and school instruction stay the same with repetitive videos, slides and readings activities. As a teen in school, our team noticed and experienced that we were often understanding concepts better when we stimulated ourselves by experimenting and getting the outcome. Whether it's physics, math, engineering, or abstract ideas, interaction helps develop a deeper understanding rather than memorizing facts that you may forget in the future. For example, if I was taught a math skill and I didn't use it in my career once I grew up, I would most likely forget the skill, however if I use an interactive lab to help me understand the real-world example my mind will remember, yielding a unique result. Essentially, we as a team wanted to make learning feel less like consuming information and overloading your brain to make it more like discovering it. That idea became Repend.

What it does

Repend turns any topic into a self-contained interactive learning lab. Users add in a concept they want to learn such as the physics of a basketball bouncing, and Repend generates a personalized 2D or 3D experience designed around that topic. The learning flow follows, Predict - Play - Explain, users should hypothesize or commit to an answer or expectation before interacting, they then should understand the live simulation and use it to explain the outcomes and how it reinforced their learning.

How we built it

We built Repend as an AI-powered educational generation pipeline that transforms a simple text prompt into a complete interactive learning experience. Instead of generating everything in one step, we separated the system into multiple stages to improve reliability, quality, and scalability. Users begin by entering a topic they want to learn. The backend then processes that request through a structured pipeline while streaming progress updates to the frontend using Server-Sent Events (SSE) so users can see generation happen in real time.

  1. Concept Reasoning The first stage uses OpenAI to understand the topic and determine how it should be taught. Rather than forcing structured output immediately, this step generates free-form reasoning to:
  2. Identify the core concept
  3. Determine important variables and relationships
  4. Select effective visual metaphors
  5. Anticipate misconceptions
  6. Design meaningful interactions This reasoning serves as the educational foundation for the rest of the pipeline.

  7. Structured Lab Specification Next, a second OpenAI stage converts the reasoning into a validated JSON specification. The specification defines:

  8. Interactive variables

  9. Learning objectives

  10. Prediction prompts

  11. Visual structure

  12. Simulation behavior

  13. User interaction requirements Creating a strict data contract between stages ensures outputs remain modular and independently testable.

  14. Interactive Lab Generation Using the validated specification, Gemini generates a fully self-contained interactive HTML learning lab. Each generated lab includes:

  15. Interactive controls and sliders

  16. Real-time simulation updates

  17. Dynamic visualizations

  18. Predict - Play - Explain learning flow

  19. Reflection questions and explanations The output is designed to function independently without requiring additional assets or external requests.

  20. Validation and Repair One of our biggest technical challenges was making generated labs dependable. After generation, each lab is automatically validated against required criteria including:

  21. Functional rendering and animation

  22. Interactive controls

  23. Presence of all learning phases

  24. Reflection components

  25. Security and structural requirements If validation fails, the system performs a targeted repair pass using the failed checklist before delivering the final result.

  26. Streaming, Security, and Performance To improve responsiveness, every pipeline stage streams updates back to the frontend over SSE instead of making users wait for a single final response. Generated labs are rendered inside sandboxed iframes to isolate generated code and protect the host application. For performance optimization, completed labs are cached using Supabase when configured, with an in-memory fallback for local development and repeat requests. By separating reasoning, specification, generation, validation, and delivery into independent modules, Repend is able to generate scalable, interactive educational experiences from a single user prompt.

Challenges we ran into

One major challenge was making generated labs reliable rather than visually impressive, because the labs had to have relevant content. AI-generated interactive content can break easily as we coded it, so we had unexpected repairs to enforce requirements such as simulation rendering and complete learning phases. Another challenge was maintaining responsiveness while generating multiple stages of output. Streaming pipeline updates helped keep the experience interactive.

Accomplishments that we're proud of

We are proud that we built an end-to-end AI pipeline that converts topics into educational interactive labs. We are also proud of our predict - play - explain learning framework rather than traditional content generation separating ourselves. We also added validations and repaired our project to improve consistency, and created an engaging user experience and tested it. And we love our 3D landing page.

What we learned

We learned that educational AI is more than generating answers, it requires structure, feedback loops, and interaction design. We also learned how important strong interfaces between AI stages are for reliability and scalability.

What's next for Repend

Our next goals are to support richer 3D environments and collaborative labs along with a library, so people don't have to make new labs for existing ideas. We also want to add adaptive difficulty based on performance, build progress tracking and learning paths, expand subject coverage and integrate in classrooms for students to use in the end. Our vision is to make learning feel less like studying and more like experimenting.

Built With

Share this project:

Updates