Project Info

Euclid

Devpost

This project did not submit a demo video on Devpost.

Inspiration

We built Euclid because everyone deserves high-quality, one-on-one math tutoring—no matter where they live or what resources they have available. Many students struggle with learning math, and while private tutoring can be greatly beneficial, the cost is often prohibitive. By combining voice interaction with real-time canvas snapshots, Euclid feels like it's truly present: speaking naturally, listening attentively, and annotating each student’s work. This lets it deliver instant, tailored guidance and personalized feedback. But Euclid does more than just solve math problems—it encourages students with gentle, confidence-boosting prompts, breaks every problem into bite-sized steps, and celebrates each win, keeping learners motivated. This dynamic, multimodal experience replicates the best parts of private tutoring while being more accessible than ever and far more effective than simple LLM Q&A.

What it does

Euclid is a collaborative math problem space where students can: Upload notes or PDFs to generate practice problems. Sketch solutions on a whiteboard-like interface powered by Tldraw. Ask for help from an AI tutor who can view their current whiteboard and provide hints. Check their work, get feedback, and receive new problems based on their progress. Everything happens in-context—on the canvas—through arrows, equations, and agent feedback, mimicking how a tutor might work alongside you on a physical whiteboard.

How we built it

Frontend: React + Tldraw for the canvas-based UI, using custom shapes and math rendering via KaTeX. Conversational Agent: Built with Vapi, using Claude 4 with vision to process current whiteboard state and provide hints, guidance, or feedback. Practice Problem Generation: Claude 4 processes uploaded PDFs of math notes to extract concepts and generate new LaTeX-formatted practice questions. Authentication and Storage: Supabase stores user accounts, problem spaces, and canvas snapshots for each question.

Challenges we ran into

Getting usable context into the LLM agent: we explored both passing images of the canvas and using snapshot.json state.

Accomplishments we're proud of

Created a somewhat working and deployed web application

What we learned

Tldraw is very cool but also incredibly complicated especially when it comes to saving and loading canvas states. Using vision description as context worked surprisingly well when it comes to getting context from the canvas to the voice agent.

What's next

Add a social layer: allow users to share their problem spaces with friends or tutors for collaborative solving. Improve agent grounding: extract and annotate key steps or errors in student work over time.

Analysis

Compare with all teams

View

Metric

Figures cover GitHub contributors during the hackathon window. A co-authored commit counts in full for each author, so per-member totals add up to more than the whole-team figures.

Technology

Found in codeClaimed only
  • CSSIn code
  • HTMLIn code
  • JavaScriptIn code
  • PythonIn code
  • ReactIn code
  • SupabaseIn code
  • Tailwind CSSIn code
  • TypeScriptIn code
  • AnthropicClaimed

8 of 9 appear in the indexed code. 1 claimed on Devpost could not be matched to code, which may simply mean the tool leaves no trace in the repository.

AI coding agents

No AI coding agent signals were found in this repository.

Detected from committed agent config files and commit authorship. Absence of a signal is not proof an agent was unused.

Codebase size

Source size

109 KB

Source files

27

Counts recognized source files only; vendored directories, binaries and lockfiles are excluded, so this is smaller than the repository on disk.

0 stars