# Voronoi puzzle

VORONOI PUZZLE.3dm (5.2 MB)
voronoi brep.gh (2.2 KB)

Hello guys,
I’m trying to create a Voronoi puzzle. I want to 3d print the object that I have created already. To make it stable without any additions like glue, I want to create a puzzle. For that puzzle, I want every Voronoi object to have knots that connect them to the next voronoi object. The examples below show references for that.

Thank you already for the help!

1 Like

I also found this video Voronoi Puzzle (Grasshopper Tutorial) - YouTube

I really like how the puzzle comes together here, but unfortunately wasn’t able to implement it into my scrips.

Hi can you provide a source for the images posted?

Which image exactly ?

I was asking for sources for the
“Screen Shot 2023-04-13 at 9.49.11 AM · 1022×856 67 KB”
And the picture of the other print in black?

For the one with the magnets, there is a component called **area ** which gives you the centroid of each face of the voronoi polysurfaces, you can use this point to make cylindrical holes for the magnets

Both are images that I just found online in the google search.

I was thinking about the area command but didn’t really know how to execute it because some would have to go inside and some outside. And then the space that is suppose to be filled had to like void in the other component.

Here is an attempt, not very conclusive.

I get the biggest interior face of each piece, and extract a list of unique centroids from there.
Then, for each reference point, get the two connected pieces. The first one is set to be the male and the other one female.
Build two cylinders (one with a gap) and flip the tree structure to get, for each piece, all cylinders to add and all cylinders to remove, then perform solid operations on those.

I had to reduce the initial point population as there were some small pieces where it was impossible to fit a cylinder.
The other issue is that there is 1/ no guarantee this won’t collapse and 2/ no guarantee it will be possible to assemble it, since the pins have different directions.

voronoi brep.gh (16.5 KB)

1 Like

You can control the direction of the peg/hole by constructing a vector from the centroid of each face towards the center of the voronoi cell that the face belongs to, then comparing the angle of that vector to the normal vector from the centroid of each face.

voronoi brep2.gh (26.7 KB)

Here is an example of what I meant to say about controlling the direction of the holes.

Nautilus BrepCell Topology.gh (14.1 KB)

I just found out there is a component in the Nautilus Plugin( by @laurent_delrieu ) that can give BREP neighboring relationship data.
It might add good convenience to solving this problem.

1 Like