I started writing this in around January 2015, so it's only taken me what, six years to finish? I've resurrected it because during the UK lockdowns of 2020 I started picking up Processing again after a few years away from any kind of creative coding. It was a way of keeping myself sane, with the result that it's sparked my interest in using the software in ways I hadn't previously looked at. As such I'm hoping to stick with it this time round, producing more work, some videos, and hopefully some interactive pieces as well, all of which I'll blog about on here. As such, I thought I should try and finish this one off – it's only a very simple use of the software/methods, but it's a fun intro to what you could do when you start jamming different software/disciplines together.
Towards the end of 2013 I took a class on generative graphics led by Joshua Davis. One of the basic sections of the course – the one that attracted my attention and was the main reason for my taking the class – is the ability to feed in a group of SVG graphics and use them as the basis for brand new compositions, randomly generated inside the program. Almost immediately after finishing the course I found the perfect project to utilise the new skills I'd just been learning – designing a Christmas card, menus and namecards for a corporate Christmas party.
As this was for a Christmas themed project I decided to use snowflakes as a decorative element – rather than spend extra time trying to come up with enough variations myself I used a free set of vectors from Spoon Graphics.
When I started pulling together the information and laying out the templates for the namecards in InDesign it became obvious that I was going to need to use the Data Merge functions in InDesign. Creating the list of names as a CSV file and linking it to InDesign made the process of adding names to the cards a five minute job. So the cards all had different text content but the same background…
What if you could also change the background for each card, so that just as each snowflake is unique (allegedly), each card has it's own unique, one-of-a-kind snowflake patterned background?
You can add images to a data merge, by adding image fields in the data source, so all that's needed is to create dozens of individual pieces of artwork, which is where the generative artwork process comes in…
I saved each snowflake as a seperate SVG file. I used an open-source software called Processing to pull in a random number of the SVG's at random – so x number of SVG1, x of SVG2, and so on – from the group, and then place them randomly on the canvas.
Each SVG's colour was then dependent on where it was placed on the canvas, taking it's colour from a seperate colour map image. Want to change the colours? Just swap in a different colourmap. Each generated image was then exported and the process was re-run a total of 50 times to create 50 randomly generated images.
So now to tie everything together
In your CSV, the name for the column for your image paths needs to start with an “at” symbol (@). The @ symbol is only needed in that first line – the column entries below should include the image paths. Bear in mind that the paths are case-sensitive, and the naming conventions are different on different operating systems.
If you get an error message when you type the @ symbol at the beginning of the field, type an apostrophe (') before the @ symbol (such as '@Photos) to validate the function. Some applications, such as Microsoft Excel, reserve the @ symbol for functions.
That was just the table placenames. For this particular project there were also various other bits of printed collateral, including menus and seating plans, and they all received a similar treatment, ending up with unique, randomly generated background patterns. I also produced a couple of different Christmas card designs using the same techniques, but modifying the placement and colours.
If you're interested in my experiments with generative art, I've previously written about creating other artwork similar to the Christmas cards above and about creating a random sprout generator for use in an illustration.
What did you think?
If you enjoyed seeing a bit of a peek at my process – or even if you didn't – it'd be great if you'd let me know. If you could take a couple of minutes to let me know your thoughts it'd really be appreciated.
Thanks for stopping by:)