"A Cidade Que Inventamos" is a pattern created with Patterning in 2022 at an artistic residency in Buinho Rural FabLab in Messejana, Alentejo in Portugal.
The pattern constructs a random city-scape from a number of tiles, some of which have their own internal variations.
One of the quirks of the Patterning library is that grids are, by default, filled column-wise rather than row-wise. This naturally leads to creating a stylised city from vertical runs of tiles, leading to tall, narrow buildings that are somewhat inspired by the clock-tower and chimneys of Messejana.
Multiple versions of this pattern can themselves be tiled together to make a yet larger city. The original exhibition featured a larger laser-engraved panel made of 5 x 4 smaller city-scape tiles.
2025 NFT
Many uses of the pattern are intended to be static. I've laser-engraved it on wood tiles, game boards, and on "blank" panels for modular synthesisers. But in 2025 I was invited to take part in an exhibition of NFTs an started to look into the FX(hash) platform for generative art.
NFTs are weird in general. The whole idea of artificial scarcity for digital things is a kind of absurdism. And I have many critiques of and issues with it. Nevertheless I also think that blockchains do have potential value, but that it's coins like Tezos that are the most likely to live up to the positive hopes for cryptocurrencies.
FX(hash)'s approach to generative art is that each minted edition should be unique. The platform tries to ensures this by providing its own pseudo-random number generation functions that are seeded by the token / buyer. (I'm not quite sure which TBH). This means each edition gets a different stream of random numbers, but any particular edition is deterministically repeatable whenever we view it.
The Patterning library uses standard system randomness, but to fit the FX(hash) ethos I needed to ensure all randomness came from their random library. This involved retrofitting Patterning to take an optional RandomGenerator object in all places where it uses randomness. Making this change correctly, especially getting it working for ClojureScript to use an object created by Javascript (as a wrapper around the FX(hash) library) actually took about a week. But eventually it works.
Although the pattern is a static one. Because this NFT version is dynamically rendered in the web-browser, we can play with some other variation. In particular the city clocks now show the current time. And the position and density of the people varies slightly with the time of day.