Inspiration

Dental reads are slow and inconsistent. We wanted AI that doesn’t just assist once—it gets better with every case a dentist approves, so the whole practice benefits.

What it does

DentalAI analyzes X-rays for tooth numbering, quadrants, and conditions. Dentists review and approve (or correct) each case. When enough cases are approved, the system retrains the model so accuracy improves over time—learning from real clinical feedback.

How we built it

React front end for viewing and annotating X-rays; Node/Express API and Python AI service (YOLO) for inference; a training queue that pulls approved annotations and runs retraining; Firebase for auth and storage.

Challenges we ran into

Wiring the “approve → retrain” loop without blocking the UI; keeping inference and training in sync; and designing a simple approval flow so dentists could correct and approve per-tooth without extra clutter. We were able to finally fix it!!

Accomplishments we're proud of

End-to-end feedback loop (approve → queue → retrain); doctor-in-the-loop so the model improves from real corrections; and a clean viewer with layers, findings, and a visible “model status” so practices see when the AI last improved.

What we learned

Making AI useful in clinics is less about a single model and more about workflows that capture expert feedback and turn it into better models—and that UX for “approve/correct” is as important as the model itself.

What's next for DentalAI

Support for more conditions and imaging types; export/reports for compliance; optional sharing of anonymized, approved data across practices so the model improves faster for everyone.

Built With

  • axiosnode.js-express-5-firebase-admin-multer-(file-uploads)-pdfkit-(pdfs)-axios
  • cors
  • css
  • fiber
  • firebase
  • form
  • form-datafastapi-uvicorn-(asgi-server)-pytorch-ultralytics-(yolo)-pillow
  • framer
  • hook
  • javascript
  • konva
  • motion
  • numpy-python-dotenv
  • python
  • radix
  • react
  • react-konva
  • router
  • shadcn/ui
  • tailwind
  • three
  • three.js
  • typescript
  • vite
  • zod
  • zustand
Share this project:

Updates