Designing a Restoration: Free and Open Source

P

patmo141

Active Member
Sponsors
Full Member
Messages
436
Reaction score
56
This is a spinoff of the "Free .stl viewer" thread which you can find here

http://dentallabnetwork.com/forums/f33/free-stl-viewer-4988/

In this thread, I will be documenting steps and experiments in the process of attempting to design a final restoration which can actually be milled/printed but only using freely available software.

I also hope to illicit some input/criticisms/ideas etc from anyone interested as the process moves along.

If the goal is ever reached, I will be compiling all of the important stuff from this "development" thread into a "how to."

goodbye free time,

-Patrick
 
Last edited:
Mark Jackson

Mark Jackson

New Member
Messages
1,908
Reaction score
13
This is a spinoff of the "Free .stl viewer" thread which you can find here

http://dentallabnetwork.com/forums/f33/free-stl-viewer-4988/

In this thread, I will be documenting steps and experiments in the process of attempting to design a final restoration which can actually be milled/printed but only using freely available software.

I also hope to illicit some input/criticisms/ideas etc from anyone interested as the process moves along.

If the goal is ever reached, I will be compiling all of the important stuff from this "development" thread into a "how to."

goodbye free time,

-Patrick

Just curious, and I'm NOT a computer guy by any stretch of the imagination, but why go to the trouble of getting and using all this free software, when you can buy a scanner and software already designed with the anatomical library and tool cutting paths and everything already inside, and start making money. The scanner comes with the software already in most cases, and includes the technical support and dental specific tolerances and applications.

Just curious what the objective is?
 
P

patmo141

Active Member
Sponsors
Full Member
Messages
436
Reaction score
56
The Necessary Tools

For this I will be using 2 main pieces of software.

Blender blender.org - Home

Pros
-free
-open source
-multi platform
-immense user community and tutorials
-powerful sculpting tools
-open API and python scripting (later for automation of steps!)
-powerful game/physics engine (later implementations of virtual articulation and collision detection)
-powerful rendering (for life like renders of proposed restorations)

Cons
-Awkward interface for some
-poor NURBS support
-lacking in some standard CAD tools
-no absolute scale


Meshlab MeshLab

Pros

-free
-open source
-multi platform
-powerful analysis tools
-powerful cleaning and repairing tools

Cons
-TBA...this is a newer arrow in the quiver
 
P

patmo141

Active Member
Sponsors
Full Member
Messages
436
Reaction score
56
Prerequisites

This will get edited a lot over time....for now it's just a concept list and a link dump for references for anyone wanting to following along.


Various Sculpting tools in Blender

  1. YouTube - Blender Sculpting Tutorial -- Sculpting Tools Part 1
    blender.org - Multires
    YouTube - Blender Terrain & Landscapes Tutorial (proportional edit fall-off)
    YouTube - Blender 2.5 - Metaball Modeling
    YouTube - Blender Tut 16: Meta modeling (character modeling)

ambient occlusion
self intersecting faces
non manifold meshes
subdivision
texuring
stl file format
edge loops
point cloud
density functions
confluence
cement gap
edge detection
decimation
precision vs. accuracy
collision detection
 
P

patmo141

Active Member
Sponsors
Full Member
Messages
436
Reaction score
56
Just curious, and I'm NOT a computer guy by any stretch of the imagination, but why go to the trouble of getting and using all this free software, when you can buy a scanner and software already designed with the anatomical library and tool cutting paths and everything already inside, and start making money. The scanner comes with the software already in most cases, and includes the technical support and dental specific tolerances and applications.

Just curious what the objective is?

1. For fun
2. As what is freely available become more robust and complex, it puts pressure on the private sector to innovate. I'm not saying I could develop anything that might threaten any of these bigs companies, but just on principle.
3. Why's it always gotta be about money? :D
4. Sometimes, while reinventing the wheel, you learn a lot about the wheel even if don't roll anywhere for a while.
 
Last edited:
Mark Jackson

Mark Jackson

New Member
Messages
1,908
Reaction score
13
1. For fun
2. As what is freely available become more robust and complex, it puts pressure on the private sector to innovate. I'm not saying I could develop anything that might threaten any of these bigs companies, but just on principle.
3. Why's it always gotta be about money? :D
4. Sometimes, while reinventing the wheel, you learn a lot about the wheel even if don't roll anywhere for a while.

Good enough answer for me. I'm way too ADD to stay on task with that kind of stuff.
 
P

patmo141

Active Member
Sponsors
Full Member
Messages
436
Reaction score
56
Select Visible

My next few posts are going to be primarily about methods of finding margins. Probably the most difficult yet most important step. Might as well get it out of the way. Smooth sailing after that

Line of Sight:

If I look straight down the axis of insertion on a well prepped tooth (for cad/cam),I should be able to see the entire margin very distinctly assuming no feather edges. If your model is a die which has been ditched, the margin will be the most peripheral thing you see. In Meshlab, there is an option "select visible" where you view an object, and it selects all the vertices it can see. (pictures attached) If the model has been ditched for you (like the one Scott gave me) or if you have prepped past the height of contour so that the tooth is undercut apical to the margin, you could theoretically get the whole prep surface in one step (undercuts will be left out!). But, this is really cheating since Scott's software found the margin first. While it could work with a non pre ditched prep, what if axis of insertion is different than long axis or we are above the height of contour for an onlay...this method is going to fail. Also, the "texture (noise)" of the model hides vertices on faces that are close to parallel w/ the line of sight. Not a huge deal, but still, this is not a very robust method.
Untitled picture.jpg visible_selected_offaxis.jpg
 
P

patmo141

Active Member
Sponsors
Full Member
Messages
436
Reaction score
56
Crease and Curvature

