The badness of Meshtrim

Hello,

A first necessary step would be that Rhino handles valid 2-manifold meshes correctly. I agree that bad meshes are part of the industry but having written lots of meshing algorithmic code myself, I’m willing to settle for correct behavior on valid meshes. Invalid meshes need to be pre-processed in order to make them valid (and yes, some improvements could also help on this).

All the algorithms in a mesh library are based on a few basic building blocs like edge splitting, edge collapsing, triangle-triangle intersection, etc. If you have a guarantee (an actual algorithmic proof with corresponding implementation like in the CGAL library) that each of these operations preserve the validity of a valid mesh, you can use them to compose arbitrary complex operations on meshes. That’s this guarantee that is missing from Rhino meshing code.

For example, many people reported very bad splitting problems on valid meshes.

As long as those are not fixed in a systematic way as I just described, I don’t see much hope for robust mesh processing in Rhino, even on perfectly valid meshes.

2 Likes