TITLE: 3D Mesh Cleanup Tutorial: Fossil Plant Cupule (Beginner)
AUTHORS: Elizabeth G. Clark, Kelsey M Jenkins, Craig R Brodersen

[DESCRIPTION]
This protocol details 3D mesh cleanup tutorial of fossil plant cupule (Beginner).

[GUIDELINES]
Skills developed: Basic mesh editing 

3D meshes of fossil specimens extracted directly from 3D imaging data often need post-processing to improve usability for paleontological analyses. Here, we present a step-by-step workflow that was used to digitally process a cupule of the plant fossil Petriellaea triangulata (Shi et al. 2021) (3D file download: https://doi.org/10.6084/m9.figshare.21266568). This tutorial uses the opensource mesh editing program Meshlab that can be downloaded at meshlab.net. 

 
When the digitized fossil cupule was first exported as a 3D object file from the 3D processing software (Avizo Lite v. 9.2.0), a number of common issues were evident. The ridges, rough surfaces, and holes present are preservational artifacts and/or a consequence of the digital extraction process. This tutorial will walk through how to fix these issues in Meshlab (Cignoni et al. 2008). Note that this tutorial utilizes Meshlab 2021.10, though other versions will have similar layouts and functions.
 

References

Cignoni, P., Callieri, M., Corsini, M., Dellepiane, M., Ganovelli, F., Ranzuglia, G. 2008. MeshLab: an Open-Source Mesh Processing Tool. Sixth Eurographics Italian Chapter Conference, page 129-136, 2008

Kazhdan, M. and Hoppe, H. 2013. Screened Poisson surface reconstruction. ACM Trans. Graphics, 32(3).

Shi, G., Herrera, F., Herendeen, P. S.,Clark, E. G.,Crane, P. R. 2021.Mesozoic cupules and the origin of the angiosperm second integument. Nature 594, 223-226. 

[STEPS]
SECTION: Part 1: The Meshlab Interface
1. Open Meshlab and import “Cupule before.obj” into Meshlab via File > Import Mesh. Alternatively, drag the file into the project window (the large purple box with the crosshairs) if using Mac.  

  

SECTION: Part 1: The Meshlab Interface
2. The mesh now appears in the project window. You can rotate it by holding left click and dragging the cursor. 
 

  

SECTION: Part 1: The Meshlab Interface
3. Try repositioning the mesh.
 

SECTION: Part 1: The Meshlab Interface
4. Turn the visibility of the object on and off by clicking on the eye icon in the top right menu. 

  

SECTION: Part 1: The Meshlab Interface
5. Zoom in by scrolling with the wheel of a mouse, swiping with two fingers (on a Mac trackpad), or holding down shift and left click (in both Mac and PC) while moving the cursor up and down. 
SECTION: Part 2: Shrinkwrapping the Mesh
6. Create a new, simplified mesh over the surface of the cupule. This is known as “shrinkwrapping.” Shrinkwrapping the mesh smooths the surface and patches holes. Performed by isolating the vertices that make up the external structure of the cupule and using them to make a new mesh layer. 
SECTION: Part 2: Shrinkwrapping the Mesh
7. Click Apply on the pop-up menu. All other settings can remain as default.

 
  

SECTION: Part 2: Shrinkwrapping the Mesh
8. Next, select the dark mesh components by clicking Filters > Selection > Select by Vertex Quality. 

    

SECTION: Part 2: Shrinkwrapping the Mesh
9. This selects mesh components with greyscale values within a set window. Select the darkest values, since these are the components located on the inside of the mesh. 
 
SECTION: Part 2: Shrinkwrapping the Mesh
10. To do this, set the “Min Quality” value to 0. 

  

SECTION: Part 2: Shrinkwrapping the Mesh
12. Zoom in and explore the view of the previewed selection inside the object.

   

SECTION: Part 2: Shrinkwrapping the Mesh
13. Select “Delete Selected Faces and Vertices” on the right of the icon-based menu towards the top of the screen. This will delete the faces and vertices in red selected in the previous step, leaving a shell of the original mesh.

 
   

SECTION: Part 2: Shrinkwrapping the Mesh
14. 

 
 To do this, Right click the mesh in the top menu > Duplicate Current Layer. 

  
SECTION: Part 2: Shrinkwrapping the Mesh
15. 
Click the eye in the top row to hide the original mesh. The eye will appear closed, indicating the layer is not visible. Click the second row to select the new mesh, since any commands performed will be done on the active selection.  

  

SECTION: Part 2: Shrinkwrapping the Mesh
16. To remove all of the faces of the mesh, select Filters > Selection > Select All or press command + shift + A (Mac) or ctrl + shift + A (PC).

  

SECTION: Part 2: Shrinkwrapping the Mesh
17. A pop-up menu will appear. Keep both boxed selected. Select “Apply”.

  

SECTION: Part 2: Shrinkwrapping the Mesh
18. Delete all mesh faces by selecting “delete faces” icon in the icon-based menu: 

 

SECTION: Part 2: Shrinkwrapping the Mesh
19. Next, the outer vertices of the cupule will be used to create a new mesh using a screened Poisson (Kazhdan and Hoppe, 2013).
Go to Filters> Remeshing, Simplification and Reconstruction > Surface Reconstruction: Screened Poisson.

 

SECTION: Part 2: Shrinkwrapping the Mesh
20. Check the “pre-clean” box, which removes any defects in the mesh that would keep the filter from working. 
Click “Apply” in the popup menu. A new layer named “Poisson mesh” will appear in the righthand menu. 
Click the eye of your previous mesh to view the poisson mesh by itself.

  

SECTION: Part 2: Shrinkwrapping the Mesh
21. The “Reconstruction Depth” ranges from 1-12, with default value as 8. To see what different reconstruction depths look like, re-select the second layer in the object list, “Cupule before,” and run the filter again with a reconstruction depth value of 4 and 12. 
 


   
SECTION: Part 2: Shrinkwrapping the Mesh
22. To rename a layer, Right click the layer > Rename Current mesh> rename the mesh > Apply. 


 
SECTION: Part 2: Shrinkwrapping the Mesh
24. 
 
First, apply another poisson remesh on top of the current poisson remesh. This time, set the Reconstruction Depth to 12. (Filters > Remeshing, Simplification and Reconstruction > Surface Reconstruction: Screened Poisson > Reconstruction Depth = 12 > Apply).

   

SECTION: Part 2: Shrinkwrapping the Mesh
25. Next, select Filters > Remeshing, Simplification and Reconstruction > Subdivision Surfaces: Butterfly Subdivision. 
 


  

SECTION: Part 2: Shrinkwrapping the Mesh
26. Once the reconstruction is complete, export the new mesh by selecting File > Export Mesh. 
Select .stl as the file type. 

  
  

SECTION: Part 1: The Meshlab Interface
1.1. Keep the “unify duplicate vertices” box checked. 
 

SECTION: Part 2: Shrinkwrapping the Mesh
6.1. The first step is to hollow out – or remove the faces and vertices - from the inside of the mesh. The program will label which faces and vertices are inside the cupule and which are on the surface by clicking Filters > Color Creation and Processing > Ambient Occlusion. 
 

  

SECTION: Part 2: Shrinkwrapping the Mesh
11. Next, check the “Preview” box, and a preview of the selected mesh components within that greyscale window will be highlighted in red. 
SECTION: Part 2: Shrinkwrapping the Mesh
12.1. Toggle the “Max Quality” slider until most of the inside components are selected. 
SECTION: Part 2: Shrinkwrapping the Mesh
12.2. Then, zoom out to view the external surface of the object. The goal is to set Max Quality to select the lowest number of faces on the outside while selecting the highest number on the inside: Max Quality was set to 0.188304 in this example. Once you have achieved this balance, hit “Apply.”  
SECTION: Part 2: Shrinkwrapping the Mesh
23. Select the poisson mesh with the reconstruction depth of four and rename this mesh “Cupule remesh”.