Sunday, July 22, 2007

Processing Stuff

I've just been porting my Flash physics work into Processing. A demo with big chunks of source here.

Friends of Ed were nice enough to send me a copy of Ira's book to review. It's taken me some time to think of stuff to say because I'm busy working in Flash these days so it's hard to find some Processing time. To be fair - I've looked through it, but I haven't used it. I want to sit down and read the collision section of course because of the physics stuff I'm doing but I also have a day job, and I've just managed to hack around irregular surface collisions with a rather crazy implementation of the bresenham algorithm (yup - bounce it off a surface by detecting the level of penetration into a pixel map - with one particle it's unrealistic - with a spring box it's like the real deal).

The book is aimed fairly well at where I was when I started using Processing a few years ago. I had no idea how to program, some pretty concrete illusions about how everything was done and no knowledge of math. If I could have sent Ira's book down a wormhole back to me when I started to pick up this Processing lark I'd have had a much easier time of it (although the differences between Processing 68 and 120+ would have been a pain).

The book pretty much covers the basics of everything. Which is a very Processing way of going about stuff. You don't get into the complications of heavy Java which most advanced users get into. On the whole I find I pretty much understand everything explained to me in the book - which is a miracle for a book on programming. A lot of the examples look quite pretty and inviting and I can see myself thumbing through it if I hit a creative block.

If I had a criticism of it it would be the shotgun approach to learning that goes on in it. It's a great book for getting someone into Processing and I would recommend it to a student but I tried using it for reference purposes a few times and it cut me off before I could find the specialist information I needed. So either I'm a little above the target audience's level or I'm just too picky about what I want to find out. There's points where I'm looking through it thinking, "ayuh, there's a faster way of doing that," but you can't really confuse beginners with the speed stuff straight away I guess. Basically, it's a teaching book, not a reference manual - it won't revolutionise the way you code, just expand your horizons.

So if you've got an artist friend who wants to get into using Processing, I would recommend this book to them, it should help a lot. More advanced users might find it a strange book in terms of use for programming. I'm used to "get to the point" manuals, harrassing people on the web (sorry forum) and online tutorials. As programming books go, it is incredibly wordy, but artists (and I am the exception to the rule) are also wordy creatures, so this may go down well with the new breed of art-geek that has hit the world this century. In summary - if I was teaching Processing I would find this useful for shoving under my students noses, and I think they would find it useful too.

Colour of Munny exhibit
CAPTCHA being defeated by image analysis - PWNtcha
Dollar origami
Echodrome trailer - optical illusion game for PS3

InkScape: Open source vector graphics tool