Face Groups are a core concept in Meshmixer. The Generate Face Groups tool allows you to try to automatically assign useful face groups to an unstructured mesh. This tool will not work all of the time, but it works often enough to be incredibly useful.

The property panel for Generate Face Groups is shown on the right. The Mode drop-down allows you to choose between different automatic triangle-clustering/segmentation algorithms. 

The Angle Thresh slider is used to define an angle (in degrees) which influences the selected clustering algorithm. 

The Size Thresh slider is currently used to define a minimum triangle-count for generated face groups. If a group has a smaller triangle count than this number, it will be merged with a neighbouring group. Note that this is a pretty coarse control, and you can easily end up merging small-but-important groups on low-polycount meshes.

Mode Options

Currently there are two basic clustering algorithms available in Generate Face Groups.

Edge Angle mode randomly selects a seed triangle and then expands to all neighbouring triangles where the change in triangle face normal is less than the Angle Threshold. So, this algorithm will find patches like cylinders, but can easily "escape" across smooth transitions such as the fillets found in CAD models. This process is repeated with new randomly-selected seed triangles until all triangles have been assigned a group.

Normal Angle mode randomly selects a seed triangle and then expands to all neighbouring triangles whose face normal deviates from the seed triangle face normal by less than the Angle Threshold. So, compared to Edge Angle mode, this method tends to create clusters that are more localized.

Example Usage

In this first example, we have a complex spark-plug model exported from a CAD tool. For CAD models, Edge Angle mode works best. In this model the tessellation is quite low-res, so the default Angle Threshold picks up each strip of facets on the cylindrical regions (left). As we increase the Angle, there is a point where the rings on the left end are segmented. But at higher thresholds the fillets confuse the clustering, causing that entire area to be merged into a single group (right).

In the next example, we can see how neither of these methods does a great job on the bunny model. The leftmost two images are Edge Angle mode at two Angle Thresholds. The third image is Normal Angle mode - you can see how the clusters are more localized, to some degree. Finally, to get a smaller number of clusters, I increased the Size Threshold in the last image. This sort of result is usually not immediately useful However, it is often possible to quickly mark the groups and join them (with a quick expand-to-groups g and create group ctrl/cmd-g key-combo) into larger regions that may be semantically useful.


Tips and Tricks

One drawback of Generate Face Groups is that it can only be applied to entire meshes. If you would like to apply it to a sub-mesh, you can use the Separate / Modify / Combine / Close Cracks workflow described in the Close Cracks section on this page.