Automated recognition and correction of warp

Additive Manufacturing

Additive Manufacturing


May 25, 2023

3D printing builds parts by depositing layers of material on top of each other. However, this process can sometimes cause the objects to deform as they cool down. This deformation is known as warp. Warp can affect the shape and quality of the objects, and it is difficult to fix or avoid because it develops gradually, and it can take a while for it to become visible. We have developed a new method to detect and correct warp using an AI-based system. This system analyses images of 3D printed objects and identifies if they have warped or not. It also estimates how severe the warp is and adjusts the printing settings accordingly to either minimise further warp in that print or to prevent it from occurring in future prints.

First, we needed to build a dataset of images of 3D printed parts that feature warp, which our system could use to learn what warp looks like. This dataset contained different shapes, materials and colours for the objects. It ultimately consisted of over 10,000 images, about 1,400 of which featured warp. The areas of the image featuring warp were manually marked on the images with boxes. Our dataset contained almost 2,000 boxes featuring warp in total. 

Fig. 1: Warp severity calibration using custom metrics extracted from warp localisations in images.

We used a type of AI model called YOLOv3 to find and locate warp in the images of the 3D printing process. This model is fast and accurate, and we trained it on our labelled images with some modifications to enable it to recognise warp. In testing, our model was able to detect warp very well (more details of how this is measured in the full paper!). We also wanted to know how bad the warp is, not just if it is there or not. To estimate how bad the warping is in any image, we needed a factor that would reliably predict how bad the warping is. It turned out that the temperature of the base plate affects how much warp happens, with lower temperatures causing more warp (fig. 1). This makes sense, as the lower the base temperature the less the part adheres to it, and so the easier it is for the part to lift off as it contracts during cooling. So, we printed some simple shapes with different temperatures and took images of them. Using this set of images, we came up with five measures that can tell us how bad the warp is in each images. These measures are: the size of the warped area, the number of warped areas, how confident the model is about the presence of warping, how much warping is present inside the warped area, and how wide or tall the warp area is. For each image and each print these measures were calculated and it turned out that they could predict how severe warp is in each print very well. It was also clear that these measures matched our expectations on the relationship between temperature and warp severity: lower temperatures had higher measures, meaning more warp, and higher temperatures had lower measures, meaning less warp.

Fig. 2: Reduction of warp during printing using metrics created from detected features over time

Our system corrects warp in two different ways. The first way is to change some printing settings while the object is being printed, if the warping is not so bad and the print can still be recovered. The second way is to change more settings before the object is printed, to prevent warp from happening in the first place. This second method however causes the original part to be lost, and so it would be best to avoid it if possible. The system can take pictures of the object every 30 seconds and send them to a computer. The computer uses our AI model to find warp in the pictures and calculate our warping measures. The server compares our measures to some limits that we set based on our previous experiments. These limits tell us how bad the warp is.

If any of our warp measures suggest that the warping is significant, the server sends a message to the printer to change some settings. These settings are: the temperature of the base plate, the speed of the printer, and the fan that cools down the object. We found that changing these settings can help reduce warp while the object is being printed. We show some examples of how this works in Fig. 2. We can see that the objects with the correction have less warp than the ones without it.

Fig. 3: Automated slicing and printing parameter correction to eliminate warp from future prints.

If the warping is excessive and the print cannot be recovered, then it is probably best to scrap the print and try again. Our AI model and warping measures were also able to correct warp by changing settings before the object is printed, to stop warp from happening at all. In a similar way to how the system tries to save a print, the server sends a message to the printer to change more settings for the next print. These settings are: the temperature of the base plate, the speed of the printer, the fan that cools down the object, the density of the material inside the object, the distance between the nozzle and the base plate, the width of the base layer, and the temperature of the nozzle for the first layer. We found that changing these settings can help prevent warp from happening in future prints. As can be seen in fig. 3, the objects with the correction have no warp or very little warp compared to the ones without it. Overall, this system could help save time, money, and materials, and also make stronger parts by using more material without causing warp. Due the diverse training dataset and relative correction approach, we think the system could even be applied to unseen materials and printers.

Further Reading


Douglas A. J. Brion

Sebastian W. Pattinson


This work was been funded by the Engineering and Physical Sciences Research Council, UK PhD. Studentship EP/N509620/1 to D.A.J.B., Royal Society award RGS/R2/192433 to S.W.P., Academy of Medical Sciences award SBF005/1014 to S.W.P., Engineering and Physical Sciences Research Council award EP/V062123/1 to S.W.P. and an Isaac Newton Trust award to S.W.P.