Rhino 3D alternative for Mesh Simplification

When it comes to Mesh Simplification—an issue of undeniable importance when it comes to swifter rendering, greater compatibility, optimized memory utilization, and even some material resource savings in 3D printing (albeit, limited)—both our MeshLib library and Rhino 3D serve as toolboxes of choice. In case you are pondering on what to pick up right now, we have prepared a detailed practical guide with illustrative outcomes. All the findings you can see below are based on practical research. Link to the associated files is placed below in case you want to repeat the test.

Some Context to Kick Off the Talk

The starting point of our mesh simplification research is a Nefertiti mesh. Containing over 2M triangles, this is a truly complex structure. Thus, it is a definite match for our test.

Building upon this challenging basis, we have decided to run a couple of scenarios:

  1. Heavy Mesh Simplification. This flow suggests that one reduces the mesh size by a factor of 1000 or even more (i.e., from 2 million triangles to just 2000). Such an approach is an option for work cases where sheer speed and minimal resource consumption are paramount, while you are ready to be satisfied with much fewer details;
  2. Moderate Mesh Simplification. As for this technique, it decreases the mesh size by a factor of 10 (e.g., from 2 million triangles to 200,000). That is an obvious compromise. We maintain better geometric accuracy, yet, still manage to stay resource-and-performance effective.

Regarding software applied by us to these two tasks, we checked two modes of MeshLib besides Rhino 3D:

  1. MeshLib ST, aka single-threaded mesh simplification, relying on a single CPU;
  2. MeshLib MT, which means multi-threaded mesh simplification. In our case we ‘activated’ 16 threads, as we had 16 cores at our disposal (just in case, if you intend to resort to MeshLib MT make sure that the difference between the number of your threads and cores is kept in check).

Object for Mesh Simplification with MeshLib and Rhino 3D: Our Input

Mashlib% filename%

As for other applicable research details, this piece builds upon a broader overview of numerous libraries we have already published, ‘Libraries for Mesh Simplification: Detailed Comparison.’ Check it out to learn more about the methodology, hardware, metrics, and reasons why those parameters are so important in the context of mesh simplification.

  1. ‘Time’—timeframe needed to process the task (in seconds).
  2. Degeneracies’—number of triangles with highly skewed aspect ratios worse than 1:100.
  3. ‘Self-Intersections’—number of overlapping geometries.
  4. ‘Small Components’—number of isolated elements.
  5. Holes’—Number of missing geometries.
  6. ‘Hausdorff Distance (mm)’—the largest discrepancy between the original and simplified meshes.
  7. Average Absolute Distance (mm)’—the mean deviation to offer a balanced view of geometric precision.

Also, this link will lead you to the folder containing the source input and resulting files. Feel free to look through them or even repeat our research on your hardware.

Heavy Mesh Simplification Scenario

Backing up any statements we will make, we begin with illustrating the results of our efforts:

MeshLib ST

Mashlib% filename%

MeshLib MT

Mashlib% filename%

Rhino 3D

Mashlib% filename%

Yes you can see, all the three outcomes look valid for real-life usage. And the fact that they really are. To delve deeper into the comparison, we invite you to examine their efficiency behind the resulting output.

Heavy Mesh Simplification Details

Parameter
Single-Threaded
Multi-Threaded
Rhino 3D
Task Time(s)
3.9
0.9
50
Degeneracies
0
0
12
Self-Intersections
0
0
0
Small Components
0
0
0
Holes
0
0
0
Hausdorff Distance (mm)
3.45
3.286
2.116
Average absolute distance (mm)
0.287
0.284
0.26

Heavy Mesh Simplification: Conclusion

Based on the data, MeshLib’s ST and MT demonstrate a certain advantage over Rhino 3D in terms of processing speed for heavy mesh simplification operations. Further, MeshLib produced no degeneracies, whereas Rhino 3D brought about a dozen.

Both solutions performed well in maintaining mesh integrity. However, Rhino 3D achieved better results in geometric accuracy.

Moderate Mesh Simplification Scenario

Like we did in the previous section, this one starts with a gallery.

MeshLib ST

Mashlib% filename%

MeshLib MT

Mashlib% filename%

Rhino 3D

Mashlib% filename%

Again, all the results look like a match, which is true. It is time to find out facts and figures behind these images.

Moderate Mesh Simplification Details

Parameter
ST
MT
Rhino 3D
Task Time(s)
3.8
0.9
48
Degeneracies
0
0
133
Self-Intersections
3
0
0
Small Components
0
0
0
Holes
0
0
0
Hausdorff Distance (mm)
0.143
0.143
0.22
Average absolute distance (mm)
0.018
0.018
0.051

Moderate Mesh Simplification: Conclusion

For moderate mesh simplification, MeshLib’s ST and MT options did well, completing the task in 3.8 and 0.9 seconds, respectively, compared to Rhino 3D’s 48 seconds. MeshLib also delivers decent results in mesh quality, producing no degeneracies. Rhino 3D introduced 133.

Both solutions maintained structural integrity regarding small components and holes, with no issues detected. However, while MeshLib MT avoided self-intersections entirely, MeshLib ST recorded three, compared to none with Rhino 3D.

In terms of geometric accuracy, MeshLib slightly outperformed Rhino 3D.

Wrapping Up: What to Choose

  • For speed and efficiency, especially in scenarios where some minor geometric inaccuracies are acceptable, MeshLib MT serves as the top choice.
  • For high geometric exactness and avoiding self-intersections, Rhino 3D is a better option, albeit it mandates longer processing times.