Next idea.....the kavo margin should be the sharpest line angle anywhere nearby unless you want a cracked tooth. This should give us a nice way to find the margin mathematically (meaning someone else probably has thought of that and there are existing tools! Indeed, MeshLab has some filters for this...I don't truly understand them all). So, all we have to do is look for sharp curvatures and this should indicate our margin. Turns out, curvature is a nice "continuous" thing and when you get to discrete meshes, it becomes different (difficult). One thing we can calculate easily is the angle between faces. Eureka! I told Meshlab to select all edges with faces whose normals were further further than 90 degrees apart. When I did this, it selected NO EDGES! not one! Then i realized, the faces are on the order of microns apart. If your surface is turning 90degrees over the course of a few microns, that would be intense curvature. So, how "sharp" something looks depends on how zoomed you are, or how big of "steps" the surface takes whilst turning through a certain angle. After playing aorund, I found that the margin had "creases" around 30 degrees. Unfortunately, some of the bumpy structure of the tooth also has faces which qualified as a "crease." Not a huge deal, but that just means another "cleaning" step later. I'm still wanting something better...
filter by crease.jpg
 
P

patmo141

Active Member
Sponsors
Full Member
Messages
436
Reaction score
56
Snapping and Retopology

So, I did my best in MeshLab, and couldn't get what I wanted just yet (a set of vertices which I could reliably know was the margin). Blender has two neat tools which show potential but I couldnt get those dialed in either. One is a simple snapping tool which will allow me to snap a vertex in one mesh, to a face, edge or vertex of another. This is really nice because it means that the resolutions of the meshes don't have to be equal. This works very well, but if we want to match the WHOLE margin at a level of detail which is clinically acceptable, then this is going to take a load of time (by hand) or require some programming to automate which is out of my league. Determined not to go to bed without a crown on a prep, I did do a margin by hand (30 or so vertices) just to have some results. I also figured I should make a little more eye candy to justify today's frustration so I put a mirror in there.

The other method is essentially the same as the "select visible" in MeshLab. It is called "retopology." the "retopo" tool will project one mesh onto another (like draping a sheet over an object). How fine the sheet is will determing how much detail. So, if I made a mesh with high resolution, looked down on the prep, Blender would project all the points down onto it (see image). This allows us to essentially take an impression at any resolution rather easily but then we are limited by the same setbacks as before. Furthermore, we are limited by the grid we project (thread count of the sheet) which can be a benefit or a setback. I'm still wanting something more organic, with less brute force, and less steps....
teeth_with_mirror.jpg snap to margins.jpg prep_crease detected margin_ retopo surface.jpg
 
P

patmo141

Active Member
Sponsors
Full Member
Messages
436
Reaction score
56
Ridge Walking!!

In my quest for an algorithm to find margins quicky, accurately, etc, I stumbled upon this! This guy at UNC-Charlotte does research with 3d image scanning of architecture and they have made an algorithm which walks along ridges and valleys. Check out the image of it sectioning the rabbit below. This would be perfect for margin detection.

(paper)
http://www.visionlab.uncc.edu/downloads/arwillis/publications/2010_3DPVT_RidgeWalking.pdf

As it turns out, my roommate's mom works in the UNC-Charlotte computer and electrical engineering dept and knows the guy! I think I'll shoot him an email to see if it would be feasible to get a meshlab module for their algorithm.

-Patrick
ridge walking.png
 
DMC

DMC

Banned
Messages
6,378
Reaction score
260
This is most excellent! I wish I had more time to play with ya.

I love that mirror!
 
P

patmo141

Active Member
Sponsors
Full Member
Messages
436
Reaction score
56
progress notes.

these are just notes for me to go back to later... #1 is the only one worth reading/watching.


1. How can we artistically "stain and glaze" or "characterize" a digital model for realistic rendering? This could be one way to do it quickly (see video)! Just imagine that instead of a monkey, it's a tooth and that instead of "fur" for a texture, you have a library of shade guides, stains etc.

VPaint source image screencast on Vimeo

2. Contacts using retopology tool.

-select area on restoration that you want to be the contact. "project" those vertices onto the neighboring teeth thereby establishing contact. Make those vertices stationary so they are not modifiable by later sculpting....feather adjacent surfaces into it.

3. Cut back and layer.....probably over kill for a render but it can definitely handle translucencies and things like that. Definitely not out of the question.

method.

-establish final contours...save
-duplicate the model and cut back
-subtract cut back from model (to create nested shells)
-repate for as many layers as you want
-apply shades, translucenies, textures etc.
 
P

patmo141

Active Member
Sponsors
Full Member
Messages
436
Reaction score
56
Virtual Articulator....Step One

Update (look at attached image)....while I'm waiting for the UNC-Charlotte people to have a go at a few teeth with their segmentation algorithm (we can't seem to get our softwares to play nice),I whipped this up at the suggestion of a fellow forum member.

So Far....
adjustable condylar inclination.
adjustable inter condylar distance
animations of all movements from any viewing angle
1blender unit = 1mm which corresponds to 1/10th micron precision (way more than the models we could ever put into it)

i can make excursions, protrusion etc happen, it's just not elegant yet

feature requests anyone?

E.g. in my perfect world, I would be able to ________________
virtual articulator set up.jpg
 
P

patmo141

Active Member
Sponsors
Full Member
Messages
436
Reaction score
56
Rendered "Waxup"

Playing around with texturing the models to look realistic. Can you imagine a fully rendered treatment plan/ case presentation? Anyone have a nice high quality (5 megapixels ish) set of images of a molar (occlusal, buccal and lingual views?) that I could use? I tried to grab a few from some of the threads here but I need all three views of the tooth to get it to look really good from all angles.

-Patrick
rendered_waxup_on_Cone_Beam.jpg
 
BDDS

BDDS

Active Member
Full Member
Messages
145
Reaction score
31
Man ... thats like designing in high definition ... pretty sweet
 
P

patmo141

Active Member
Sponsors
Full Member
Messages
436
Reaction score
56
Done! There are a few parts here where I need to write a few scripts to automate the menial tasks (eg, snapping to the margin) but overall I think it's a pretty nice work flow for free :)

It's a little under 10 minutes long. I will add commentary so you know what I'm doing but I wanted to get this up and out!

edit: Upload taking forever. I'll post the link in the morning.
 
Top Bottom