Tooth Surface Construction by Trivariate Splines

In this page, I explain how to use trivariate splines for constructing a smooth interpolatory spline for a given data set. The computational method was explained in my paper, where many academic examples were constructed.  However, to deal with tooth surface data sets, real liife data sets, we have to modify the ways for choosing points Vb outside the given data set, adding a few more points Ve to the given data set V, also finding a good way to choose points Vc in the center region of the tooth surface. In addition, we look for automatically finding these points Vb, Vc, Ve so that we can have our code working for all the tooth data sets without human intervene.  We used the tooth data sets  from Dr. Tingran Gao, a former Ph.D. student graduated from Duke University, 2015 under Dr. Ingrid Daubechies' supervision.  Let me show some computational results first before explaining our method.   

The following are some examples. 

Example 1.  Let me first show ten tooth surfaces. They are generated by using trivariate splines of degree 8 and C^1.  

Saimiri1Saimiri2Saimiri3Saimiri4Saimiri5Saimiri5Saimiri6Saimiri7Saimiri8Saimiri8

One question is that if there are multiple isosurfaces inside the above surfaces.  We adopted a transparent style to show the surface below.   

Example 2.  In order to see the smooth surfaces better, I used trivariate spline functions of degree 9 and C^2 smoothness over tetrahedral partition based on equally-spaced points inside the bounding box of the data points. I used MATLAB transparency method to show the surfaces.   The following  surfaces are the surface by using splines of C^2 smooth and degree 9. We can see that they are very clean smooth tooth surfaces.  So far ten tooth surfaces from the spider monkey Saimiri are shown below. More can be found in examples later.   

Saimiri Tooth Example 1Saimiri Tooth Example 2Saimiri Tooth Example 3Saimiri Tooth Example 4Saimiri Tooth Example 5

 

Saimiri Tooth Example 6Saimiri Tooth Example 7Saimiri Tooth Example 8Saimiri Tooth Example 9Saimiri Tooth Example 10

 

Example 3.  

Next we consider the tooth surfaces from Alouatta, a genus of howler monkeys,.

Alouatta1Alouatta2

 

Alouatta4Alouatta5Alouatta6Alouatta7Alouatta8Alouatta9Alouatta10

Example 4.  The following are Ateles usually called spider monkeys. Their tooth surfaces are as follows. 

Ateles1Ateles2Ateles3Ateles4Ateles5Ateles6Ateles7Ateles8Ateles9Ateles10

Example 5.  Next we show the tooth surfaces of Brachyteles, called New World monkeys.  

Brachyteles1Brachyteles2Brachyteles3Brachyteles4Brachyteles5Brachyteles6Brachyteles6Brachyteles7Brachyteles8Brachyteles9

Example 6.  Finally, we consider the tooth data sets from Callicebus, titi monkeys.  Our method produces smooth data fitting surfaces with additional isosurface underneath the tooth surface for some cases. More precisely, Case 3, Case 6, Case 9 and Case 10 contain additional isosurfaces.   We have to manually adjust auxiliary points V_c. Let us see the results without manual intervene. That is, the following surfaces were produced based on the same MATLAB code as the surfaces in Examples 2--5.   

 

Callicebus1Callicebus2Callicebus3Callicebus4Callicebus5Callicebus6Callicebus6Callicebus7Callicebus10Callicebus9

 

Our computational method can be outlined as follows. 

Mainly, we look for a trivariate spline $S$ which interpolates $1$ at the given data points, interpolates $0$ on the auxiliary points on the bounding box, and interpolates $2$ on the points near the center of the given data set. The spline S is also a minimization of the energy function and satisfies C^1 smoothness condition.  In general, this requires the spline is of degree 9. Due to a equally spaced tetrahedral partition of the bounding box of the given data set, the spline space over such a tetrahedralization is large enough when d >=6 and r=1. We can find a spline satisfying the above constraints. These are mathematical heuristic for our computation. We have already implemented trivariate splines 20 years ago. See our paper [Awanou, Lai,  Wenston,2006].  In addition, my former Ph.D. students Clayton Mersmann and Yidong Xu had also implemented trivariate splines again to speed up the computation for various computational problems, e.g. numerical solutions of PDEs and data fitting problems.  I simply used their MATLAB codes to do the tooth surface construction with some modifications for convenience and adjusted several critical parameters so that I can generate these surfaces above automatically.  

In addition to this approach, I have also used another approach developed by Dr. Tsung-Wei Hu who is a former Ph.D. student of mine to construct tooth surfaces. See some constructions in the webpage

Note that the bottom part of each tooth surface does not fit the given data well. This is due to the construction of this approach. We are not able to precisely control the boundary of the surface.  More research is underway.