Voronoi Pattern with repeating geometries

hello!

I’m quite new to grasshopper, and have only done a few fairly simple systems, learning some of the basics of GH as I go.

I am creating a voronoi wall for a client consisting of roughly 250 cells, and for production we are thinking of creating the wall using the intersections of the between each cell as the joints, and the lines could be made by cutting straight sections of material.

The issue is of course that due to the nature of the voronoi pattern, each joint is going to be unique, and we’re looking at over 450 of them, which does not lend itself to easy manufacturing or assembly.

I was wondering if there is a way to constrain the voronoi pattern in such a manner that the variations of cells/intersections will be limited to a few types that could be repeated, but maintaining the appearance of a random pattern.

My thought was that the way to tackle this is through constraining the angles of the cell borders, maybe defining that only 5-6 different angles could be used - e.g. 15, 30, 60, 90, 105 etc. which will then allow all intersections to be consistent over a few types only that can make up the whole pattern.
I’m not sure how exactly to do this though, or if there is a different way to approach this.

Would appreciate some guidance, and again considering that my GH knowledge is limited.

Thank you very much

Guy

Voronoi can and most likely will create very short segments like this:


So, how would you manage those?
You want to collapse too-short segments? You probably should…

Then, once you start deforming and collapsing a voronoi diagram, maybe you can consider starting with a different approach.
Maybe doing some “random but regular” point distribution (like using the centers of cells of penrose tiling) and then doing delaunay and then using the dual graph (weaverbird plugin) …?

Or, sticking with the corrected voronoi diagram:
the “joint” you designed on paper will connect 3 segments, but you should expect joints that have 3 but also 4 and maybe even 5 “arms”!

Using kangaroo you can force the inner angles of each cell (a polyline, a list of lines) to “snap” (there is a goal for that) to a multiple of a specified angle.

As the total interior sum angle for polygons is (n-2)x180°, so a multiple of 180, you’ll want to use a divider of 180, like: 15/18/20/30/36 … i’d try with 20 as start.

PS You are not considering segments length, as it is just about cutting a different length of a simple object, correct?

If it’s an option to have the segments between the nodes be gentle arcs, you could even use a bubble graph, which has all nodes identical with 3 120° angles

Here’s a slightly updated and simplified version of that definition
bubblegraph_example.gh (18.1 KB)

(as an aside - this definition required a little script to find the first isodynamic point of a triangle, one of the more exotic triangle centers I’ve ever had reason to use. Although when people talk about the centre of a triangle they usually mean the barycenter, or occasionally the incenter/circumcenter/orthocenter, there are actually literally thousands of defined triangle centers, of which this is number 15.)

4 Likes


cell
cell.gh (26.8 KB)

Try this ^
while simulation is running, points are shown where angle forces are stalling into an non-multiple angle (of target snap angle). Move them a bit with drag… to break it.

PS As angle forces are sort of unpredictable, it seems to work better with Kangaroo bouncy solver with damping at 0.5 …

2 Likes

Never heard of the isodynamic center before! Although the angles radiating might not be exactly 120 degrees, if you use just the average of three points instead of the isodynamic center, it looks almost exactly the same in this case.

The centroid and the isodynamic center only coincide for an equilateral triangle. They can be far apart though - for some triangles the 1st isodynamic point isn’t even inside the triangle!

2 Likes

Isodynamic point well taken Daniel; I was merely noting that in this case, the triangles ARE close to equilateral (mostly).

1 Like

Ah, well there you’re showing the centroids not of the triangles of the mesh itself (shown here in black), but of the orange triangles (an intermediate step in this construction). These are the pedal triangles of the incenters of the black triangles.

So the red vertices of the (blue) ‘bubble graph’ are actually the 1st isodynamic points of the pedal triangle of the incenters of the triangles of the mesh.
I suspect this point is also a named triangle center in its own right with a Kimberling number, but I didn’t manage to find it in the list.

2 Likes