Trying to accurately select naked vertices

I am trying to extract naked vertices from a mesh that I created from originally two cuboids.

Here’s what I did.

  1. I made two cuboids inside Rhino
  2. I did Boolean union of them.
  3. I exploded the result.
  4. I removed topmost and bottommost faces.
  5. Inside Rhino, I joined all those faces, then created one single BREP out of them.
  6. I converted that BREP into a mesh.
  7. Then I inserted that mesh into nakedvertices component of Kangaroo.

Ideally I should get vertices only at the top and the bottom. But Kangaroo is also wrongly giving me vertices which are not naked as well and joined with other vertices.

I even tried meshjoin component before inserting into the ‘naked vertices’ component but not getting the desired result.

What should I do to make Kangaroo detect vertices which are actually naked instead of also getting additional vertices selected?

Of course, I can create more BREPS at the outer vertical edges for selection, then use point in BREPS, then dispatch, then cull(remove) the unwanted points. But is there a better method in which Kangaroo correctly chooses the naked vertices?


Having gone that far, why not just convert the two faces you removed to meshes and get their “Naked Points”?



You need to weld the vertices. As @HS_Kim shows you could use combine and clean which does a welding as well. You could also use the join + weld from Weaverbird, weld mesh from Mesh Edit, or rebuild mesh from Pufferfish.

Since Kangaroo now comes with Rhino 6 + Gh 1 natively, combine and clean will be the easiest to access. Kangaroo Naked vertices is also native with Rhino 6 + Gh1.

1 Like

That’s because those naked points have to be the part of the final mesh. The two faces I removed will be separate from the resultant mesh.

Ahh… I see. So my mesh is already a single and a combined single one, it required cleaning. Thanks. :+1:

This can be done without NakedVertices


1 Like

Okay, so now I understood the ‘how’ of the process, I am trying to understand the ‘why’ to form the foundation of my understanding.

So what I can figure out, the naked vertices were initially being given for every flat face despite the mesh being a single unity. So the mesh was a single one, yet it kept vertex data for each large rectangular face of the cuboid separate hidden from us?

Not really, it means you have verts which are duplicate where brep faces meet and we need to weld them into one. Very common mesh thing.

1 Like

Yeah. That’s slightly similar to what I was talking about in my original post.

i.e. creating culling based upon either curve CP as shown by you or points in BREP.

There are some other mesh weld features including vanilla GH Weld Mesh.


That’s what I’m wondering about. I mean the need of the resultant mesh preserving the duplicate data instead of combining it into one by default automatically.

Whenever we have a unified mesh made from two surfaces joining at common edge, speaking from a real life fabrication utility point of view, that edge is a common one, having duplicate data at the same edge for a unified monolithic geometry isn’t useful in any application, or is it?

It is useful for somethings like simulation and I believe it is resulting that way because it is a hell of a lot easier to weld a mesh than to unweld it, so you wouldn’t want an already welded in case you don’t need it. When unwelding you’d have to think about angles as well.

Insightful! I found the weaverbird component you’ve used in my toolset. What plugin(s) do the components ‘ngon’ and ‘meshedit’ belong to ?

They belong to ngon and meshedit. That’s the name of the plugins that @HS_Kim wrote there.

1 Like

Totally agree and understand fully this portion.

Simulation of… ?

Like Kangaroo simulation. Say you want to act on the faces individually but anchor some shared points so that the seam separates only in some locations. That’s just one example off the top of my head.

1 Like

Okay. Thanks. I’ll check them out in Food4Rhino.

Okay. I see. That’s interesting. So, the ‘clean’ and ‘weld’ components automatically detected and cleaned overlapping vertices, conversely speaking, we can find out overlapping vertices and keep them separate to use them later. How can I do that?


Okay. Thanks @DanielPiker. Thanks a lot everyone for your speedy, insightful and helpful replies. Thank you so much!! :raised_hands: