Generative Zellij
Year: 2022 Authors: Craig S. Kaplan
Core claim
Multigrid dualization can efficiently produce bounded generative zellij compositions with randomized skeletons, polygon merges, and tile-filled patches.
Topics
generative art, Islamic geometric patterns, multigrid dualization, zellig tiles
Domains
tilings, aperiodic tilings, polygon dualization, geometry, ornamental design, Islamic art, procedural graphics, ceramic tile patterning
Methods
random line selection, multigrid dualization, polygon merging, precomputed patch filling
Media
Javascript program, SVG files, browser display, ceramic tile motifs
Paper text
The text below is the locally extracted OCR/Markdown version of the paper. Raw PDF files remain local and are not published here.
Bridges 2022 Conference Proceedings
Generative Zellij
Craig S. Kaplan
School of Computer Science, University of Waterloo, Ontario, Canada; csk@uwaterloo.ca
Abstract
I present a technique for generating random self-contained compositions in the style of zellig patterns, a type of Islamic geometric pattern found in Morocco and southern Spain. I use a multigrid dualization method to generate a random arrangement of polygons, and fill each polygon with a precomputed patch of zellig tile shapes.
Introduction
Generative art refers to a broad range of artistic practices in which an artist establishes a set of rules or procedures that govern the creation of an artwork, and then allows those procedures to play out without human intervention [3]. In the twentieth century, experiments by pioneering artists like Sol LeWitt and John Cage led naturally to procedural art drawn by computers, with the obvious benefits of high-quality computer graphics, precise mathematical calculations, and random number generators. The speculative bubble surrounding Non-Fungible Tokens (NFTs) is currently driving renewed interest in generative art.
The generative aesthetic can inspire new takes on traditional styles of art and ornamentation. An autonomous process driven by randomness can produce new designs that are novel and unexpected, a trait that certainly accounts for some of the success of art produced using convolutional neural networks.
I am interested in the intersection of generative art and Islamic geometric patterns. I seek to develop algorithms that automatically generate new designs in the style of traditional patterns, but with some amount of random, unpredictable structure. To my knowledge, generative Islamic art has not received a lot of attention. Traditional patterns are carefully organized and repetitive (appropriately so in an ornamental context). Sama Mara’s procedural graphics for “A Hidden Order” are inspired by Islamic art [4], but are not based on traditional geometric elements.
In this paper I present a technique for constructing generative Islamic designs inspired by zellig patterns. Here, zellig refers to a style of Islamic geometric pattern common in Morocco and southern Spain, usually composed of thousands of small, hand-cut ceramic tiles. I first construct a coarse polygonal patch using
Figure 1: Four standard skeleton polygons used in zellig patterns: a square, a rhombus, a hexagon, and an octagon. Each polygon is shown filled by standard tile shapes in a few distinct ways.
Kaplan
Figure 2: A demonstration of constructing a random skeleton using dualization. Different line intersections (a) dualize to the four skeleton polygons of Figure 1. A random subset of lines through the points of an integer lattice (b) dualizes to a set of such tiles (c), which can then be placed edge-to-edge to create a random patch (d).
techniques related to aperiodic tilings, and then fill each polygon in the patch with an arrangement of zellig shapes taken from a predefined library.
Skeletons of Stars and Safts
Jean-Marc Castera conducted a thorough analysis of the geometry of zellig patterns, including the large stars that they often contain [1]. He showed that many patterns can be understood in terms of a skeleton, a coarse subdivision of the design’s bounds into
equilateral polygons with edge orientations constrained to multiples of 45 degrees. A pattern’s skeleton is usually covered by a network of two shapes, shown in the inset: an eight-pointed star formed from two overlapping squares, and a hexagonal saft, a square combined with two isosceles triangles. The polygons of the skeleton are then filled with additional zellig tiles, usually taken from a standard set of a few dozen shapes.
Figure 1 shows four simple skeleton polygons drawn as outlines: a square, a rhombus, a saft-like hexagon, and an octagon. Each polygon is accompanied by a few patches of zellig tiles that can be used to fill it. In each patch, the outer boundary of the polygon is traced by an alternating sequence of black stars and safts. Most of these patches are common in real-world zellig patterns. A few were discovered using a brute-force search in unpublished work by Edgar A. Bering IV.
Many other skeleton polygons arise naturally in zellig patterns, and are filled with standard patches. I focus on the four polygons shown here because of their compatibility with the skeleton construction of the following section.
Constructing Random Patches Using Dualization
We can now construct a random zellig pattern from any collection of skeleton polygons meeting edge-to-edge. It would be easy, but slow, to generate arbitrary large simply connected patches using a brute-force search with backtracking. Fortunately, a variation of N. G. de Bruijn’s multigrid method [2], first developed to explain the structure of Penrose tilings, offers a fast method for creating random patches.
In the multigrid method, de Bruijn superimposes five gratings of evenly spaced parallel lines in general position, and places a rhombus dual to every intersection of two lines. Remarkably, the rhombuses slide together to tile the plane with no gaps or overlaps. Subsequent work by others [5, 6] demonstrates that this dualization technique generalizes to a wide variety of input geometry.
Figure 2 illustrates the variation of the multigrid method that I use to create random skeletons. If primal
Generative Zellij
Figure 3: By carefully selecting configurations of lines as input to dualization, we obtain clusters that can be merged into larger skeleton polygons such as a double square (left) and a large star (right).
Figure 4: A selection of results with different scales, patches, and colour schemes.
lines are constrained to multiples of 45 degrees, then the edges of dual tiles will be as well. Unlike de Bruijn’s method, lines are not required to be in general position: more than two lines may intersect at a point. Up to rotation, Figure 2(a) shows all possible intersections that can arise, for which the dual polygons are precisely the skeleton polygons shown in the previous section. Given all lines passing horizontally, vertically, or diagonally through the points of an integer lattice, I choose a random subset within a bounding region, shown in bold in Figure 2(b). When a tile is placed at every intersection as in Figure 2(c), and all empty space is removed by sliding tiles together along their lines, the random skeleton in Figure 2(d) emerges. I then fill every tile by choosing a random patch for its shape from Figure 1.
Incorporating Larger Skeleton Polygons
Not all common skeleton polygons arise naturally through dualization of line intersections. However, we may still recover some variety by postprocessing the skeleton to merge suitable clusters of adjacent polygons.
Consider, for example, the arrangement of two horizontal and two vertical lines in the top-left of Figure 3. We can override the random selection of lines in the previous section to force these four lines to be included, and to suppress all other lines through their four points of intersection. That choice forces a arrangement of squares to be included in the skeleton. I merge those squares into a single larger square, which supports a few distinct patches, as shown. The more complicated arrangement of eight lines on the right of Figure 3 yields a cluster of eight squares and eight rhombuses, which can be merged into a large star polygon that supports a sixteen-pointed rosette.
This method of controlling the graph to induce mergeable clusters generalizes to many skeleton polygons expressible as unions of the polygons in Figure 1.
Results
I have implemented the technique described here as a Javascript program that runs in a web browser, and that can produce a generative zellij pattern more or less instantaneously. The program chooses a random colour scheme, and adds low-level randomness to the colour of each tile. Compositions can be displayed in a browser window, and downloaded as SVG files. Figure 4 shows a selection of randomly generated results. The program generates results that are aesthetically pleasing as bounded compositions (as opposed to fragments of infinite ornamental patterns).
There are many ways to extend the scope of this work to handle a broader class of generative Islamic geometric patterns. Most obviously, the dualization technique generates only a few skeleton polygon shapes, eked out slightly by merging clusters. Some important skeleton polygons are not expressible as unions of the four polygons in Figure 1; future work could consider other algorithms for fast generation of skeletons that incorporate different polygons. More broadly, it would be interesting to expand beyond my highly modular approach, based on a fixed vocabulary of zellij tile shapes and a small set of precomputed patches. A fully general algorithm would generate sets of aesthetically compatible tile shapes, together with rules for assembling them into abstract compositions.
Acknowledgements
Thanks to Edgar A. Bering IV for contributing the results of his work, and to Rebecca Lin and the anonymous reviewers for their helpful feedback.
References
- [1] J.-M. Castera. Arabesques: Decorative Art in Morocco. ACR Edition, 1999.
- [2] N. G. de Bruijn. “Algebraic theory of Penrose’s non-periodic tilings of the plane. I.” Indagationes Mathematicae (Proceedings), vol. 84, no. 1, 1981, pp. 39–52. https://www.sciencedirect.com/science/article/pii/1385725881900160.
- [3] P. Galanter. Generative Art Theory. John Wiley & Sons, Ltd, 2016. ch. 5. pp. 146–180. https://onlinelibrary.wiley.com/doi/abs/10.1002/9781118475249.ch5.
- [4] S. Mara. “The Rhythm of a Pattern.” Bridges Conference Proceedings. Jyväskylä, Finland, August 9–13 2016. pp. 309–316. http://archive.bridgesmathart.org/2016/bridges2016-309.html.
- [5] P. Stampfli. “New Quasiperiodic Lattices from the Grid Method.” Quasicrystals, Networks and Molecules of Fivefold Symmetry. I. Hargittai, Ed. VCH Publishers, 1990. ch. 12. pp. 201–221.
- [6] D. Zongker. “Creation of Overlay Tilings Through Dualization of Regular Networks.” ISAMA 99 Proceedings. N. Friedman and J. Barrallo, Eds. 1999. pp. 495–502.