Delaunay Problem - Triangulation with holes

Hi everyone, this is my first time writing here as Im also super unexperienced with Grasshopper and Im trying to start with it.

Im trying to make a triangulation with Delaunay of a shape that includes holes. I achieved the triangulation I want but only in shapes without holes, so the problem comes when I add the holes and the triangulation is made inside that hole instead of inside of the mesh I want. I attach a screenshot so you can se what I mean

The red surface is supossed to be filled with the triangulation (which is basically joining all the vertex in the best way possible making triangles) but instead of that I get the triangulation in the shape I specifically don’t want to.
Is there any way to “invert” it somehow and get the result Im looking for?

Thanks in advance for your help!


Hi @Tomascastro

Mesh Brep does the job for you.

1 Like

Hello @Erik_Beeren thanks for your reply! it is almost working now, as you can see in the pic I attach, I get extra edges and what I want is the edges to connect the vertex of my shape making triangles. Do you know why is happening this? (22.0 KB)

I attach also the gh file
Thanks again,


1 Like

You can use TriRemesh: (28.0 KB)

1 Like

For some reason Im getting what you can see in the pic and not what you showed. I feel Im missing something obvious, but Im a complete beginner sorry :cry:

Odd - I checked - I did it in Rhino 8 when it worked - Rhino 7 doesn’t manage it the same.

Meanwhile here’s a workaround you could try - less optimal, though: (32.0 KB)

@DanielPiker, sorry to bug you but why does this happen with TriRemesh?


1 Like

Thank you very much!! looks like its working now! Some minor errors when aplying to other boundaries but nothing I cant manage manually. Im heading now to my next step, making it 3d with random heights :grin:

Thank you so so much again, I will also wait for the other user to reply about the triremesh as this grasshopper learning is getting interesting :star_struck:



Hi René,
The issue there was that the trimmed surface was not getting properly recognised as a Brep (as discussed here).
As you found, the behaviour has been improved in R8, but you can also avoid this problem in 7 by passing the surface input through a Brep parameter component before it connects to TriRemesh.


The RhinoCommon mesh class has the CreatePatch method, which does what you need. It is not exposed in Grasshopper as far as I know, but is simple to implement in a scripting component: (21.2 KB)


Thank you very much! this also works perfectly for all situations and its super clean! :star_struck:


1 Like

Thanks for pointing this method, as I made some tools to group curves by plane then by region, meshing them with CreatePatch was straightforward. So I added this to Nautilus plugin (will be in 0.9.4 version). The tools accept curves (that will be transformed to polylines)
It is super fast.

And before I release something (23.7 KB)


Hi guys I now have a problem following this topic. Once I have the triangulation made (I used @AndersDeleuran method for its simplicity) Im trying to change the height of vertex randomly just like its presented in this topic: Move generated Triangles up or down a specific amount

I try to follow this method combined with Anders previous method but I dont know why, when trying to move randomly the points, I get multiple copies of points, generating an unwanted cloudpoints, and I dont know how to keep going. Ill show you in this pic:

Do you know why is this happening?
triangulatedmoving.3dm (7.1 MB) (43.8 KB)


most of the time if you want to move point of a mesh you use Deconstruct Mesh then Construct Mesh.

Point Deform could also do the job. (38.6 KB)


Thank you very much! its working perfectly now.


1 Like

Hey guys sorry to open this topic again but Im again having some issues.
Triangulation parameters work perfectly for the shapes I already showed, Im using @AndersDeleuran method, but now Im trying to make a triangulation with a “square” as the outer boundary. The problem comes with the points of the outer polyline. I already have those points made on rhino, but when running the script it only trace edges with the corners and the first control point as you can see in the pic.

I think the issue comes when converting the curve into a polyline as the rest of the control points disappear as you can see here:

Is there any way to keep the curve control points after converting it into a polyline?

Thanks in advance,

CUBIERTA.3dm (4.8 MB) (19.8 KB)

I try your tool but it seems too long. So I tried with mine and I have all the points and it is not long !!! I use standard Rhinocommon tool.

Hi thanks for your quick reply. I dont know how to find that “Region to Mesh” component in grasshopper or rhino.


Just don’t convert to polyline as it is already polyline


working now! dont know why but previously the script worked wrong if I didnt convert it before. Not anymore.
Thank you so much!