TouchDesigner and Generative Art
A little over one year ago (on April 1st of 2018, no joke) I started creating and sharing daily generative art created in TouchDesigner on Instagram (@polyhop). TouchDesigner is a visual development platform for developing real-time visuals and interactive experiences. I use it to create generative art, which is at its core art that has been created with the use of an autonomous system – in this case, code that in some way determines qualities of the output. Much of this work is real-time, meaning it can render at 60 fps making it ideal for interactive contexts that employ sensors or visuals that react to music in a live setting.
My motivation for this daily sketching process was inspired by two prolific creators I admire: Beeple, who is currently on year 13, and Zach Lieberman, whose 2017 roundup of his daily sketches was the catalyst to beginning my own practice of “everydays.” In this post I share my thoughts on my first year of sketching, and provide insight into how you can start your own routine of daily sketching, and why it could be beneficial to your own creative practice.
I come from a background in music performance, audio production, and visual art. While studying at the University of Michigan I became deeply interested in exploring ways to connect music, visual art, and technology. This included designing new instruments for musical expression, interactive installation art, and directing multimedia performances. I initially started working with Max and Processing, though after my mentor and friend, Carlos Garcia (L05), pointed me towards TouchDesigner I fell in love with the software and it quickly became my go-to for real-time graphics, interactive experience design, and generative art.
After school, I did my best to find projects that pushed me to develop my TouchDesigner abilities. Primarily this involved finding opportunities to produce small scale interactive installations (including ones I did for Electric Forest and the Ann Arbor Film Festival), though even with these projects I still wasn’t using the software as much as I wanted to. It was after another friend (and data scientist), Will Geary, pointed me towards Zach Lieberman’s work and writings that I decided to give daily sketching in TouchDesigner a go. It soon became an important facet of my day and an excuse to work in TouchDesigner without an externally motivated project or deadline.
In a way, I tricked myself into starting the process. Committing to do something every day for a year is a daunting prospect. I initially began with the intention to post a new sketch every day for one month as a trial run. I then found the practice to be more manageable than expected and decided to continue indefinitely. I highly suggest doing something similar if you’re on the fence about starting your own daily practice. Another tip is that you don’t need to start at the beginning of the year. New Years is an arbitrary (albeit symbolic) start date for many resolutions, but for me it was also a busy time of year. April was the perfect time to start as my work had thinned out and I had extra time to devote.
I think it’s also important to mention that I set my own rules for the process. For me, it is important that I post new work every day, though not absolutely necessary that I create it that same day. The busyness of life ebbs and flows, and there are certainly days that I’m unable to sit down, even for 15 minutes, to create a new sketch. I do my best to anticipate these days in advance and will often create an extra sketch the day before so I have something to post. The process is intended to make sure I am constantly creating and sharing new work, but not at the expense of sanity. If you take on a similar practice remember that it is always on your own terms.
Zach Lieberman drives home the importance of iteration in his 2017 roundup, and I feel it necessary to mention it here as well. Iterative design is a cyclical process of analysis and refinement. In my own practice I often think about it in the context of Sister Corita Kent’s 10 Rules for Students, Teachers and Life (as popularized by John Cage). Rule eight resonates with my thoughts on iteration: “Don’t try to create and analyze at the same time. They’re different processes.” In my ideal flow state I move between making changes and decisions fluidly. The process of analysis can lead to moving forward with another change, modifying a previous change, or taking a step back. The important thing is not to get stuck or paralyzed. When in doubt about an idea, keep going, keep making changes, and eventually it will lead somewhere.
Iteration is also great for a daily sketching practice as it’s typically faster than starting from scratch. Given that I might only have 30 min (sometimes less) to develop my sketch for the day, I frequently use a previous sketch as a starting point. It’s fast, and simultaneously lets me refine tools and processes over time. If you want to see what this looks like, I made a process video earlier this year which shows a 12 minute time-lapse which used a previous sketch as a starting point.
Another important part of my process is keeping track of resources and inspiration. Whenever I come across an interesting resource I make a note for later. This includes another artist’s work I find inspiring, a topic to explore, tutorials, or broader concepts. Personally, I use Trello for organizing these resources, with different boards and checklists for different purposes.
Selected Sketches from Year One
Below are a few techniques that I explored in my first year of sketching. For each I share a few resources I used to get started, many of which are specific to TouchDesigner. I plan on creating tutorials for a number of these topics in the coming months, so I won’t go into too much depth here.
One of the first things I dived into was generating looping videos driven by noise, as described in this blog post by Étienne Jacob. It led to these sketches of tunnel zooms and geometry arranged in pseudo-random loops.
Another fascination of mine from last year was reaction diffusion. Reaction diffusion is the simulation of two virtual chemicals reacting and diffusing on a 2D grid. Karl Sim’s tutorial explains the process in great detail, while Daniel Shiffman’s breakdown of Sim’s tutorial for processing is a solid way to get your head around it. Aurelian Ionus (Paketa12) also has a diffusion tutorial for TouchDesigner. Here are some of my favorite reaction diffusion pieces from my first year of sketches. In some instances, such as Spectral Receiver, I explored using reaction diffusion as a source of motion to drive other systems.
Cellular automata (CA) are computer models consisting of a grid of cells which change each frame based on a set of simple rules. Conway’s Game of Life is one of the more famous examples, but there are many other variants of automata, including Stephen Wolfram’s Elementary Cellular Automaton. When going about creating CA in TouchDesigner I used this tutorial to get started with the process in GLSL (Note: the link is a wayback machine snapshot as the tutorial is currently no longer online.) Mirek Wojtowicz’s Cellular Automata Rules Lexicon has a fantastic breakdown of rules to explore for different types of CA. Below are some examples of my work that leverages CA in TouchDesigner. Star Processing Unit explores blending between multiple rules, while Daedalus looks at adding displacement effects into a relatively static system. Coral Plate and Beams both use CA to drive the motion of particle systems, using optical flow to translate the motion.
Space Filling Curves:
Space filling curves are curves which pass through every point in a unit square. In other words, an infinitely long line which fits within a finite area (fractals are wild!) For a great explanation, check out this 3Blue1Brown video, which is one of my favorite videos on the subject. Another important resource is the book “The Algorithmic Beauty of Plants” by Prusinkiewicz and Lindenmayer, which contains many examples space filling curves which can be ported to TouchDesigner’s L-System SOP. David Braun also has some awesome TouchDesigner examples for manipulating Hilbert curves on his git hub repository.
Audio Reactive Visuals:
When I have extra time for a sketch I enjoy creating audio reactive visuals. In these, the visuals are controlled in some way by signals from audio. In some cases this involves linking visual parameters to the amplitude of various frequency bands in an audio file. Other times it involves sending MIDI signals directly from music controllers in Ableton Live, such as Slugs which takes input from a Roli Seaboard Block.
Some of my sketches branch into interactive media. Many of these use the Leap Motion as an input, a depth sensor which can accurately detect finger positions along with a few simple gestures. I also use the Roli Seaboard Block in a few sketches (as noted above) and in one sketch map accelerometer data to the motion of a virtual box (sent from an old phone using Touch OSC.)
Boids is a classic program developed by Craig Reynolds in 1986 to simulate the flocking behavior or birds. The idea is for individual objects to steer and align themselves to other objects. Such simulations can yield emergent behavior and surprising results. I found Matthew Wachter’s flocking example incredibly useful as I went about my own explorations with flocking. Noah Norman (of Hard Work Party) also has a great Flocking Compute Shader example for TouchDesigner.
I hope this encourages you to make and share more often, and potentially start your own daily practice! Personally I’ve found it to be rewarding in more ways that I could possibly have expected. Thank you for reading, and stay tuned for more. Feel free to ask questions in the comment section below or via email ( simon @ simonaa . media )