Socolar Tiling
An aperiodic tiling is a pattern that covers the plane without ever repeating itself (i.e., it is non-periodic). A few special shapes, arranged according to specific rules, can cover the entire plane, but the resulting pattern never repeats exactly. I embarked on a 3-day coding sprint to create a general-purpose script in Grasshopper that could generate these tilings. I set Socolar Tiling as my first target. This link contains great information about this and many other aperiodic tilings. Socolar Tiling has three substitution rules with squares, hexagons, and rhombuses.

My first objective was to enable Grasshopper to recognize a specific set of 2D shapes. I developed a cluster that explodes incoming shapes, calculates the distances of their vertices from the shape’s centroid, sums these distances, and then normalizes them by dividing by the longest distance. This method turned out to be useful. For instance, a shape now returns a “fingerprint value” of 1.1666 for a hexagon, 1.25 for a square, and 0.883975 for a rhombus, regardless of scale. The next step is to use it as a base and draw the tiles of Socolar Tiling. The challenge was ensuring the new shapes are placed correctly, even when they vary in scale and angle. I placed the vertices of the new shapes using polar coordinates relative to the plane of the source shape.

I created the final product as a Cluster. You can chain them together to generate multiple iterations of the tiling. You can check and reproduce the clusters in the images. However, if you want to support me by downloading my Grasshopper file for the Socolar Tiling, you may consider checking my Patreon page. Thank you.
