Friday, February 14, 2020

A review of Processing books

Processing is the free and open Java development environment that targets artists who are intrigued by generative code. In essence it is the Java language with a friendly development interface and built-in libraries to get you started.

There are plenty of ways to learn Processing, including the tutorials on the organisation's website, and the built-in examples that come with the distribution. But if you prefer a printed book, keep reading. This article will review nine available publications, so you can make an informed purchase decision.

For the sake of completeness I will also append information on two books I haven't had a chance to read.

Recommended books

Reas, Casey and Ben Fry. 2014. Processing: A Programming Handbook for Visual Designers and Artists. Second edition. London: The MIT Press. website

This book is straight from the horse's mouth; Reas and Fry created Processing. The 38 chapters cover an extensive array of topics: drawing and shapes, interactivity, variables and program flow, typography, images and transformations, animation, data manipulation, 3D graphics and rendering. The four main sections are bookended by informative practitioner interviews. There's a glossary, reading list, and index. If 640 pages isn't enough, supplementary chapters are available on the website. If you had to buy just one Processing book, this would be the one, since it covers both the basics and more advanced applications.

Shiffman, Daniel. 2015. Learning Processing: A Beginner’s Guide to Programming Images, Animation, and Interaction. Second edition. Burlington, MA: Morgan Kaufmann. website

If you have done little previous coding, this is a good guide, since it approaches Processing from scratch. The thorough topic list includes language constructs (loops, functions, objects), maths and transformations, working with images and video, data manipulation and networking, sound, and exporting. 525 pages.

Many of the examples will be familiar from the tutorials on the Processing website. Shiffman is also known for his cheerleader-style videos, which cover just about every topic under the sun with a ridiculous amount of enthusiasm. If you avail of the resources Shiffman's generosity makes available for free, you might find little need for this book. But for those who prefer the printed page, it's a good alternative to Reas and Fry.

Shiffman, Daniel. 2012. The Nature of Code. New York: self-published. website

This book is a more advanced consideration of techniques for generating algorithmic visuals. It's the perfect follow-up to Shiffman's Learning Processing. Indeed, those who already have some coding background should skip directly to this volume, after looking at the online tutorials.

The first sections cover physics (vectors, forces, oscillation) and particle systems. With this groundwork in hand, topics in algorithmic visuals are tackled, including autonomous agents, cellular automata, fractals, genetic algorithms, and neural networks. All of this in Shiffman's usual style: pleasant, accurate, thorough. I would buy this alongside Reas and Fry, since there's not much overlap in the topics. 520 pages.

Fry, Ben. 2008. Visualizing Data. Sebastopol, California: O'Reilly. publisher and author websites

This book provides a rigorous methodological framework for approaching the complex topic of data visualisation, alongside useful code examples. Two introductory chapters cover the visualisation workflow and the basics of Processing. Then we launch into the nitty-gritty of acquiring and parsing data, mapping, providing interaction, time series, scatterplots, tree maps, recursion, networks and graphs, etc. You will notice immediately that this book is more focused and technical than others. An updated edition would ice the cake, since this volume is getting rather old. 365 pages including index.

Greenberg, Ira; Dianna Xu; Deepak Kumar. 2013. Processing: Creative Coding and Generative Art in Processing 2. New York: Apress. website

This book provides an introduction to Processing for those new to the environment, teaching programming fundamentals and the elements of the language alongside sections tackling specific problems. There is nothing wrong with this approach, but if you already own one of the other introductions, the first half of this book is redundant. Thankfully, the topics do get more involved: advanced OOP (encapsulation, inheritance), data visualisation (parsing, graphs, heat map, word clouds, interaction, tree map), motion (vectors, boundary conditions, verlet integration), recursion and L-systems, image manipulation (bitwise manipulation, masking, filtering, convolution), 3D graphics (perspective, projection). 445 pages including index. While the contents overlap others here, these authors offer a deep and broad approach of significant value.

Other titles

Richardson, Andrew. 2016. Data-driven Graphic Design: Creative Coding For Visual Communications. London: Bloomsbury. website

This is an odd book that doesn't seem to know its audience. In part, it's a coffee-table volume highlighting creative use of code with full-page illustrations. Such a book should present interviews with practitioners, detailed background on artworks, and analysis of the intriguing interactions between technology, aesthetics, and the marketplace. But very little of this is actually found between these covers.

Instead, each chapter concludes with code examples, as though this is a book for programmers. But coders are hardly edified by statements like "The ability of a computer program to infinitely repeat calculations and processes gives it an enormous potential for creating complex drawings and graphics." This obvious statement is found, not in the preface, but well into chapter two! Topics include generative drawing, growth and form, dynamic typography, interactive projections, and data visualisation.

Pearson, Matt. 2011. Generative Art. Shelter Island, NY: Manning. website

Similar to the Richardson volume, this book attempts an overview of generative art while at the same time introducing the coding skills that might produce such wonders. With its greater emphasis on programming, it does a better job. But at 200 pages, the volume is slim. The first chapter provides a sketchy (pun intended) introduction to the topic, with insufficient historical examples. The second chapter contains a very basic introduction to Processing. Further topics include: randomness and Perlin noise, simple shapes, OOP, cellular automata, and fractals. The code examples reward study, and are the strength of this volume. But this material is covered with greater focus elsewhere.

Lees, Antony, ed. 2019. Beginning Graphics Programming with Processing 3. self-published. website

This book was assembled as an independent publishing project by a group of students. Section 1 covers programming principles (algorithms and operators through to OOP); section 2 examines shapes and interaction; section 3 covers images, rendering, curves, and 3D. These contents are most suitable for a beginner; hence the book competes head-on with Shiffman. 650 pages.

Gradwohl, Nikolaus. 2013. Processing 2: Creative Coding Hotshot. Birmingham, UK: Packt Publishing.

This book consists of nine projects: cardboard robots re-enacting Romeo and Juliet, a sound-reactive dance floor, a moon lander game for Android, etc. These emphasise interactivity and physical computing, integrating Processing with environments such as Arduino. You'll want to get this if you are tasked with running a workshop for tweens, but otherwise it's rather difficult to know the audience.

And more

Two further books come highly recommended, but I haven't yet had the opportunity to check them out. Send me a copy if you'd like a review!

Bohnacker, Hartmut; Benedikt Gross; Julia Laub; Claudius Lazzeroni. 2012. Generative Design: Visualize, Program, and Create with Processing. Hudson, New York: Princeton Architectural Press. website

Don't confuse this with the newer version that covers similar topics, but implements them in Javascript rather than Processing. 472 pages.

Glassner, Andrew. 2011. Processing for Visual Artists: How to Create Expressive Images and Interactive Art. Natick, MA: A. K. Peters. website

Designed for code newcomers, this includes advice on workflow and standards not commonly found in other books. An enormous 937 pages including index. Freakishly expensive.


1 comment:

robin said...

This is the first of several articles I hope to post here from my defunct Patreon page.

Post a Comment