Missing row on a diagrid pattern

Hi! I am trying to create a diagrid pattern on a surface without using the lunchbox components so I can control the distances between each points more accurately. I got it to a working level to a point, but the pattern is missing on one of the rows(see the image below)

Any theories on what might be causing this? The are two lists of points that I use to create lines in between. One of these lists have 3 branches, and the other has 2, I am guessing that is the problem, but not sure what to do to fix it. I am attaching the .gh file here with the internalised surface.

Test.gh (15.3 KB)


The data structure difference is indeed the problem. Grasshopper has no way to understand that it’s supposed to create a link between branch {0} on one side and branches {0} and {1} on the other side, and then b{1} with bs {1} and {2}.

After some complicated tricks using Tree Branch, I ended up using Relative Items.
There are 4 search patterns given as a list : for the 1st one, for each point p in branch b of Tree A, the component will associate it with point p in branch b+1 of Tree B. Same thing for the three other associations.

Test.gh (14.4 KB)


Thank you, I will inspect your script and try to understand what you did! I had originally used a cull pattern component on the contoured lines to be able to split them into odds and evens, but looks like that did not help the case

I just realized it could also work with the Cull Pattern, but this slightly changes the offsets :


1 Like

Yes! But I just kept the split data option, which seems to work without any issues as well.

If I wanted to add actual panels to this grid, how can I get started on that? If there was only two lines, I could use the end points of the lines to create a boundary surface, but since there are hundreds of them, not sure how to tell grasshopper to create triangular surface between each of those lines…


I used the RhinoCommon method Mesh.CreateFromLines (equivalent to the Rhino command) to build a mesh from all edges.

You may want to have a look at LunchBox or Paneling Tools (both available from Package Manager), they provide a lot of useful grid and pattern tools.

By the way there seems to be a problem with your dimensions, there is a gap between the top curve and the top of the cylinder. Also, the last triangle at the seam is deformed.


Test.gh (18.9 KB)

Thanks again! This cylinder is just a simple test piece that I wanted to make sure the script worked. Initially, I used lunchbox paneling tools, but I wanted to be able to control the dimensions of the panels more accurately since lunchbox let’s you add the U, and V numbers, but not the actual distance between the points.

The ultimate goal was to be able to generate the least amount of unique panels for real life constructability, but when I try this on my actual form(which is more organic and curvy than a simple cylinder), I am noticing that the panels don’t end up being equal in size, and the edge dimensions slightly change. It mostly works okay on a cylinder, but a different story on an organic shape. I guess having the panels at the same exact size is not physically possible on an organic shape anyway…

I read about the “Museo Soumaya” a bit on a different forum post, and noticed that it is more complicated to standardize panels sizes than I thought it would be

I’ve been playing around with this for the last hour and I think I’d use a mesh to create the panels. It results in a seamless pattern. You can change the aspect ratio by increasing or decreasing the number of quads in U and V direction of the input surface.

I haven’t used Lunchbox in ages since I try to reduce the number of plugins and do most things with native components whenever possible.

The same pattern can be created with the surface divide and relative item components but it is more complicated.

cylindrical_triangular_pattern.gh (34.6 KB)

1 Like