RU
All work

MedTech · 3D-сервис

BiteCheck

A web service that automatically aligns two independent jaw STL scans, validates the bite quality and produces one combined 3D file.

My roleArchitecture, algorithms, backend, frontend and deployment
Format3D scan processing web service
Live projectVisit website
BiteCheck — project screen 1
BiteCheck — project screen 2
BiteCheck — project screen 3

Deliverables

Two independent 3D scans become a verifiable result — or an honest signal that more evidence is required.

  • Upper and lower jaw STL upload
  • Optional bite scan or reference pose
  • Fast-path processing in 2–15 seconds
  • Multistart, 6-DOF optimisation and rescue mode
  • Anatomical contact regions along the dental arch
  • Protection of valid poses and bilateral contact
  • Confirmed, manual review and not confirmed states
  • Asynchronous jobs, polling and combined.stl export
  • 69+ automated tests and clinical-case regression

Challenge

Upper and lower jaws are scanned independently and often arrive in unrelated coordinate systems. The service had to find a clinically plausible bite automatically, avoid mistaking a neat geometric guess for a reliable result, and handle cases where two STL files objectively provide insufficient evidence.

Solution

I built a multi-stage pipeline: a fast path for near-correct inputs, multistart with eight or more hypotheses, anatomical regions following the U-shaped dental arch, 6-DOF optimisation, bilateral smart release and a rescue path for strongly mismatched coordinates. Protected input prevents the optimiser from destroying an already good contact, while metrics drive three honest outcome states.

Outcome

The system reached production. Most synthetic and real cases are solved automatically: fast cases take 2–15 seconds, complex ones 1–7 minutes, with sub-millimetre agreement against clinician-approved references. Regression covers 32 synthetic scenarios, real clinical cases and 69+ automated tests; insufficient evidence returns manual review or not confirmed instead of a potentially incorrect file.

Tools and integrations

PythonFastAPINumPySciPyOpen3DtrimeshYandex CloudNginxsystemdpytestMeshLab

Have a similar project?

Discuss a project