Programming Interactivity: A Designer's Guide to Processing, Arduino, and openFrameworks

Author: Joshua Noble
Publisher: O'Reilly
Pages: 734
ISBN: 978-0596154141
Aimed at: Artists and designers
Rating: 4.5
Pros: A really fun book for hands-on projects
Cons: A bit advanced for the non-specialist
Reviewed by: Harry Fairhead

This is an odd book but it will suit some readers exceptionally well. It covers three topics that you might not think fit together particularly well:

  • Processing a Java-based framework for building desktop, web or phone applications.
  • Arduino, an open source microcontroller prototyping device
  • OpenFrameworks, a C++ framework for user interfaces.

These are seriously technical topics and yet they are explained for the artist and the designer who cannot be assumed to be easy with such topics.

The whole idea of the book is to provide information about how machines and devices can be made interactive using a combination of hardware and software. The book is explicitly targeted at designers and artists wanting to build novel interactive systems that you might find in a museum or art gallery but it will also be of interest to the hobbyist, maker, inventor or robotics enthusiast. It's ideal for any student with a science or computing project to complete.

The first section of the book sets the scene with an introduction to programming, Processing, Arduino and openFrameworks. None of this is easy going if you really are new to the ideas and the pace is quite fast.

Part Two gathers the ideas together into themes - sound and audio, input, graphics, feedback and protocols. This is possibly the most useful section of the book as it covers "recipes" for a wide range of sensors and transducers including some quite advanced things like force and tilt sensors.

Part Three is all about more adventurous techniques and bigger projects. It opens with a chapter on the OpenGL 3D graphics system and moves on to using GPS data, touch sensors and wider area control systems using X10 devices. It's all exciting stuff and should be enough to get you thinking about breaking out the soldering iron and prototyping board, or at least buying some off-the-shelf electronics.

Despite the best efforts of the book to simplify the ideas I don't think that the complete beginner is going to get very far unless they have some help. The technologies that the book tackles are not watered down enough and they still have rough edges that can puzzle the expert, let alone the beginner. On the other hand if you know some of the basic ideas of programming and electronics or if you are willing to put some effort into mastering the things you find difficult then this is a very enjoyable book.

Last Updated ( Friday, 16 October 2009 )