Inspiration

as part of my studio, i had to investigate the santa catarina market in barcelona. the market is located in the city center of barcelona and impresses visitors with its interesting roof, which is stretched over the traditional market halls. The free form of the roof is covered with small hexagonal tiles depicting a pattern. By studying the market, I became interested in how such a construction is possible and how to write a suitable grasshopper script.
1. analysing the case study
In the construction of the santa catarina market, the architects formed the free shape of the roof out of wood and then covered the wood with hexagonal tiles. the tiles always have a small gap between them so that they can reproduce the shape.

2. simplifying the problem and creating a triangular mesh with connections
In the first step I tried to simplify the problem. In mathematics and also grasshopper it is much easier to divide an arbitrary area into three corners than into hexagonal areas.
Also i wanted to add some connections to the triangles, as an extra challange.
For this I used the Trymesh command, to create the triangular mesh, after this i offsetted the triangels. I also added connnection in the form of circles to the inner edges of the triangles. I used the region slit – componant to create cutouts for the connecting circles and to display the whole structure.


3. creating a hexagonal mesh with connections
after creating a mesh of triangles with the trimash command, i used the same component to create a mesh of hexagons. I used the lunchbox and Ngon plugin for this. By creating the dual mesh from my original geometry, I transformed its structure into a clean and organized hexagonal pattern. Instead of struggling with irregular hexagons or forcing a hexagonal grid onto the mesh, the dual approach naturally adapted to the surface, preserving its flow and proportions. This method ensured that the hexagons were evenly distributed and well-aligned, avoiding distortions that often come with direct remeshing. Not only did it give me better control over the final geometry, but it also maintained the integrity of the original mesh while optimizing it for design and analysis.The hexagons are created from the centers of virtual triangles, which form the actual mesh. unfortunately, the hexagons are not yet planar, which leads to some problems and is not like the original case study. for fun, I inserted connections into the sides of the hexagons again.


4. planarizing the hexagonal tiles and give them an offset
after creating a hexagonal mesh with the ngon plugin, i made the hexagonal tiles planar in the next step.
The process starts with my input polylines, which might have slight deviations from a flat plane. I also define a reference plane onto which I want these outlines to be projected. The key step is using the “Plane Closest Point” component, which takes each vertex of my polylines and finds its nearest point on the given plane. This ensures that all points now lie perfectly in one flat plane while preserving their overall shape.
Once the new points are established, I use the “Polyline” component to reconstruct the outlines using these projected points. The result is a set of fully planar polylines that maintain the structure of the original geometry but are now guaranteed to be flat.
to get a similar structure as in the case study. then i offset the tiles.


Plugins used
For the plugins I used the Lunchbox and the Ngon plugin to create a hexagonal mesh with the modified trimesh command.
https://www.food4rhino.com/en/app/lunchbox
https://www.food4rhino.com/en/app/ngon
Grasshopper file: