Delaunay Error

Hi everyone, and thanks in advance for your patience if you’ll decide to go through all of this. I’ve been trying to create a mesh through Delaunay triangulation as follows:

  1. Create a set of truncated cones through a loft

  2. Isotrim and debrep the result to get the vertices and centers of each subsurface

  3. Here’s where things got a little complicated for me. I wanted to move the centers along the normals to the subsurfaces, but I also wanted each row to go a different distance. I partitioned both the centers and the normal vectors as shown

  4. Finally, I merged all the points and plugged them into the Delaunay Mesh component. I set the planes originated from the very same points and the normals as base planes for the triangulation, and ended up with this

What follows is instead the kind of geometry I was trying to create, which I obtained easily by just plugging the centers from the evaluate component into the Move one, without partitioning them or the vectors. I was very careful in handling the data tree so that the one created above was logically identical to the one that led to the result below, thus I have no clue what’s wrong here.

I enclose the grasshopper file in case you want to take a closer look to it: (35.5 KB)

Again, thank you so much for your help! Have a nice day! (22.5 KB)


Your definition have some problem in data management, and shifted the center points by 1, so each center is used with the corners of the adjacent cell…

Then, even if that was ok, delanuay works 2D: your points are projected to a plane (default is worldXY) and then solved to a mesh.

With a shape like yours you need to give each cell+center a properly aligned plane so delanuay function can work correctly, the way you expect and need. (13.4 KB)


Hi Riccardo, thank you very much for your reply! I think I obtained the same result as you did using the Delaunay Mesh, as shown in the fifth screenshot I uploaded. What I’m trying to do is setting a different vector amplitude for each row of centers (3 total rows, one for each truncated cone). I don’t think I understand what you mean by saying that Delaunay only works 2D, and I can’t really grasp the difference between the “mesh method” and the “brep solution”. Could you elaborate? Otherwise could you suggest some sources I can elaborate on?

Better than 1000 words, see this: (11.8 KB)

Delanuay can work without a specific projection plane, but only if your pyramid vertex falls into the rectangle on the projection.

The difference in the 2 method is that one is outputting a mesh (which is visualized smoothed but is actually really sharp; 4 faces), using delanuay… and the other is just a polyline extruded to a point, giving a brep/polysurface as output; 4 surfaces joined togheter.


Delanuay will just see the relative distances between points after projecting them.
As in this example, you can’t rebuild properly a too-much-curved shape with delanuay (as a sphere).

Back to your case, if your pyramids are not much high, the projection will be ok regardless. But if they are too much high, you need to be sure that the delanuay function “see” the pyramids from the top, and that will mean a different direction (projection plane) for each pyramid.

1 Like