Evolutionary Optimization of Tilings
In large-scale projects, calculating tiling layouts for wall, floor, and ceiling surfaces becomes even more critical. Evolutionary optimization of these tilings seemed to be a viable approach yesterday. Considering how time-consuming and labor-intensive this process can be, I tried using Galapagos, an old but often overlooked feature in Grasshopper, which might be particularly useful in this situation. 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 genomes. 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 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. Once the layout is finalized, it can be baked and exported to other design tools such as AutoCAD. You can see all three optimizations in the image below:



