This blog records my professional development connected to a recent a-n bursary for training in creative coding (8 one-to-one sessions) with creative coder Chris Ball.
I began with some online exercises to understand the basic principles (am complete beginner) and to get the most out of my one-to-one sessions with Chris. I started by making simple shapes – ellipses, rectangles etc and added colour.
So far, surprisingly enjoyable! It is a very logical step-by-step process, and I can check where I have gone wrong fairly easily. I know it will get more complicated as I progress!!
Am familiarising myself with new terminologies where words have specific meanings in Processing: Class, Float, Argument, Syntax…
I can combine shapes to make simple pictures. The next stage involves animating the static images (called sketches in Processing). Am learning different ways to do this, using ‘Random Variables’, ‘mousePressed’ or ‘For Loops’. Our different ways of working are becoming apparent. Chris looks directly at lines of numbers to check things, I instinctively look at the images to check the code. This is probably not the best way; I am beginning to think of the lines of numbers as patterns that determine what happens to images.
The last few weeks has been a process of consolidating knowledge, by practicing over and over so that the code becomes more familiar to me. It is very similar to learning a new language.
And of course, I have been doing this whilst we are all in lockdown because of Covid-19. In many ways it is the perfect time for me to do this training, we can share screens via Skype so it’s easy to do the training online (Daniel Shiffman’s videos are also really helpful), and I have time to focus on this without the distraction of other projects, which are all sadly on hold..
So I have been practicing loops – a way of animating shapes using predetermined increments or by using random functions. Examples above.
A very enjoyable and rewarding training session with Chris yesterday! We wrote code with Arrays (sets of data), and used Class for the first time. Class allows you to use code in a modular fashion, and although it is confusing to start with I can see how the modularity enables you to re-use blocks of code to create new animations quickly and to multiply or modify objects and existing code easily. I have also learnt how to bring images (the snowflakes falling to the ground) into code to create animations. It feels as though I am beginning to absorb the language (syntax) of Processing and there are glimmers of clarity amidst the incomprehension and general confusion. I still find it difficult to retain things; I need to repeat a number of times before I can fully retain new syntax.
Chris observed that I am working more intuitively with code, and I find myself at times trying things out without being shown how. It would be fantastic to be able to test and experiment with code as I do with analogue materials, although I imagine it will take a long time before I am able to do this confidently. However my aim is not to become a creative coder but to be able to collaborate more meaningfully with coders through a better understanding of their process. This training will feed into a project at King’s College, London with Chris (more on this in future blogs).
I’ve been rewriting code from my previous sketches, changing them by creating Classes and Arrays. Each attempt had a syntax error that I couldn’t quite locate, and Processing error messages and suggestions are not always correct which is frustrating. But glad to learn that the code was mostly correct when Chris looked at it, and that I had missed small things. A semi colon makes all the difference!
I have reached a point in my training where I am confident in my understanding of the basics of Processing, and can follow code that Chris has written (with explanations as it is much more complex than my simple sketches). This is an important stage as it means that I can collaborate with him more meaningfully. We are now moving between code I write and code he writes. The example above is from code he has written in response to an image I sent him, and by creating a ‘Linefollower’. It is in effect a drawing tool that detects lines and follows them (with an element of noise/randomness).
This is how it works: the ‘Linefollower‘ (above) has three eyes, one which looks ahead, one to the left and one to the right. They detect the ‘edges’ of shapes and each have 6 degrees of affordance. We can play with changing the thickness of the lines, the number of lines, the speed, the angle of change … All these parameters change the quality of the drawing. It is fascinating to see the correlation between the data we put in and the changes in the drawing.
This code is the beginning of tests we are making for a bio-sensor participatory work, which we hope to test at Kings College in autumn this year.