Dentrix Dentrix

Dentrix

Dentrix is a dental CAD desktop application, built using C++, Python, and Rust.

It was my capstone project, where I was part of the AI team — working on data preparation and teeth segmentation — and also part of the Computational Geometry (CG) team, focusing on mesh reconstruction and arch alignment.

For the full version of my work, you can view this PDF.

AI

Tools used: Pytorch, Sci-Kit Image, Sci-Kit Learn, Pandas, Numpy, MatplotLib, ONNX

Dataset Preparation

The dataset used is Teeth3DS, first introduced at MICCAI 2022. It was developed through a collaboration between Udini (France), the Inria Grenoble Morpheo team (France), and the Digital Research Center of Sfax (Tunisia).

I performed extensive statistical and geometrical analysis on the dataset with full EDA.

The most important insights were:

  • The kurtosis of the Z-axis is 3.9, indicating synthetic characteristics. Some vertices can be ignored as they represent cast depth.
  • The median number of teeth vertices is approximately 24K points, which was used for downsampling the meshes into point clouds. This left room for augmentation in 50% of the training data.
  • All data points are non-watertight and non-manifold.

Models Implemented

Initially, I implemented MeshCNN to avoid sampling overhead. However, it failed since it requires manifold data.

I then worked with point clouds and implemented PointNet, which showed promising results but suffered from class imbalance.

Key Results

  • Reduced memory usage from 21 GB and 90 min/epoch (original, with online sampling) to:
    • 10 GB, with a 52.4% memory reduction, same epoch time (90 min) but 15 min for cached epochs, using online sampling with caching of the next 5 epochs.
    • 6 GB, with a 71% memory reduction and 12 min/epoch, by using the median number of vertices as a sampling threshold and performing offline sampling before training.
  • Achieved 90.8% Accuracy and nearly 80% IoU on the test set.

Plots

Accuracy
IoU

Results

Lower Prediction
Upper Prediction

As seen above, due to class imbalance, the gums were predicted almost perfectly. However, the teeth occasionally had regions misclassified as gum.

Computational Geometry

Teeth alignment is crucial for understanding the context of a prepared tooth, ensuring optimal bite strength and accurate jaw closure — making it ready for subsequent dental procedures.

Tools used: C++, PMP library

Algorithm

Alignment Algorithm

Results

Before Alignment

Before Alignment

After Alignment

After Alignment

← Back to projects