BUG: Transform produces invalid Mesh


Here testing a series of four possible combinations of the two most obvious factors; #1 the Brep/Mesh and #2: Two different Transforms (my old transform and a new transform created near the test setup).
I connected the "“My” old transform directly to its source (hence the wire going out of sight to the left) without any hops to ensure that hops doesn’t disturb the data).

Image A: “Your” Brep/Mesh + New Transform == Both Meshes OK.


Image B: “My” Brep/Mesh + The same New Transform == Bad mesh (via mesh param).


Image C: “Your” Brep/Mesh + My Old Transform == Bad mesh (via mesh param).*


Image D: “My” Brep/Mesh + My Old Transform == Bad mesh (via mesh param).*



  1. Only A, when both “Your” brep AND a new Transform is connected, results are OK.
  2. If either “My” mesh OR “My” old Transform is used, the mesh goes bad.

This doesn’t make sense to me. Scratching head.

// Rolf

1 Like

I just had a similar issue with some curves. Took a long time tot figure out hat the problem was, but for some reason, a few curves after a transform became invalid. Workaround: test for validity, explode non-valid curves, join segments, test again

Same bug here.
Please fix it.

Can you post (or send us) something replicable? as well as your system info. Thanks.

When you have any sort of mesh into grasshopper and you transform it with a cartesian transformation, you will end up with an invalid mesh…that’s it.

1 Like

Not really…


1 Like


Another example is when you use robots plugin from Vicente Soler.

The same mesh working into rhino + GH version 6 (and 5) are not working right now.

BTW the mesh was not garbage. It was a mesh made of closed breps from inventor.

Meshes are not treated the same way in V7 so now there are lot invalid meshes that were not invalid mesh in previous version. There are some discussions to heal meshes. I used a little script to do that.

But in order for McNeel to resolve the problem please post a little script with a faulty mesh.


I applied the C# component from the first post and healed my mesh.

I will post the content asap.

The thing is that the same mesh is both valid and invalid before and after any cartesian transformation.

This mesh is an OBJ export straight out of Artec Studio imported into Rhino 7. The mesh is closed but seems to have a few normals messed up.

mesh_transform.gh (11.5 MB)

Same mesh, different orientations.
Both valid and invalid, but the mesh is the same.
This is a bug depending on cartesian transformations, and the fact that some other meshes are working correctly is not enough to say the opposite. Nice crocodile btw.

The main thing to say is that the orientation of a mesh can not determine wether it is valid or not, because it’s just a change of basis.


I’m working with meshes almost daily. Most of my meshes have imperfections.
But I never saw the problem you described.

How do you create the meshes?

Sometimes I use the “mesh brep” component (usually with a low number of triangles), other times I start picking a mesh from a library (robots library in the case of the robot above)…I almost never start from native meshes.

But I would like to point again that the problem is the combination of mesh + transformation.

I’d say that what is unexpected from my perspective is having a mesh that after rotation became invalid.

1 Like

I recently updated the robot libraries attempting to fix invalid meshes. You can check here if your library got fixed: Invalid Mesh · Discussion #105 · visose/Robots · GitHub

I think one issue is that mesh reduce can create very thin edges, and since Rhino 7 it seems to be more sensitive to this when checking for invalid meshes.


Why don’t you post examples with your meshes that fail?

1 Like

Hey Everyone,

If you have a mesh that is valid, and then you transform it and it becomes invalid, please post the original mesh along with whatever it takes for us to repeat the process of producing a bad mesh.

— Dale

1 Like