The music video for Thom Yorke’s ‘Last I Heard (…He Was Circling The Drain)’, from his solo album ANIMA, is almost hard to describe. You’re best off watching the whole thing and absorbing the surreal imagery. The video, directed by Art Camp and Saad Moosajee, runs in black and white and combines 3D animation and cell animation, including a variety of CG imagery completed in Houdini.
Moosajee and technical director James Bartolozzi share their thoughts on making the clip, including via printing out rendered frames, and using Houdini to help create surreal crowd and fire effects, while keeping the look hand-crafted with several direct manipulations on the printed frames.
The Idea Behind the Video
“To understand the music video brief,” says Moosajee, “it’s helpful to look at the other creative content that was released in the ANIMA project by Thom Yorke. ANIMA is the title of Thom's new album, which features the song ‘Last I Heard’. In anticipation of the album, Thom Yorke and director Paul Thomas Anderson created a short live action musical film entitled ANIMA, which is available on Netflix.”
Watch Thom Yorke’s ‘Last I Heard (…He Was Circling The Drain)’
“In this project,” continues Moosajee, “Thom is imagining a universe for ANIMA. The film from Paul Thomas Anderson provided a first look into that universe. The brief we received was to create a music video for the song ‘Last I Heard’ which could provide a second and different window into the universe. Faceless people, darkness, sprawling urban cities, and anxiety were all mentioned as concepts and ideas that could shape the experience. That, along with the consideration that our film would be animation instead of live action, set the tone of our brief.”
With these initial parameters, the team began exploring narrative and world building. Moosajee says that “the ideation process was highly cyclical and iterative. We would explore world building and narrative in tandem – designing the protagonist, exploring different densities of city architecture, testing traffic simulations, and placing characters in different spaces. To truly capture the feeling of being lost in a city, we needed to generate a lot of content. By the end of the production, we had made over four hours of rendered animated footage in an effort to get to the final five minute video.”
A Hand-Crafted Feel
Key to the final look of the music video was the combination of different mediums. “My feeling is that to make a really holistic mixed media animation, you need to let the mediums you're combining influence each other in a way that is intentional,” suggests Moosajee.
An artist works in detail on one of the printed frames.
“To achieve that,” he says, “we tried to let the mentality of making an impossibly detailed yet hand-crafted animation ripple out to every part of our process. Whether it was camera, lighting, architectural style, character animation, smoke, fire, or dirt – every detail was an opportunity to express that way of thinking.”
This meant that artists would add rips and dirt to the clothing, building, surfaces and objects in 3D, and would then even add ‘real’ dirt to them by printing out the finished render onto paper and washing them with charcoal, powder, and other physical materials in 2D.
Houdini’s toolset is really diverse; whether it’s crowds, pyro, procedural geometry, volumes, oceans, or rigid body dynamics, there always seems to be an avenue to explore. Both Saad and I enjoy watching tutorials from sites like Entagma to not only get inspired, but also dive into a new part of Houdini we are unfamiliar with.
“In shots that we treated with a lot of hand drawn techniques,” adds Moosajee, “we tried to use physically based camera movements that felt like they could exist in old-style cinema. To capture the right atmosphere and mood, we filled each 3D render with volumetric fog that would diffuse light. When the image was printed out, we would use charcoal wash, liquin (oil medium) and other physical materials to further diffuse the ink on the page.”
Pencil draw-overs were crafted on print-outs of frames.
From a 3D point of view, the animation was designed to be rendered with a look that felt authentic to old film, but that also appeared as if it existed in the future. “Houdini was pivotal to this,” states Moosajee. “We used Houdini to create crowd, fire, and bird simulations with unique behaviors based on observations that had an element of impossibility. When that digital quality was integrated into that hand-crafted, physical approach it gave us the feeling we were looking for of ‘old and new’. This is something I'm always trying to explore with animation. I see Houdini as the program that can let artists unlock what is new and never seen before.”
Houdini in the Pipeline
‘Last I Heard’ required several elements and several looks. Houdini’s procedural approach, and a desire to use different aspects of the software, were at the center of making that possible, according to Bartolozzi. “Houdini’s toolset is really diverse; whether it’s crowds, pyro, procedural geometry, volumes, oceans, or rigid body dynamics, there always seems to be an avenue to explore. Both Saad and I enjoy watching tutorials from sites like Entagma to not only get inspired, but also dive into a new part of Houdini we are unfamiliar with.”
"Custom HDAs were a huge part of the workflow on this project. They consisted of ROPs for FFMPEG and Slack, several SOPs for crowd geometry processing, as well as entire geometry networks for the crowds that we could drop into each scene. The HDA system makes it easy to design new tools or reference networks between Houdini files. Because so much of the native Houdini tools, and now the Game Development toolset, serve as such great examples, it’s never been easier to quickly make an HDA and have it feel like any other operator in Houdini. This is critical because HDAs provide a layer of abstraction that can allow a tool to be passed from a TD to an artist, and the TD doesn’t need to spend any time worrying about user interface programming, or code transportability - it’s all built in."
The FFMPEG video converter and Slack messenger HDAs, in particular, enabled the project to be carefully managed. “I could use both of these ROP nodes after any render driver to convert the render to a video, and then post it to a Slack channel for the rest of the team to review,” states Bartolozzi. “This workflow worked through Deadline as well, so I could submit render wedges for my pyro sims, and have all of the results posted to Slack.”
Playblasts sent to Slack for review.
“Another pipeline challenge we faced was the diversity of operating systems our Houdini files were running on,” adds Bartolozzi. “The Art Camp computers are all Windows machines, while my personal computers are a Mac and Linux box. Houdini’s handling of environment variables and path mappings made it easy for us to sync files with Dropbox, and run the same HDAs on all of the computers. We set up variables for temporary directories that were unique to each system, as well as directories we needed synced with Dropbox.”
Bartolozzi found that loading an almost 20 gigabyte file into Cinema 4D would take too long, and this was just for one frame of the five minute video. To reduce the file size, Bartolozzi implemented a dynamic level of detail system for the crowd agent geometry, and camera based culling.
Crowds and Pyro and Managing Data
For the unique crowd shots in the video, a combination of Houdini and Cinema 4D was used. Bartolozzi says that the major challenge for the crowds was finding an efficient method for getting crowds from Houdini into Cinema 4D. “Houdini is able to do several optimizations which make viewing and rendering crowds fast and easy. Unfortunately we had to convert the packed crowd agents to geometry to bake them into Alembic caches.”
One shot, for example, yielded a converted geometry with 22 million polygons. Bartolozzi found that loading an almost 20 gigabyte file into Cinema 4D would take too long, and this was just for one frame of the five minute video. To reduce the file size, Bartolozzi implemented a dynamic level of detail system for the crowd agent geometry, and camera based culling. “The first involved using a polyreduce to procedurally simplify our crowd agent models. I created new agent layers with these simplified meshes, and then dynamically switched the layers post simulation, based on the agent’s proximity to the camera. These layers were denoted by the red and blue colors. I then implemented both frustum and visibility culling to remove agents invisible to the camera.”
Crowd network in Houdini.
“This workflow was entirely procedural and allowed for camera animation to be done in Houdini with the full crowd, and all of the optimizations would happen before the Alembic export,” says Bartolozzi, noting that the crowds optimizations reduced the cache file sizes 10-fold. “Since the LOD geometry downsampling was also procedural, we could dial it in per shot, or per agent asset. It also worked with agent layers that included props and could downsample the prop geometry as well. For lighting purposes we needed to prevent any popping that might result from the agent culling. The frustum pruning includes an a padding parameter, and the hidden pruning utilized a velocity based time sampling to determine whether an agent would become visible within a frame tolerance. These optimizations also greatly accelerate rendering through third party renderers in Houdini, such as Redshift, that don’t have the same render-time optimizations as Mantra and the viewport.”
Then there were the pyro effects in the video. “Pyro effects are always one of the most computational and I/O demanding effects for any production,” details Bartolozzi. “This is especially the case when caching out VDB sequences to disk. Although pyro played a smaller role in the video, the look development and pipelining were hurdles I needed to cross. From the OpenCL acceleration, to the incredible viewport visualization, Houdini’s pyro toolset makes it easy to iterate and develop the look of the simulations. Utilizing Deadline and my Slack messaging system I could submit many wedges for my simulation machine to chew through, while I worked simultaneously on the crowds.”