I am trying to build a dome that consists solely of hexagons. They may vary a little in size but should retain their hexagonal shape and should not be squashed at the bottom.

Also, is there a way to make the hexagons a certain size?

Example of the model: enter image description here

Desired effect (right half):

enter image description here


I found out that what I'm asking for is a mathematical impossibility. The shape I was going for is cald a Icosahedral Goldberg polyhedron.

As you can see the mathematical equation for faces by type is:
12 {5} and 10(T − 1) {6}
T = m2 + mn + n2 = (m + n)2

Therefor it cannot exist.

My perception of the desired effect was false as this simply was a 2D tiled image.

What should I do with this question which I can not translate to a correct answer?


2 Answers 2


You could use "tissue" plugin to achieve similar result.


Use on icosphere for dome.

enter image description here


You could try to model it out of hexagons from scratch or try to work with array modifiers or particle systems (just some ideas that didn't work for me at the first try).

If you'll need this effect more often, you should try to create your own modifier that will do all the work for you. That modifier could work something like this:

  • Take the Bounding box of the object and divide it into voxels of the size you want the hexagons to be
  • The voxels can be represented by a 3dimensional boolean array
  • Check for each voxel if there are any vertices/faces and eventually set the value to true
  • Remove the original mesh data
  • Add in your by putting a hexagon for every voxel set to true


I just found this video creating a cube ocean using animation nodes. Perhaps you can try and use the concept with a hexagonal base object.


Edit 2

I played around with animation nodes myself and I built something that acts as a custom remesh modifier. You can download the blend file here:

Here's what it looks like:

The result The node setup The input args


  • Replicate: The object to replicate
  • Duplicate: The base object that will be duplicated to replicate the input
  • Output: The object to write to.
  • Tiles per Unit: Amount of duplicated objects in each direction per Blender unit. Basically the resolution.
  • Extend bounds: Will extend the area the program is working on by this value into each direction. Use to save calculation time or if the calculated bounds don't fit the Replicate object.
  • Hex grid: Check if the X-Y-grid shall be hexagons instead of squares. It is not perfect, you might need to use the Extend bounds option here.

It roughly works like I said above. That's why I'll only explain it in detail if someone asks for it.


You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .