An In-Depth Look at Model Repairing
This is a video I recorded of my automatic repairing algorithm.
Why model repairing matters
Failed prints are a common issue when you finally come to print the 3D models you’ve created. One of the main reasons why printing failed is that many 3D models have defects that make them unsuitable for printing. But where do these defects come from?
To answer this question, we need to that know that the vast majority of today’s 3D models originate from one of two common data sources: from digitization of real-world objects or phenomena, or from tessellation of virtual, synthetic data typically produced in a computer [1].
Digitized models: Digitizing a real-world 3D object amounts to capturing several views of the object which are eventually aligned and merged into a single model .While this is sufficient for mere visualization purposes, at this stage polygon meshes may contain degenerate elements, overlapping or self-intersecting parts, surface holes, and a number of other flaws.
Synthetic models: If an engineer want to print a CAD model, tessellation algorithms need to be used for converting CAD files to triangle meshes. Unfortunately, tessellation algorithms typically create a separate mesh per patch and, though each such mesh might respect all the requirements, neighboring patches are often not continuously and consistently connected and, in some cases, they overlap or intersect.
Besides, we need to mention that some models may visually look meaningful but have lots of defects inside them and it is very hard to find with eyes.
According to the above reasons, we need to develop a model repair algorithm that can handle all these kinds of defects.
How it works
Based on the above analysis, it is not hard to find that there are so many different kinds of defects. Adjusting STL files manually or fix all these defects one by one is a time-consuming process. Besides, users may not have the necessary skills to handle all these problems by themselves. So, we strongly believed that automatic methods are even more important. In view of this, we optimized our automatic repair workflow recently. In the remainder of this article, we will talk about the tests we have done and show the test results to the readers.
The test case and results
Thingi10k [2] is a new dataset of 10,000 models collected from an online 3D printing model-sharing database. This dataset represents a more concise summary of real-world models used for 3D printing compared to existing datasets. We downloaded 4447 not solid models which have all kinds of defects (e.g., self-intersections, holes, degeneracies, noisy shells, not orientable, non-manifoldness, etc.) through the online query interface. We tested our algorithm over these 4447 not solid models in Thingi10k dataset. The results showed that 99% of the 4447 not solid models can be successfully fixed by our automatic repair algorithm. The following figures shows some examples of the automatic repair algorithm.
Beyond the Thingi10k dataset, we also obtained quite a large number of teeth models and CAD models for 3D printing from our customers. The following figures shows an example of the automatic repair algorithm tested on teeth.
We confess here that our automatic repair algorithm can not repair all kinds of models. For very large 3D models, automatic repair may fail because of your computer’s memory limitation. For 3D models with large holes, our automatic repair algorithm may cause distortion. More generally, model repair problem is ill-posed, sometimes the only right answer is only in the designer’s mind and we could not guess. We welcome you to apply to try our software through our website. If you find some 3D models that our software can’t fix, you could send them to us by email. All data will be kept confidential and won’t be commercial used. We will try our best to fix them and send to you back.
Acknowledgments
We thank Thingi10K for sharing the 3D models. We are grateful to EPlus, SHINING 3D,HeyGears for sharing the teeth models, TPM3D and RayShape for other kinds of 3D models.
References
[1] Marco Attene, Marcel Campen, and Leif Kobbelt. 2013. Polygon Mesh Repairing: An Application Perspective. ACM Comput. Surv. 45, 2, Article 15 (March 2013)
[2] Qingnan Zhou and Alec Jacobson. 2016. Thingi10K: A Dataset of 10,000 3D-Printing Models, https://ten-thousand-models.appspot.com. Technical Report. New York University.