Effects Reel
Technical Director Reel
Effects Reel Breakdown
Beanstalk (0:06 - 0:26)
This project was a collaboration with three other Side Effects Software interns. We wanted to challenge ourselves to develop an effect that isn't inherently solved by one of Houdini's solvers. We ended up settling on a beanstalk growth animation because there was very little support in Houdini for realistic plant growth and it provided a deep level of complexity with the interactions it would require with any surrounding environment.
To procedurally generate the beanstalk growth, I used Houdini's internal VEX language to generate a growth simulation. Ali Haider then used Houdini's wire solver to simulate secondary elements connected to the vines, such as the leafs and the roots. Dave Chaung then used Houdini's RBD solver to simulate the ground breaking up and used Houdini's grain solver and fur tools to simulate dirt and grass respectively. Claudia Ceniceros then used Houdini's pyro solver to generate the dust that individual grain particles couldn't simulate.
I then created a procedural shader for the vines and shaders for most of the other geometry such as the leafs and rocks. I also took care of the compositing in the second and third shots in as well as editing the sequence together in After Effects.
Hologram Projector (0:27 - 0:31)
With this personal project, I wanted to take an image sequence and convert it to a holographic projected image, much like those seen in Sci-Fi movies such as TRON.
To do this, I first imported the data of the image sequence into Houdini. Then I took the color data from each of the pixels and copied them onto points in 3D space, displacing them based on luminosity. From there, I instanced a volume in the same area as the hologram to act as a projection surface and procedurally animated the UI on the surface. From there I simply composited the effect onto the live plate using Nuke.
For implementation details, see the following blog post:
Hologram Projector
"Ram's Horn": Climbing Rope Simulation (0:31 - 0:43)
Throughout the film, Andre is anchored to the mountain with his trusty climbing rope. So, to simulate that we needed a tool that could hold up to any of the forces that it would be subjected to and could be adapted to any situation.
What I came up with is a light-weight solution that supports a rope being simulated through a wire simulation with SBD pin constraints on either end and support for collisions with static geometry.
For implementation details, see the following blog post:
Climbing Rope Simulation
This project was a collaboration with three other Side Effects Software interns. We wanted to challenge ourselves to develop an effect that isn't inherently solved by one of Houdini's solvers. We ended up settling on a beanstalk growth animation because there was very little support in Houdini for realistic plant growth and it provided a deep level of complexity with the interactions it would require with any surrounding environment.
To procedurally generate the beanstalk growth, I used Houdini's internal VEX language to generate a growth simulation. Ali Haider then used Houdini's wire solver to simulate secondary elements connected to the vines, such as the leafs and the roots. Dave Chaung then used Houdini's RBD solver to simulate the ground breaking up and used Houdini's grain solver and fur tools to simulate dirt and grass respectively. Claudia Ceniceros then used Houdini's pyro solver to generate the dust that individual grain particles couldn't simulate.
I then created a procedural shader for the vines and shaders for most of the other geometry such as the leafs and rocks. I also took care of the compositing in the second and third shots in as well as editing the sequence together in After Effects.
Hologram Projector (0:27 - 0:31)
With this personal project, I wanted to take an image sequence and convert it to a holographic projected image, much like those seen in Sci-Fi movies such as TRON.
To do this, I first imported the data of the image sequence into Houdini. Then I took the color data from each of the pixels and copied them onto points in 3D space, displacing them based on luminosity. From there, I instanced a volume in the same area as the hologram to act as a projection surface and procedurally animated the UI on the surface. From there I simply composited the effect onto the live plate using Nuke.
For implementation details, see the following blog post:
Hologram Projector
"Ram's Horn": Climbing Rope Simulation (0:31 - 0:43)
Throughout the film, Andre is anchored to the mountain with his trusty climbing rope. So, to simulate that we needed a tool that could hold up to any of the forces that it would be subjected to and could be adapted to any situation.
What I came up with is a light-weight solution that supports a rope being simulated through a wire simulation with SBD pin constraints on either end and support for collisions with static geometry.
For implementation details, see the following blog post:
Climbing Rope Simulation
"Ram's Horn": Missile Explosion (0:44 - 0:46)
One of the final gags in the film involved the main character, Andre, firing Missiles from a helicopter in order to finish off the pesky mountain ram that's been getting in his way this entire time. So, we needed the explosion from the missiles to really feel over the top as Andre was well past the point of go big or go home.
The explosion itself involved several layers of flame and smoke, overall generating a massive wave of heat escaping in a fireball upward and the energy of a shock wave moving outward advecting the smoke and shaking the camera.
The fireball layers and smoke layers were both achieved using Houdini's Pyro FX tools with explicit control over the velocity field. The camera shake and color correction happened in Nuke.
"Ram's Horn": Smoke Dissipation (0:47 - 0:50)
The Smoke Dissipation here is meant to be the second half of the Missile Explosion effect above. As such, I recycled the smoke layer from the Missile Explosion for the beginning of the simulation making a seamless transition across cuts.
As the initial velocity is counteracted by drag it is eventually cancelled out and the smoke dissipates to some degree already. From there it was a matter of controlling the dissipation so that it revealed that the mountain ram had survived the explosion in time to show off the animation that had been done before. Also, using Nuke I had to make sure that the survival of the mountain ram wasn't revealed too early through the gaps of the smoke.
The Smoke Dissipation here is meant to be the second half of the Missile Explosion effect above. As such, I recycled the smoke layer from the Missile Explosion for the beginning of the simulation making a seamless transition across cuts.
As the initial velocity is counteracted by drag it is eventually cancelled out and the smoke dissipates to some degree already. From there it was a matter of controlling the dissipation so that it revealed that the mountain ram had survived the explosion in time to show off the animation that had been done before. Also, using Nuke I had to make sure that the survival of the mountain ram wasn't revealed too early through the gaps of the smoke.
"Ram's Horn": Match Flame (0:51 - 0:58)
In this scene, we pull off a classic switcheroo gag. Having burrowed under the ground with a jackhammer, Andre finds his lantern extinguished. So, to light a new one and get his bearings, Andre lights another match to find the little baby ram that he had become friends with in there with him. When the ram sneezes it out though, the second match lit reveals that the big mountain ram had made it down there as well. So, the flame of the match mainly plays a supporting role in this particular gag.
However, this effect was deceptively difficult to pull off. The high speed animation of the match tip made the task of utilizing Houdini's internal Pyro Solver rather difficult. To make sure the flame was maintained throughout the entire simulation, I used a backward trace on the animation of the match head to make sure that fuel was laid down between all the points of the animation. That simulation performed in Houdini and the color correction performed in Nuke ended up producing a rather pleasing flame effect that fit the ticket perfectly.
For implementation details, see the following blog post:
Match Flame Simulation
However, this effect was deceptively difficult to pull off. The high speed animation of the match tip made the task of utilizing Houdini's internal Pyro Solver rather difficult. To make sure the flame was maintained throughout the entire simulation, I used a backward trace on the animation of the match head to make sure that fuel was laid down between all the points of the animation. That simulation performed in Houdini and the color correction performed in Nuke ended up producing a rather pleasing flame effect that fit the ticket perfectly.
For implementation details, see the following blog post:
Match Flame Simulation
"Ram's Horn" Fog Breath (0:54 - 0:57)
This effect occurred rather close to the beginning of the film. The first time that Andre crosses the mountain ram's path, the mountain ram asserts his dominance over the top of the mountain. In rage, he snorts sharply and then charges Andre, sending him flying off the mountain.
The effect here was simple enough that I didn't want to overload the scene with the unnecessary weight of the fields involved in the Houdini Pyro Solver and the Houdini Smoke Solver, so I decided to make my own lightweight version for this scene with Houdini Gas Microsolvers and the Multi-Solver node.
The final simulation only involved two fields: Density and Velocity. Using an initial velocity to start advecting the density, I used a Gas Dissipate and a Gas Turbulence nodes to get the motion and visual interest that I wanted out of the effect.
Technical Director Reel Breakdown
"Owned" Procedural Game Camera (0:06 - 0:21)
For the video game we created for the BYU animated short “Owned” we wanted to have the camera behave like a camera you would see in any other fighting game. So, using python scripting, I used the position data of the two characters to change the position of the camera, giving it the desired behavior.
For implementation details, see the following blog post:
For implementation details, see the following blog post:
Procedural Game Camera Asset
Three State Sand Solver (0:22 - 0:32)
In order to reduce the computation time of simulating granular materials, I helped implement this Three State Sand Solver that better imitates the observed real world behavior of sand. The majority of particles in a tank-like granular simulation are not moving with enough velocity to justify keeping track of each individual particle. So, we create a solid state for the section of particles that are identified as stationary and we simulate them with a single surface. Particles above this threshold are allowed to move, but we create a liquid state so that we can simulate their motion at a lower resolution since their movement does not exhibit individual behavior until they are near the surface. It is only near the surface then that we simulate each individual granular particle giving it the surface detail it needs to look convincing.
For implementation details, see the following blog post:
Three-State Granular Solver Research
Written using Java's implementation of OpenGL, this camera reads in object data, applying texture data using OpenGL's in house functions. It then transforms the scene according to user input using custom built transformation matrices, allowing for translation, rotation, and scaling in any direction, simulating the motion of a camera.
This tool also allows for separate input to be provided to drive the car, rotating the wheels as needed to indicated the turn desired.
"Ram's Horn": Climbing Rope Simulation (0:43 - 0:55)
Throughout the film, Andre is anchored to the mountain with his trusty climbing rope. So, to simulate that we needed a tool that could hold up to any of the forces that it would be subjected to and could be adapted to any situation.
What I came up with is a light-weight solution that supports a rope being modeled and placed in any initial position and simulated through a wire simulation with SBD pin constraints on either end and support for collisions with static geometry.
For implementation details, see the following blog post:
Climbing Rope Simulation
This effect occurred rather close to the beginning of the film. The first time that Andre crosses the mountain ram's path, the mountain ram asserts his dominance over the top of the mountain. In rage, he snorts sharply and then charges Andre, sending him flying off the mountain.
The effect here was simple enough that I didn't want to overload the scene with the unnecessary weight of the fields involved in the Houdini Pyro Solver and the Houdini Smoke Solver, so I decided to make my own lightweight version for this scene with Houdini Gas Microsolvers and the Multi-Solver node.
The final simulation only involved two fields: Density and Velocity. Using an initial velocity to start advecting the density, I used a Gas Dissipate and a Gas Turbulence nodes to get the motion and visual interest that I wanted out of the effect.
In order to reduce the computation time of simulating granular materials, I helped implement this Three State Sand Solver that better imitates the observed real world behavior of sand. The majority of particles in a tank-like granular simulation are not moving with enough velocity to justify keeping track of each individual particle. So, we create a solid state for the section of particles that are identified as stationary and we simulate them with a single surface. Particles above this threshold are allowed to move, but we create a liquid state so that we can simulate their motion at a lower resolution since their movement does not exhibit individual behavior until they are near the surface. It is only near the surface then that we simulate each individual granular particle giving it the surface detail it needs to look convincing.
For implementation details, see the following blog post:
Three-State Granular Solver Research
OpenGL Camera (0:33 - 0:42)
Written using Java's implementation of OpenGL, this camera reads in object data, applying texture data using OpenGL's in house functions. It then transforms the scene according to user input using custom built transformation matrices, allowing for translation, rotation, and scaling in any direction, simulating the motion of a camera.
This tool also allows for separate input to be provided to drive the car, rotating the wheels as needed to indicated the turn desired.
"Ram's Horn": Climbing Rope Simulation (0:43 - 0:55)
Throughout the film, Andre is anchored to the mountain with his trusty climbing rope. So, to simulate that we needed a tool that could hold up to any of the forces that it would be subjected to and could be adapted to any situation.
What I came up with is a light-weight solution that supports a rope being modeled and placed in any initial position and simulated through a wire simulation with SBD pin constraints on either end and support for collisions with static geometry.
For implementation details, see the following blog post:
Climbing Rope Simulation
"Ram's Horn" Fog Breath (0:56 - 1:07)
This effect occurred rather close to the beginning of the film. The first time that Andre crosses the mountain ram's path, the mountain ram asserts his dominance over the top of the mountain. In rage, he snorts sharply and then charges Andre, sending him flying off the mountain.
The effect here was simple enough that I didn't want to overload the scene with the unnecessary weight of the fields involved in the Houdini Pyro Solver and the Houdini Smoke Solver, so I decided to make my own lightweight version for this scene with Houdini Gas Microsolvers and the Multi-Solver node.
The final simulation only involved two fields: Density and Velocity. Using an initial velocity to start advecting the density, I used a Gas Dissipate and a Gas Turbulence nodes to get the motion and visual interest that I wanted out of the effect.