Perforations - Creating ancient artefacts from code
written by AutoEclectus
This work started with asking a question: How, using code, could I create something that looked like it had been dug up and found, an ancient artefact? Can you make something completely digital that looked like it had all the marks of time and mis-use.
In my mind, I could see shield like objects, covered in scars and patterned by the passing of time and the weather. I had a backstory in my head about ancient artefacts that had been buried a millennia suddenly being found across the world. The origins of the artefacts remained a mystery. What are they? Who made them? What were they trying to tell us?
VCA Residency
I stated work on Perforations back in March 2023 but shelved the project after a month as I got distracted by other projects. But the idea was was always there and I would come back to it on and off over the following months.
During this time, I was selected to join the VCA Residency programme’s 6th cohort. I was honoured to be selected and participate in this unique programme. I got the chance to connect with other artists from all over the world and learn from an experts via the programme of online classes. The final part of the residency is an auction and each participant was invited to submit a work for inclusion. I knew fairly early on that I wanted my submission to be Perforations. So here it is!
Creating ancient artefacts from code
The obvious place to start was to look what shape these objects would be. I selected a number of shapes to explore - shields, ellipses, circles and eggs.
Shield or tablet
The shield or tablet shape was my first choice of outline. It was relatively easy to create a perfect rectangle, but these had all the organic qualities of a pice of lego. They needed to be roughed up a bit. I tried several methods, but decided on generating some rough curves from random-ish points around each corner. Applying a bit of smoothing (via a Chaikin’s smoothing algorithm), produced some nice variation without losing the overall shield shape.
Ellipse
The basic ellipse is easy to create with some simple mathematics. But as with the rectangles, they need a bit of roughing up to take on a more hand crafted and aged look. I already have a function that can produce an irregular polygon, using noise to provide a bit of wobble as it defines the outline of an ellipse. So I took the points generated by this function and rand it through the smoothing function to give it a nice uneven but smooth outline.
Circle
Again using my irregular polygon function, I created some circular shapes using the same approach as for the ellipses. They worked ok, but there was something too regular about their shape. They were not providing that organic, ancient artefact feel that I was after. So hundreds of preview circles later, I decided to not use the circle shape.
Egg
Have you ever created an egg shape via code? It is not as straight forward as it I expected. Did a some research as to how to describe an egg shaped path and there are a number of nice approaches.
Chi Shang Cheng has a great blog post Drawing egg shapes with p5.js. They explored the use of Euclidean eggs such as Moss’ egg and Thom’s egg. Check the article out - it has some nice interactive examples of how to implement each approach.
So now armed with an approach to drawing a path shaped by and egg I decided to keep their shape fairly well defined and not rough them up too much like the other shapes. The egg shape is so symbolic that it already oozes the organic feel that I was after.
Texture and patterns
The next task was to create some texture on the shapes. This is probably the most time consuming part of the creation process. I wanted to give the shapes a surface texture that made them look like metal that had been pierced.
The approach was to generate a set of points in a plane and use Delaunay (Voronoi) Tessellation to divide up the shape into organic looking cells. This is one of my favourite approaches to creating an organic pattern using code.
Depending on how you place the set of points, you get some nice patterns emerging. Jason Webb has a some great examples in this GitHub site: 2D Voronoi experiments in JavaScript There are lots of other resources out there for this tessellation method.
Patterns
I generated a number of patterns that use circles, lines and curves to create some (hopefully) enigmatic patterns that spread across the surface of the objects.
Textures
For the textures, each cell was assigned a fill-type and a colour, using two noise fields to distribute the texture. Some of the cells were marked as holes, while others are given a variety of textures. You can see in this close up detail some of the different cells types and the graduation of colour between cells.
In order for the holes to look like holes, I spent a lot of time experimenting with various lighting approaches. The overall shape of each object is pierced through with holes that let the light through from the background. I played some animated lighting approaches but found them more distracting than useful, so ended up using gradient background that shows the holes backlit.
Creating an art-creature
As with any long-form generative art project, a lot of time is spent generating thousands of previews, pushing the algorithm to create your vision. Each iteration of the creation process involves tweaking the algorithm to either weed out unwanted features or promote those features that are adding to vision.
I often think it is like creating a creature that will give birth to art. The exciting part of the process is the end where you let your creature loose on the platform and see what creations it gives life to!
Hope you enjoy it as much as I did creating it.
AutoEclectus
Perforations on fxhash
Perforations is part of the Vertical Crypto Art Residency 6th Cohort Auction, July 2023
Perforations is an exploration of time.
What if we found a set of ancient artefacts buried underground for unknown millennia? What are they? Who made them? What are they trying to tell us?
These artefacts have been somehow pierced, leaving behind holes in distinctive but unknown patterns. Their surfaces have been marked by the passage of time. Maybe the patterns are a message. Or a map. Or a clue.
Perforations explores the idea of communicating across vast time scales, where there is no common language between those who left the artefacts and those who found them.
The work invites us to imagine what information could have been so important that it needed to be recorded in this manner and left for future generations to discover.