Problems with Hexagon tessellation on half sphere

I am an engineer student and I started using Rhino and Grasshopper.
At the end my goal is to control and tune the tesselation of hexagons on freeform surfaces.

I started from the half sphere as demostrator.
I am aware that it is not possible to tessellate a sphere with only hexagons (regular or non regular) due to the Euler’s theorem, but for the half sphere I guess it is possible if we allow some deformations of the hexagons.

I tried with Grasshopper and LunchBox but I don’t obtain only hexagons as shown here:

I would like to obtain as much as possible regular hexagons on top of the half sphere and more deformated ones towards the base, is it possible?

Furthermore, I saw that with lunchbox you define just the number of hexagons with U and V but in this way you don’t really control the shape of the hexagons, I would like to obtain as much as possible regular honeycomb. How is it possible?

At the end I will planarize the hexagon tessellation but I found already material on how to do this.

I appreciate any kind of help or advice, thank you!


Hi Daniel,

You can use a Möbius transformation of a flat hexagonal grid to get a covering of a sphere by all hexagons (which get infinitely small towards one pole), like this, but take a circle in the XY plane:

A nice effect of doing it like this is that the hexagons will be perfectly planar without needing any further processing.

1 Like (9.4 KB)


Thank you Daniel for the answer,

this approach is very interesting and useful for what I need.
Is it possible to control the change in the hexagon sizes (for example relate it to the curvature) and set the max and min size?
Is it possible to apply an analogous approach to any freeform surfaces?

I search now what are möbius transformations and how to control them in gh.


This approach is specific to a sphere. You can change the number of hexagons you are mapping, but the way the sizing changes is determined by the transformation, not something that can be adjusted.

If you want to know about freeform surfaces that is a different question and will need different approaches. You’d need to tell us a bit more about what the surface is and what exactly you want to do.

1 Like

Hi Daniel,

I am trying to further develop my concept. I have now to populate each hexagon of the half sphere with another hexagon of fixed size, in order to have more space on top of the half sphere and almost no space at the base. I am struggling to align the internal hexagons to the external ones, maybe you can help me again?

And last question, I cut the Möbius transformation in order to have a perfect half sphere but with the Rhino commands, not within gh. I would like to do it within gh, can you suggest me how? I didn’t find a way. Thanks

Half Shere Hexagon Mapping.3dm (1.3 MB) Half sphere Hexagon (23.4 KB)

For aligning the fixed size hexagons, you can do the same Moebius transformation to an XY aligned plane centred on each cell of the initial flat hex grid - because they transform in the same way they will match the orientations of the cells on the sphere, and you can use these as the base planes for hexagons of a given fixed size:
Half sphere Hexagon (14.6 KB)
For the cutting part, it depends what geometry it is you want to cut - curves, meshes or surfaces?
Anyway, all the components for this are found under the Intersect tab in GH.

1 Like

Thank you again Daniel, your help is precious.
It was much easier than I thought. For the cutting part I could find a way, now I am trying to understand how to control better the transition of the hexagon sizes given by the Möbius Transformation.
I read that for my purpose I have to mantain T = 0.5 * Pi, so the only parameter that I can vary is the cell size of the reference hexagon grid.

What I would like to obtain is a spacing between cells (green) not too big for the top of the sphere (le’t say 4-5mm in my case), at the same time a more gradual transition of the spacing between cells till reaching the base circumference without overlapping of cells.
How to control the transition of the hexagon sizes? The red cells should stay constant in dimensions, and also the sphere is fixed. Maybe I have to modify the cell grid before giving the input to the Möbius Transformation? I would like to better control the transformation according to what I need, otherwise I use it just as a “black box”.

Half Sphere Hexagon (22.9 KB)

Maybe again the solution is much simple than i think


1 Like

I would assume you could use the vertex height value to do this. just loop over every hex and shrink them based on their negative height.