Generative Zellij

Procedurally generated Zellij compositions. Click on the drawing and press the space bar to generate a new composition. Press the ‘s’ key to download an SVG file.

Yes, I am somewhat ashamed to admit that a couple of years ago, I experimented with NFTs. Look: I was younger then, and I didn’t always make the best decisions.

Actually, I rather liked the the platform I was using for experimentation. I was playing around with fx(hash), a website where individuals could post works of generative art and offer them up for sale as NFTs. What I particularly like about fx(hash) is that the NFT you receive uses its cryptographic signature as a source of randomness to drive the generative process. At a high level, that means that the act of purchasing an artwork mints a random new design unlike anybody else’s. I was also interested in the fact that fx(hash) used Tezos as its cryptocurrency, a token that’s supposedly less environmentally destructive than, say, Bitcoin or Ethereum (though I gather it comes with its own problems).

At around the same time, I had also become interested in Islamic geometric patterns (IGP) that depart significantly from repetition and regularity. I like the idea of adapting the visual language of these patterns to a more “freeform” context, moving them from their traditional role as surface ornamentation in the direction of self-contained artistic compositions. However you might feel about NFTs (and you’re not wrong), fx(hash) provided an excellent medium in which to explore the construction generative artworks inspired by Islamic patterns.

In this project I focused on Zellij designs. This term generally refers to a style of IGP common in Morocco, based on a small vocabulary of glazed tile shapes derived from an eight-pointed star. Jean-Marc Castera breaks the structure of such patterns down into a “skeleton” made of alternating sequences of stars and “safts” (shuttle-shaped hexagons), with additional tiles used to fill the spaces delineated by the skeleton. My idea, then, was to procedurally generate the skeleton, and then fill its spaces with predetermined arrangements of Zellij tiles taken from traditional designs. To generate the skeletons, I borrowed some ideas from the literature on aperiodic tilings—I laid out a random collection of lines with orientations at multiples of 45 degrees, and computed the geometric dual of those lines, a process that’s guaranteed to produce a skeleton that’s compatible with my plan as stated above. I played with additional degrees of freedom to control colour, layout, and so on. The result is what you see in the interactive demo above: an unlimited supply of little arrangements of Zellij tiles.

The description in the previous paragraph is decidedly superficial, and glosses over a large number of details that would be important for anybody trying to reproduce this work. I won’t explain everything here. If you want to learn more about the technique, I wrote up a twitter thread (with illustrations) that provides a decent summary. The full details are laid out in a short paper from Bridges 2022. The paper is only four pages long with lots of illustrations, so it should be quite accessible to anybody with basic math and computer science skills. Of course, a sufficiently determined programmer could just go directly to the app embedded above and start working through the source code (I might put the code on Github at some point, but I’m not in a rush to do so).

As for NFTs, they seem to have fallen mostly out of favour, which is probably a good thing. But I won’t rule out the possibility of returning to fx(hash) to post more artworks. Despite all the controversy, the platform is a good forcing function for thinking about generative art within a productive set of aesthetic constraints. It’s also a reasonably supportive community, and the best work on the site is of high quality.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.