Author: Matt Pearson
Publisher: Manning, 2011
Aimed at: Programmers and artists
Pros: Some nice ideas attractively illustrated
Cons: Makes programming seem difficult
Reviewed by: David Conrad
This is not an easy book to review and it presumably wasn't an easy book to write. The idea is that artists should get technical and produce art that is based on software and occasionally some hardware. This is a really great idea but, and I say this with all due respect, artists are a difficult bunch to teach technology to. The reason is that you don't opt to be an artist if you are a techie - well not often at any rate. So your potential audience are going to be leaning in the direction of, if not quite the technophobe, at least the techno-doubter.
This book attempts to capture its audience by being on their side - an artist who just happens to program. The opening extended preface is full of friendly chat and examples. It is basically encouragement and warnings about what to expect.The first chapter attempts to get started on the programming of generative art but there is still a lot of convincing going on. You might be taken aback by the picture of the ZX Spectrum on page 10 - surely we can't be going back to old block graphics? No it is just the machine that the author learned to program on. Personally I would have chosen to keep such information to myself in fear of endangering my street cred.
Chapter 2 introduces the language to be used, i.e. Processing. This is supposed to be a language that is suited for use by artists but to me it seems very unfriendly and so similar to C, C++ or any block structured language that you might as well use almost anything. The tutorial tells you how to download Processing and how to get your fist program running - a simple graphics program. The problem is that in an effort not to look like a step-by-step guide the author simply makes it more difficult to get started. This is not the best getting started I have encountered. Before long we are well into the technology with jargon such as byte, string and char floating about. Then before you have had time to absorb any of the principles of programming straight into animation and the animation loop. On to operators, while loops, for loops and if statements. This is vary fast paced and all in chapter 1 remember.
Chapter 3 moves on to consider randomness and its near relation noise - two strong components of computer generated art.This is all good stuff and as long as you do manage the technical skills to understand it great fun. However, you had better not be a mathphobe because there are a lot of sines and cosines in the discussion. If you can't handle it by this point then my advice is to give up and buy some oil paints or water colors.
Chapter 4 pushes on into the undergrowth of trigonometry - hated by school children (and most artists) but key to doing almost anything in creative graphics. The book does a reasonable job of making it seem simple and at last we are starting to see some results that actually look like art. If you have indeed survived to this point you might just be getting excited. Chapter 5 moves into the third dimension and its mostly about using OpenGL, If you found the earlier chapters tough this one will certainly finish you off but it really doesn't go very far.
Chapter 6 starts a new area for the book - complexity. This is a very trendy area and many of the effects are very simple to program but they sit on top of a lot of very deep maths. Chapter 6 is specifically on emergence - that strange phenomenon where something complex and different seems to be produced by simple behaviours or rules. Here we encounter flocking and boids in particular and then for some reason we detour into object oriented programming. Flocking behaviour and its connection to emergence is treated in a few pages.
Chapter 7 deals with cellular automata - a rich sources of pattern and structure but the chapter is mostly about Life followed by some smaller examples - Vichniac Vote, Brian's Brain and Waves. Shame there isn't anything on 1D cellular automata. Chapter 8 is on fractals and I don't have to explain the sort of images that these mathematical sets produce. Unfortunately the book doesn't get vary far - fractal trees and a case study on fractal pentagons. Not the book's fault - the subject of fractals is very mathematical.
It is very difficult to say how successful this book is. If you are a programmer and want to look at ways of creating "artistic" graphics then it's not at all bad. If you are an artist wanting to extend your medium into computer art then it all depends on how good you are at mastering the technology. This book may look as if it is oriented towards your needs but because of this it makes the explanations all the more difficult. My advice would be to take the seemingly more unattractive path of actually getting a book on programming. With luck and the right book you will master the technology all the faster. Then return to this book and pretend that it's the art that taught you to be a code poet.
The bottom line is that if this book puts you off programming then don't think that it is you at fault - there are easier ways to learn. On the other hand this book does have some nice ideas even if it doesn't go far enough in most cases. It might just inspire you to buy that programming book and in which case - it all ends well...