Inspiration
As tinkerers and hobbyists, we love 3D printing. However, 3D printing can be unreliable. If a print fails, the printer can waste filament and damage itself. In the past, hobbyists would check a print every 10 minutes, wasting time and creating unneeded stress. Even if a print was successful, the finished product may have one of about twenty types of surface defects.
Many students and professionals are involved in the 3D printing process outlined above. According to Ernst and Young, 3D printing is a $15.4 billion market with a forecasted annual growth rate of 24%. As engineers, we wanted to tackle this problem by automating the defect detection and troubleshooting process.
What it does
During the printing process, our machine learning algorithm will watch the print for any errors. If an error occurs, then the print is aborted. Even if a print is successful, our machine learning algorithm can identify any surface defects and suggest steps to fix the issue.
How we built it
We used a machine learning object detection system (YOLO v3) which was served up with Flask to upload and scan the image locally.
Challenges we ran into
Identifying defects mid-print and post-print cannot be done with traditional programming. Every defect is different, so we had to choose an approach that combines machine learning with computer vision. However, no dataset for 3D printing defects existed.
Accomplishments that we're proud of
We compiled a small dataset of 3D printing errors, which successfully trained the model to an F1 score of 0.92. At the same time, the algorithm has a low inference time of 6 ms on accelerated hardware and 3 seconds on unaccelerated hardware.
What we learned
We learned to compile, clean, and augment small datasets. We also successfully learned and implemented Flask with python to create the user interface of our app. Nobody on our team had experience with Flask or the Jinja2 templating engine previously.
What's next for 3D-Watch
Introducing webcam integration, scanning the object for surface defects with linking to troubleshooting solutions, remote notification of problems and aborting failed prints to save resources, and finally combining all of these features into an easy to use mobile app.

Log in or sign up for Devpost to join the conversation.