Compare upper jaw teeth before and after orthodontic treatment

how to overlap 2 volumes to observe changes using fixed landmarks? (the two volumes being 3d stl files of upper jaw teeth before and after orthodontic treatment)

Operating system:Windows 10
Slicer version:4.13
Expected behavior:
Actual behavior:

Before you can compare two models (STL files) you need spatially align them using registration. You can find a list of recommended modules here. You may also find useful information in previous discussion of this topic on this forum.

1 Like

Thanks for the reply. I have superimposed the two files after getting them in spatial alignment. Now i want to draw a line over the mid palatine raphe, and measure the distance between the before and after position of a point on the model (eg- cusp tip of canine) on that line. Basically i want to measure the movement of the cusp tip in one 1 dimension viz the line over the mid palatine raphe

. Thanks

You can compute distance of points from a line by copy-pasting this code snippet in the script repository into the Python console.

I want to convert my surface scan file into a 2D file. and then do measurements on the same. Kindly advise. Thanks

Do you mean you would like to see a cross-section if the surface mesh?

To achieve this:

  • Show the model in slice views: in data module, right-click on the eye icon of the model and check “2D visibility”
  • Position the slice view where you want:

In the attached image, I want to make sure that the two red lines are parallel spatially. And then i want to measure the distance between the two green points i.e. length of the green line. (points where red lines intersect the black line)
The parallelism has to be accurate.

How should I proceed?

Black line: mid palatine Raphe
Red line: origin- cusp tip of canine extended to the black line
2nd red line: origin: cusp tip of canine and extended parallel to the 1st red line across the black line.


There are several interpretations of what you describe:

  • A. project the the two cusp points and the mid palatine raphe line to the horizontal plane and perform the measurements in that plane
  • B. project the two cusp points to the sagittal plane that is fit to the mid palatine raphe, and measure distance between these projected points
  • C. project the two cusp points to the mid palatine raphe line and measure the distances between these projected points (this will be a 3D distance measurement but the lines will only be parallel in a horizontal view, but may not be exactly parallel in 3D)

All of these are equally easy to compute, using basic coordinate geometry from the point and line endpoint coordinates. You can look up the formulae on Wikipedia and find their Python implementation on StackOverflow, but if you have trouble putting this all together then let us know which option you want to implement and we can look up the relevant code snippet for you.

’ project the two cusp points to the sagittal plane that is fit to the mid palatine raphe, and measure distance between these projected points’ would be the most appropriate methodology for me to get the measurements I want to make.

One small refinement I would want in this would be to differentiate the magnitude of movement in the two axis of the sagittal plane respectively.

Help is much appreciated.
Dr. Nikhil Jain

In this case, the easiest is to probably rotate the model so that it coincides with the RAS axes (mid palatine raphe line will be exactly in the sagittal plane, and an additional line will define the horizontal direction). Then you can simply ignore the first coordinate value of the point and the differences in the second and third coordinate contain exactly the magnitude of movement in the anterior-posterior and inferior-superior directions.

The simplest way to compute this rotation transform without any Python scripting is to use the ACPC module.


The methodology would be perfect for me. Although, since this is a surface only file, I’m not sure how it will work. Also, I could not locate the ACPC module. Tried looking for it in the extensions page on the SPKC site but I couldn’t find it. How should I proceed? Is it possible to connect on Anydesk so you can show me how it’s supposed to be done and I can do it for all the scans I have. Once again, help is much appreciated.

Dr. Nikhil Jain

“ACPC transform” module is part of Slicer core. Hit Ctrl-F to open it using the module finder.

You can pick points on surface the same way as you pick points in slice views.

Unless somebody volunteers to do it earlier, you can join our next weekly meeting to get help with screen sharing.