Double Wall with hidden Voronoi Structure / Bee Hive Design


I’m struggling with a voronoi definition.
I want to build a beehive with one inner layer and one outer layer. Inbetween an extruded voronoi Structure, for thermal insulation.
I am having trouble with trimming the built Voronoi Surfaces with the inner shell. The Voronoi loft ist extruded to a point in the center of the geometry. The inner shell is also scaled from the midpoint.

Does anyone have a solution for trimming and combining the pieces?
I would be very thankfull
kind regards

Julian (8.2 KB)
hive_BaseLayer_02.3dm (171.5 KB)

1 Like


Ouch! Planned obsolescence is a b*tch. In typical Rhino OS domination rudeness, that error message overlays all other Windows apps. :frowning_face:

hive_BaseLayer_03.3dm (166.3 KB)

i hope it works now

It does! Thank you. I can even open the GH file without complaints, though it’s taking a long time.“Not Responding”. … Patch took 1.2 minutes, plus quite awhile before any GH geometry shows… stll waiting for that. 9,326 brep/surfaces coming out of the last Join!?

Seems you are using a single surface here. A better approach to all this joining and splitting and cutting might be to offset that surface inward. Map a flat voronoi diagram to both surfaces and loft between respectively.

1 Like (55.3 KB) (geometry internalized, no need for Rhino file)

P.S. Instead of using the surrounding ‘box’ for PopGeo, you can use the ‘innerSrf’. It results in more cells that intersect so is slower. ~80 seconds total on Profiler. (55.3 KB) (geometry internalized, no need for Rhino file)

One more detail. Joining the two shells into a “Closed Brep” (white group): (59.9 KB) (geometry internalized, no need for Rhino file)

Sometimes GH can be so weird…? While playing around with using a BBox (Bounding Box) instead of a “hard coded” Rhino Box geometry param, I noticed that the white group was failing due to a data tree mis-match that required flattening the inputs to Edges and Join. :question::exclamation:

Anyway, the only external input to this model now is the ‘innerSrf’ - poorly named since it’s actually the outer shell. (60.2 KB) (geometry internalized, no need for Rhino file)

1 Like


Thank you very much for your help. It is fascinating that you solved this so easy.
It took me so long to even get in the direction of a model like this.

yeah sometimes GH can be so weird…
Your definition was very helpful. Still, I’m struggeling with making a printable .stl out of it. I treid to delete the duplicate surfaces and to thicken all of the surfaces and joining it together with no adequate result. :face_with_raised_eyebrow:

I an older definition I got it with meshes. This went good in the beginning but took a long time to process and in the end the model was broke…
So I’m thinking of a way doing it with meshes or with breps, but I think i will fail.

There is so much to learn… :sweat_smile:

thanks again Joseph. you’ve been a huge help.

It wasn’t as easy as it looks. I struggled through several needlessly complex approaches that were quite clever but ultimately not satisfactory. This one isn’t “perfect” either, there is more room for improvement, even before considering the 3D printing issues you mention. Considering those from the beginning though suggests some new ideas for thickening the Voronoi walls… This thread isn’t dead yet! :sunglasses:

I just tried a handful of variations on this idea with no adequate result either. I’ll post it anyway, just to suggest a direction: (62.7 KB)

I’m still messing around with this (the gaping hole in the shell causes many problems) and just want to show you the mess I make working a problem like this. Literally dozens of alternatives tried and discarded, stepping methodically and carefully through and around each obstacle that presents itself. Many dead ends! But if the only “adequate result” ends up being the knowledge I gain along the way, the old I Ching maxim still applies: “Perseverance furthers”.!

Not quite “there” yet but definite progress toward making the Voronoi walls into a single “Closed Brep”. Only thing missing is the inside surface, which will be similar to how I got the outside surface, perhaps even re-using some clustered code. But this doesn’t address the issue of the inner and outer shells having any thickness for printing… Don’t they need it too? (76.8 KB)

P.S. When I went back later to re-open this file, I see one Voronoi spike poking up from the bottom of the structure that wasn’t there when I baked the geometry shown above. I have no idea yet what changed in the code, if anything… Will get back to it eventually. :neutral_face:

I really tried but didn’t quite get the “Closed Brep” Voronoi “walls” that I wanted. Very close, a few tiny gaps that might go away with different parameter values - or maybe not. Hard to explain all the options I tried… That gaping hole in the shell complicates things. This is SLOW, on the order of seven minutes of profiler time! (70.6 KB)

FYI, changing the PopGeo ‘N’ (Count) input from 100 to 200 ups the compute time closer to half an hour! But look at the panel on the far right listing the lengths of the “naked edges”. Now down to only six, two of which are both 4.86773 units long; likely a matched pair, visible at the bottom of the image. The other four are very short.

By far, the dominant pain factor in this model is that gaping irregular hole in the shell. The Voronoi cells around that edge require two forms of special treatment that are complex and somewhat arbitrary. While the code in those two areas is somewhat interesting and educational, perhaps applicable to other similar problems, I’ve reached the conclusion that for a goal like this, it would be WAY BETTER instead to do it this way:

  1. Use a shell with no holes for the .PopGeo and Voronoi³ step.
  2. Use one or more “attractors” (points or curves on the surface) to cull Voronoi cells to create a hole (or holes) in the structure.

There might still be issues around the edge of any resulting gaps in the Voronoi structure but at least you won’t be dealing with partial Voronoi cells caused by arbitrary gaps that cut across them.

1 Like

Here is an approach that worked perfectly the first time, so easy!

  1. I used a stretched sphere with no holes as the initial ‘outer shell’. Simplified code created the Voronoi walls as a “Closed Brep” on the first try!
  2. Then used SDiff (Solid Difference) to subtract a cylinder, creating a holed Voronoi wall structure (“Closed Brep”!). There is no edge on the hole but that seems like a minor detail? (29.6 KB)

1 Like