Inspiration

I built Physics AI because I kept seeing the same thing: students can often find “an answer”, but they don’t know why the answer works. Physics is about reasoning—free-body diagrams, assumptions, units, and checking whether the result makes sense.

What it does

Physics AI helps you solve physics questions from a photo or plain text and explains the solution step by step:

  • Breaks the problem into knowns/unknowns and assumptions
  • Builds the setup (equations, diagrams, units)
  • Solves with clear intermediate steps (not just final number)
  • Gives a quick sanity check and common mistakes
  • Works great for topics like mechanics, energy, momentum, circular motion, waves, basic E&M, and intro-level problems

How we built it

  • Frontend: Next.js + TypeScript + Tailwind
  • AI reasoning: LLM-based solver with structured prompts and step formatting
  • Image input: upload + parse + convert into a clean problem statement for solving
  • UX: fast “ask again”, follow-up questions, and readable math formatting

Challenges

  • Physics answers are useless without correct setup and units — we focused on making the steps readable and consistent.
  • Image questions vary a lot (handwritten, blurry, cropped). We optimized the input pipeline to handle messy screenshots and photos.
  • Preventing “hallucinated” steps: we added validation patterns like unit checks and consistency checks.

What we learned

Clear formatting and guardrails matter more than fancy output. When students can see the setup and reasoning, they learn faster and trust the result more.

What’s next

  • Better diagram support (free-body diagram hints)
  • Topic-specific templates (projectile motion, circuits, etc.)
  • More structured solutions and faster iteration based on user feedback

Built With

  • cloudflare-dns/cdn
  • e&m
  • get-the-steps?not-just-the-answer.-works-for-mechanics
  • image-upload-pipeline
  • next.js-(app-router)
  • node.js
  • openai/llm-apis
  • rate-limiting-&-credits
  • stripe
  • tailwind-css
  • typescript
  • vercel/dokploy-deployment
  • waves
Share this project:

Updates