Interactive Immersive Championship
In August 2020, I participated in the Interactive Immersive Championship, a live e-sports event for TouchDesigner pros. Alongside 15 other contestants, I live-coded visuals in TouchDesigner based on a series of three challenges. I advanced to the final round, placing in the top 8.
Challenge 1: Integration Challenge
For the Integration Challenge, we were given 90 minutes to live code a piece that combined TouchDesigner with other software. I chose to combine TouchDesigner, Ableton, and Max for a live audio-reactive piece.
I used Max for Live plugins and a custom Max patch to send audio data from Ableton into TouchDesigner, directly controlling the visuals with MIDI and live electric guitar. Check out the project walkthrough video to learn more.
Challenge 2: Sensor Challenge
For the Sensor Challenge, we had 90 minutes to live code an interactive piece using our favorite sensor. I used the Leap Motion to control a particle system driven by a GLSL compute shader. The sensor data is shown in the top left.
Challenge 3: Copycat Challenge
For the Copycat Challenge, we had 100 minutes to live code a piece that mimicked the style of a favorite artist. I chose Chuck Close, an American artist who was renowned for painting striking, large-scale portraits. They look photo-realistic from a distance, but a closer look reveals a grid of abstract "pixels" with layers of distinct colors. His approach was highly technical and inspired the creation of the ink-jet printer. If you haven't seen his work I highly recommend exploring!
I imitated his style in TouchDesigner by splitting an image into a 3D grid of boxes, coloring each box to look like one of Chuck's blob-like pixels. The coloring was created with one GLSL material -- it uses the XYZ position of the grid geometry to sample the input image, treating the face of each cube like its own individual pixel shader. I also created a Max patch to control the visual in real-time with a bank of actions.
Top left is the reference painting, bottom left is the input image, and far right is the Max interface.