Dancing Cities - Audiovisual Animation
Procedural Modeling, Audiovisual Texturing, All Aspects | Maya, Houdini, TouchDesigner | 2022
Here is an exploration of a technique I've been wanting to develop for procedurally animating lights to music. I love using TouchDesigner for audiovisual animation and wanted to find more methods for incorporating it into my CG workflow
Once I was happy with the general composition and layout, I chose which buildings to animate and brought the previs model into Houdini. Using my procedural modeling setup and controller, I matched the previs geometry to create a windowed version of the buildings, and could export both the building frame and windows as separate geometry for texturing and UVing.
|
Here is my setup for the procedural window texture:
In order to have distinct black/white (0-1) values for each window, I began with a noise texture that I scaled down and resampled to match the dimensions of each building's windows (since there were so few I could keep track of their dimensions individually, but ideally I could look them up using a .csv or .json if I needed to scale my system). Then I assigned each window to clamp to the nearest pixel value to make sure each would have a unique value. I then combined a few other ramps to add some gradual tapering and just a more appealing distribution of values.
Currently, I have the audio-visual system set up such that each volume peak pushes the animated noise through space to create motion based on the music. I would like to explore more ways of creating more compelling audio-visuals through better frequency isolation or recreation for different instruments, or by having the texture move in other ways.
The final step is to take the animated vertical texture and scale it to a 1K square for proper UV mapping
In order to have distinct black/white (0-1) values for each window, I began with a noise texture that I scaled down and resampled to match the dimensions of each building's windows (since there were so few I could keep track of their dimensions individually, but ideally I could look them up using a .csv or .json if I needed to scale my system). Then I assigned each window to clamp to the nearest pixel value to make sure each would have a unique value. I then combined a few other ramps to add some gradual tapering and just a more appealing distribution of values.
Currently, I have the audio-visual system set up such that each volume peak pushes the animated noise through space to create motion based on the music. I would like to explore more ways of creating more compelling audio-visuals through better frequency isolation or recreation for different instruments, or by having the texture move in other ways.
The final step is to take the animated vertical texture and scale it to a 1K square for proper UV mapping
Finally, I took the final render back into TouchDesigner for final compositing. Using TouchDesigner TOPs and feedback, I could create different masks and glow layers in order to achieve the final look.
I had so much fun with this project and it proved itself to be a very art-directable and versatile method for creating complex light animations using 2D textures and creative hacking of UV's.
I had so much fun with this project and it proved itself to be a very art-directable and versatile method for creating complex light animations using 2D textures and creative hacking of UV's.