Coilgram — A creative history of blockchains
The Coilgram series tells the history of blockchain through coiled representations of iconic moments of several blockchains, identified by specific blocks of the chain. Essentially Coilgram is an algorithm that uses the hash of a block to produce a corresponding unique artistic representation which is tokenized as NFT.
A hash is an hexadecimal number (typically of 64 figures) that digests a message of arbitrarily length (some collisions are possible). For instance, using the cryptographic hash function SHA-256, the text Hello world hashes to:
Coilgram is an algorithm that reads a hash and uses it to forge artworks shaped as colored intertwined coils. The method is deterministic: the same hash as input gives the same coiled design as output. Moreover, different hashes generate different coils (in shape and color). Therefore, there is a one-to-one mapping between hash codes and coil designs. A hash is just a string of characters representing some information and Coilgram displays it in a creative way. The algorithm has been coded in Processing.
How does this work?
Coilgram first converts the hexadecimal hash into a binary string and then uses this string of bits to determine the shape and color of the coils, hence to generate a unique artwork encoding the hash. Essentially, it uses the hash binary string as a generator of pseudo-random numbers to set the parameters of the artwork.
Hash numbers might be used as a reasonably accurate source of randomness. To be sure, I retrieved the first 1000 block hashes of the Ethereum blockchain and converted them into binary numbers (each hash is a 256 bit long binary number). I noticed that the frequencies of 0s and 1s in these strings are very close to 0.5 (precisely 0.5001758 for 0s and 0.4998242 for 1s).
More specifically, Coilgram uses Perlin noise, a technique developed by Ken Perlin working for the movie Tron (1982), in order to introduce some harmonic randomness in the design. To obtain a deterministic behavior (the same input, the same output), the seed of the noise generator is fixed at each coil generation (the final artwork is made of 100 twisted coils). In particular, with an arbitrary choice, the sketch uses the first 100 Fibonacci numbers as noise seeds to generate a coil design.
A generative master
Coilgram is inspired and dedicated to Matt Pearson, who first tought me the beauty of generative art. Thanks, a lot!
A programming language is, after all, just another language. And a language can be spoken in many different ways, with a variety of accents or inflections. (…) But if a language isn’t capable of poetry, it has clearly lost its relevance on the human side of the equation. Matt Pearson