Hexagon Tessellation Freeform Surface with constant angles?

Hi everyone,

I would need help with the approach to be choosen.
I want to be able to tessellate a freeform surface with hexagons. For my idea, in order to allow the curvatures, the hexagons may deform only in side lenght, while the angles shoul stay constant (120°) as much as possible. Which approach should I use?
Maybe circle packing can be a strategy? Or a dynamic relaxation adding if possible the constraint on the angles?

Is even possible to tessellate any freeform surface just by using deformed hexagons (with constant angle and free side lenght)?
The effect that I woul like to obtain is like the one in the picture. I obtained it with the Mobius Transformation, which is valid only for spherical shapes.


Thank you very much, any suggestion is appreciate :slight_smile:


Hi @daniel.rocco1995

If the edges of the hexagons are straight, the angles cannot all be exactly 120° for hexagons on a curved surface, since 3 around a vertex would add to 360°, which would make it flat.
You say ‘as much as possible’ though, so it sounds like you are happy with some variation in angle.

Allowing the edge lengths to vary you can cover some surfaces with all hexagons with only small deviations from 120° angles.
(These hexagons generally cannot also be planar though. Planar hexagons on curved surfaces would require bigger angle variations, and if the surface has any areas of negative Gaussian curvature, some of the interior angles need to be >180°, i.e. some of the hexagons need to become concave.)

If you allow the occasional pentagon or heptagon, you will be able to cover surfaces with less variation in the edge lengths (and still with each vertex surrounded by 3 faces). Indeed for surfaces which are not topologically a disk or a torus, it won’t be possible to cover them without some of these.

What is the intended application here?

1 Like

Thank you Daniel for the reply. Your answers always helped me a lot.

Yes I am aware about the need of pentagons and heptagons when you have curved surfaces. This is the result that I obtain if I use triremesh

Is it possible to tessellate this surface example (half sphere with fillet radius) only with hexagons varying only the side edge? As you said, yes I am happy with some variation in angle.

So in general you can cover any surface with hexagons, as long as you allow for high variations in the angles. To avoid such variations, is it more practical to use heptagons and pentagons as well, right?

Basically, I would like to avoid pentagons and heptagons, I want to cover a curved surface with a honeycomb structure. Now I have to understand wich surfaces I can cover only with hexagons and which method should I follow.

Thank you

You can approximate something like this with Kangaroo. In a first step a 2D hex mesh slightly smaller than the target surface is generated. The edges (polylines) of this hex “mesh” are rebuilt. With a second Kangaroo solver, the polylines are pulled to a mesh representation of the target surface. Finally the hexagons are planarized with a plane fit through their points. It’s an approximation and there are gaps. Since this is a “projected” tesselation, there are solely hexagons, except on the perimeter.

hex_panels.gh (81.1 KB)


Hi Martin,
thank you a lot! I think this is the approach that I need.
I don’t have experience with kangaroo but I will learn how to work with it.
I actually don’t need the final planarization, the hex mesh was my goal.

thank you again

1 Like