Deleting internal faces of surfaces or meshes that are not duplicates

Hello all,

Ive been trying to wrap my head around this concept for quite some time now.

There has been alot of conversation about culling duplicate faces on surfaces and meshes. However I cannot seem to find a workflow that will delete internal ‘non-duplicate’ faces for either meshes or breps.

Ive tried exploding, also solving for intersections. and splitting. All to no avail.

Does anybody have any idea what direction i should take for this task?

Ive attached an image describing the situation. The darker red areas are the spaces i wish to delete.

Thanks in advance

Better upload your file for good answers.
Stupid question, but how about not creating them?

Hey Tim,

Not sure what you mean by creating them? I would like to stay away from baking and going in to delete these faces and re entering into grasshopper.

I have attached my file here.

180608_cull internal mesh (20.6 KB)

To access this information you need to have the morphocode plugin for L-systems. i have included a link here.

im not sure if im using any other tools currently in this script. however i frequently am using Weaverbird so i will attach the link as well.

Hello, just trying to respark this conversation… Has anyone tried this before? I cant imagine im the only one


Maybe could you post just the mesh, so we dont have to install rabbit to look into?

Hey Baris,

Cool! I like that idea. Here it is!

180611_cull internal mesh or surface.3dm (2.9 MB)

My only concern is that I understand how to make this work inside rhino. But this is only a small piece to my puzzle. Im really interested in keeping this process inside grasshopper.


Coudnt you use a geometrywrapper like cocoon?

1 Like

Your options essentially are.

  1. Wrap the geometry with a mesher (cocoon, zbrush, meshlab, ect.)
  2. Boolean the geometry.
  3. Test each mesh face to see if it is inside another mesh, if it is then cull it - but then you will have to find a way to stitch the result meshes back together as their will be gaps.
  4. Make the geometry in a better way that doesn’t create that condition, like a mesh growth algorithm.

None of which are exactly straightforward in GH (and most are slow computationally)

1 Like

Hi Michael,

Thank you for the insight. I would think that the boolean the geometry would be the route to go. The Solid union command isnt processing.

Is there any sort of limitation to consider when trying this process?

Im not a programmer so i dont think i could build an algorithm that would work this out.

Is there any sort of limitation to consider when trying this process?

Booleans are a combination of processes (intersect, split, delete, join). They fail often with meshes. The more faces you have the longer the operation. Also meshes should fully intersect, should be closed, and shouldn’t have self intersecting faces, among other things. Personally, I resort to booleans if there is no other options.

1 Like