Evolutionary Optimization of Tilings
In large-scale projects, calculating tiling layouts for wall, floor, and ceiling surfaces becomes even more critical. Evolutionary optimization of tilings is a viable approach. Considering how time-consuming and labor-intensive this process can be, I considered using Galapagos, an old but often overlooked feature in Grasshopper, which might be particularly useful here. Galapagos provides an alternative interface for evolutionary optimization within Grasshopper. It works by minimizing or maximizing a fitness value you define, using parameters you set as the genome. In this case, it’s possible to tile a surface, such as a room floor, based on given tile dimensions and optimize the layout according to specific criteria, while instantly generating the result’s CAD drawing.

The evolutionary optimization of the tiling process starts with basic inputs: the surface geometry (a floor, wall, or ceiling), tile dimensions, and the grout width. If needed, you can adjust the orientation and offset of the tiles manually. I’ve created a custom Grasshopper cluster that uses these inputs to draw the tiling layout. The result is a set of closed polylines representing each tile. From there, I implemented three different optimization strategies. One aims to reduce the total number of tiles. Another focuses on avoiding small tile fragments by maximizing the smallest tile size. The third prioritizes increasing the number of full-sized, uncut tiles. These approaches can also be combined for more nuanced results. Once the layout is finalized, it can be baked and exported to other design tools such as AutoCAD.
If this Grasshopper project interests you, you can try recreating it by examining the diagrams. Alternatively, you can directly support me on Patreon and download the fully working Grasshopper file for the evolutionary optimization of the tilings project. I appreciate your support!
