3D Printing a Coccolithophore from FIB-SEM Data


The aim of this study was to isolate a single coccolithophore from a 3D data set created using a FIB-SEM. This would enable physical 3D visualisation of a single coccolithophore, showing the interlocking of the individual coccoliths. Once successful, this workflow could be applied to a multitude of different 3D datasets enabling the physical visualistion of nano/micro-scaled objects.

N.B. 3 free softwares were used for this study: ORS Dragonfly, Autodesk Meshmixer and Ultimaker Cura

Part 1: 

Identifying the feature and putting the data through filters

The first thing to do was to load the 3D dataset into ORS Dragonfly and identify the feature to be 3D printed. For this 3D dataset of coccolithophores the top coccolithophore circled was chosen, due to being a whole coccolithophore and not having many neighbours which will make it easier to isolate. 

Before the feature could start being isolated the data needed to be cleaned by passing it through image filters. The first filter was a polynomial filter to reduce any shadowing effects, the second filter was a gaussian filter to smooth out the data and the final filter was a segmentation filter called mini-batch K-means to convert the dataset to binary.

N.B. the K-means segmentation filter may not be useful for all datasets but for datasets with similar greyscaling to this dataset, it would be perfect. For other datasets the data will need to be segmented using other means.

Part 2:

Extracting the coccolithophores from the data

Once the data has finished going through the filters, it will be binary with the coccolithophores being white (1) and the rest of the data being black (0). However, the data will still be as one, meaning the coccolithophores need to be extracted to exist by themselves without the surrounding (black) data. To do this a new region of interest (ROI) needs to be created. For this data, this will be done by clicking on segment and segmenting the data to only show the coccolithophores (this will be coloured to show it is segmented). Once done it can be added to a new ROI. The new ROI now only has data of the coccolithophores and nothing else.

N.B. data with multiple greyscales can still be segmented to only show certain parts as a scale bar is used to highlight the desired greyscale wanted for the ROI.

Part 3:

Isolating your feature in the ROI from the rest of the data

To do this a multi-ROI will need to be created from the previous ROI. This gives each isolated feature it's own colour; effectively giving each isolated feature it's own ROI. However, if features are touching each other then they will appear connected and will be the same colour. To prevent this the targeted feature will need to be checked for connections to any other feature, even if it's only 1 pixel. Once the connection has been identified then the ROI pixels can be removed using ROI painter. Once all connections have been removed the targeted feature will be a completely different colour to the rest of the data, thus showing that it has been successfully isolated. However, the multi-ROI dataset is still a single dataset and needs to be split to allow the targeted feature to exist by itself.

Part 4:

Getting the target feature to exist by itself

Prior to isolating the data of the target feature the data should be cropped to fit just the target feature. Once cropped, then the multi-ROI can be split into its individual ROIs by extracting the ROIs. This creates datasets for each individual ROI present in the multi-ROI. Prior to identifying the correct ROI, hide the newly cropped data as this aid in spotting the correct ROI. To find the correct ROI from the extracted ROI, scroll down the extracted ROIs until you get to the colour that is close to the colour shown in the multi-ROI, then go through each colour individually by showing and hiding it until the target feature appears. Once found, all of the other extracted ROIs can be deleted. The target feature now exists by itself with no other data.

Part 5:

Creating a mesh

The targeted feature can now be converted into a mesh. This is done by first creating a multi-ROI of this extracted ROI, as done previously, then subsequently creating a mesh from the new multi-ROI. Once created the mesh can be visualised in the software and smooth to improve the mesh as well as improving the final 3D printed feature. Once finished the mesh can be exported and saved as your desired file type.

N.B. the default file type when exporting a mesh in Dragonfly is .STL.

Part 6:

Checking for mesh errors, repairing and reducing

Import the new mesh file into Autodesk Meshmixer and click on analysis and then inspect. This will check for any errors in the mesh, as too many will cause the 3D print software to prevent the printing of the feature. Once the errors have been identified they can then be repaired. Once repaired the mesh will need to be reduced for the 3D print software to be able to handle it. Once reduced the new mesh can be exported as a new .STL file.

N.B. not all of the errors will be repaired, but that's ok.

Part 7:

Printing the feature

Import the newly repaired and reduced mesh into Ultimake Cura (or any other 3D printing software) and scale the model to an appropriate size, for this print the model was scaled to 10,000x its original size, making the print size to be ~8cm. Select the desired settings for printing and click on slice. Once done, the model can be printed. For this print, an infill density of 100% was used along with printing support (PVA) everywhere with an overhang angle of 85 degrees. This enabled the feature to be printed successfully as some areas of the print were "floating". PVA was used as a support as it will easily dissolve in warm water when left for a period of time.