Generative Digital Art: Tutorials and Inspiration
By Joshua Ellis
Generative art is a sort of blanket term for any sort of art which is created or composed using algorithmic or random processes, such as Brian Eno‘s 77 Million Paintings, which composites Eno’s visual art in such a way that there are literally 77 million possible combinations.
Other generative pieces serve as visualizations or realizations of abstract data sets or other information: one excellent example of this is Robert Hodgin’s "Magnetosphere", which uses incoming audio data to create beautiful abstract animations of stars and planets moving in a complex dance. Hodgin’s piece eventually became the current default visualizer for iTunes.
While this may sound a bit arcane, generative processes can be a valuable addition to any designer’s skillset, particularly for automating tedious tasks like creating “randomized” artwork or simulating realistic natural phenomena that are difficult to intentionally copy, like physical landscapes. It can also be a great way to rethink how you use your existing tools, like Actionscript or Illustrator.
Here’s a list of some inspirational and practical resources to help you explore the rich world of generative art and design.
You might also like to check out our article 45 Amazing Examples of Code Generated and 3D CG Artworks.
Joshua Davis (aka praystation) is one of the earliest artists to begin working with Flash/Actionscript as a generative artistic medium. His work includes the seminal and influential once-upon-a-forest art project as well as commercial generative work for BMW, Motorola and the band Tool. He is also the co-author of the Hype Actionscript 3 framework (see below).
Along with Joshua Davis, Erik Natzke is another generative Actionscript innovator, though his work tends to be more organic and "painterly", as opposed to Davis’ highly graphical style. Natzke recently created a collaborative interactive animation with French artist Genevieve Gauckler for Adobe’s Shortcut To Brilliant site, showcasing their CS4 suite.
Jared Tarbell is one of the founders of Etsy, the popular site that allows artisans to sell their own handmade work, but he’s also a well-known and respected generative artist. Tarbell works in both Actionscript and Processing (see below) to create his delicate pieces, many of which — such as Substrate, seen above — can actually be run directly on his site.
Brian Eno is one of the heavyweights of generative art. The former keyboardist for Roxy Music, creator of the “ambient” music genre and the iPhone Bloom app, and a well-known music producer for acts such as U2, Talking Heads and Coldplay, Eno is also a visual artist and designers whose work has appeared internationally. Recently, his 77 Million Paintings piece was projected onto the curved arches of the Sydney Opera House, as part of the Luminous Festival, which Eno curated.
Eno is also the co-creator of the Oblique Strategies, a deck of card which provides gnomic advice for artists who are creatively stuck.
Karsten Schmidt (aka toxi) is a British-based visual designer and coder whose work often transcends the screen in physical, interactive installations (like the sound-responsive LED floor above, created for the launch of audio manufacturer KEF’s Muon speakers). Schmidt releases much of his code as open-source, including his Processing toxiclibs (see below).
Daniel Shiffman is an Assistant Arts Professor at NYU and an artist and writer on Processing and other generative systems. His Vector3D libraries for Processing (for creating and storing 3D vector data) were so widely used that they were ultimately incorporated into the language as built-in functions. Like Karsten Schmidt, Shiffman’s work often involves real-world physical interaction with digital media, such as Reactive (2003).
Robert Hodgin is a visual Processing/Flash artist and co-founder of the Barbarian Group (which he recently left to devote himself full-time to large scale installation work). As mentioned in the introduction to this article, Robert’s Magnetosphere Processing app became so popular that Apple incorporated it as the default visualizer for iTunes. Robert’s blog, Flight404, features a lot of useful information on both his creative and technical processes.
When he was a software engineering student at MIT in the 1980s, John Maeda became fascinated with the graphic design and typography of Paul Rand and Muriel Cooper. Maeda began to explore the odd landscape where software and graphic design came together, producing generative / algorithmic pieces that were far ahead of their time. In 1999, he was named as one of the 21 most important people of the 21st century by Esquire magazine
After serving for 12 years as associate director of research at the MIT Media Lab, Maeda became president of the Rhode Island School of Design in 2008.
Resources and Tutorials
Processing is a programming language originally developed by Ben Fry and Casey Reas when they were MIT Media Lab students under John Maeda. It’s essentially a dialect of Java, with a custom IDE and specific functions and constructs for visual/aural/interactive design, as well as interacting with external data sources and devices (such as webcams and the Arduino prototyping board). It runs on Windows. Mac OS X and Linux.
Processing is a great place for visual artists and designers to start programming, due to its relative simplicity and ease of use.
NodeBox is a Mac OS X app for creating static or animated visuals using the Python scripting language. Similar to Processing, NodeBox focuses more specifically on generative graphics. A great tool for developers who are already familiar with Python.
Hype is an Actionscript 3 framework developed by Joshua Davis and Branden Hall, designed to facilitate the creation of generative Flash-based artwork by providing pre-built functions for often-used tasks (such as laying objects out on a grid or making an object follow the mouse). There’s no formal documentation as of yet; the existing examples simply have source code displayed, but if you’re an intermediate or better AS coder, the code is clean and easy to follow. Davis and Hall also offer workshops for the framework, which you can register for from the site.
Generator.x is a blog/resource site for generative art. The Tools & Code section of the site features great links to software and code examples to check out. The site also has a Twitter feed and a Flickr group, which are updated more regularly than the blog itself.
Fractals are perhaps the oldest and most recognizable form of visual generative art. This tutorial gives you the basic math behind generating fractals in Actionscript 3 using recursive algorithms and Flash’s built-in math and drawing functions.
Flash and Actionscript are the most popular tools for doing generative art — particularly online — and this free PDF tutorial from Computer Arts UK by Chad Udell serves as an excellent introduction to creating generative pieces in Actionscript 3.
ContextFree is a Mac/Windows/Linux app for creating recursive artwork and animation, using a simple scripting language. It’s a deceptively simple tool that can — as seen in the above artwork — produce remarkably complicated effects, as well as extremely useful elements such as generated street/subway maps.
toxiclibs are a set of libraries for Processing/Java by Karsten Schmidt that simplify working with color, geometry, and physics modeling. Well worth the download.
openFrameworks is an open source toolkit that serves a similar purpose for C++ that Processing does for Java and NodeBox for Python, allowing C++ coders to rapidly prototype interactive media projects utilizing audio, video, OpenGL animation, and text. It’s still in pre-release, but you can download it for your platform of choice now.
- 45 Amazing Examples of Code Generated and 3D CG Artworks.
- Generative & Evolutionary Art group on Flickr
- technoligicalproceduralarchitekture playlist of generative video on YouTube
- Generative pieces on DeviantArt
- The Generative Art International Conference (12th annual conference to be held December 15-17, 2009 in Milano, Italy)
- Will Wright And Brian Eno — Wright (creator of Sim City and Spore) and Eno (who composed the music for Spore) discuss generative systems
- The Nature Of Code — an excellent online course for learning generative programming by Daniel Shiffman
About the author
Joshua Ellis is a writer and musician as well as a web designer and developer with over twelve years’ experience. You can find him online at his blog Zenarchery and as jzellis on Twitter. Joshua lives in Las Vegas with a cat, a large collection of books and several odd-looking synthesizers.