FX Production in Houdini with Stefan Kang

Stefan Kang Chun Yih kindly shared the details behind his marvelous VFX projects made with Houdini, gave some tips and useful tutorials for Houdini learners. 

Stefan Kang Chun Yih kindly shared the details behind his marvelous VFX projects made with Houdini, gave some tips and mentioned tutorials useful for Houdini learners. 


Hi, my name is Stefan Kang Chun Yih and I’m a Houdini VFX artist based in Los Angeles.

I’m originally from Malaysia but I moved here a few years ago when I was accepted into the Gnomon School of VFX and Animation. I recently just finished working at Blur studio and I’ve been doing some freelance work at local studios here. I’m realizing that the key to being a successful FX artist is to learn how to problem solve quickly. I mainly work in Houdini and while a good procedural setup is helpful, sometimes it makes more sense to just use the default shelf tools to complete the shot. Everything comes down to how much control do you need for the particular effect and the more control you have at your fingertips, the more quickly you can execute the shot.

Learning Houdini

I originally started using Maya and Cinema 4D, however, I quickly hit some roadblocks when it came to creating certain effects and tools. I felt like I was looking for new plugins to help fill in missing tools or I had limited parameters to control my effects and I wanted more. When I first picked up Houdini online through the Learnsquared and Gnomon Houdini classes, it truly opened a new world for me. I started to really understand the math behind this FX and I realized the power of building your own tools and setups. Houdini is a very powerful node-based system that gives the artist a lot of data and attributes to control really complex effects. I can create things in Houdini that I couldn’t create in the other programs.

I invest a lot of my time learning Houdini through personal projects. This time I spend exploring the program helps me later when I’m working on in a studio and need to problem solve quickly. When I’m learning, I like to manipulate the FX into more abstract looking shapes to see how far I can push it. I’m always thinking of new ways to execute FX and sometimes you discover cool looking FX by making mistakes. I will also watch tutorials for inspiration. Nowadays, there’s a ton of Houdini tutorials and blogs you can find for free online. I learn a lot by looking at other artists’ setups and asking questions on the forums. One of the best ways to learn Houdini is to experiment with it – study setups and try to figure out how they work. There’s also some SIGGRAPH papers and Disney research papers online that I like to study to help me understand the math behind simulations I’m experimenting with.

Project Arrival

Greeble Asset

This is a project I created using the greeble asset inspired by a Learn Squared lesson. The main use of this asset is to make it procedural and then apply it to create an environment. I decided to create a “digital tomb” and use the environment to tell the story of a world that was full of electrical circuitry and patterns.

The tool uses the primitives as a guide to center every asset on the surfaces. On the asset, there are a ton of parameters to help iterate the patterns and add more randomization to the position and rotation. All you need is to prepare the basic surfaces and generate a bunch of different patterns to use to apply on the greeble asset. You can find the basic pattern I generated in the image below.

Greeble Setup

I started by splitting each primitive base by the number of points on each primitive and then extruding them individually. Then, I used the bounding box region to find the distance of each primitive’s center point so the pattern can be placed right in the center. I then created some randomization for the scale, position, and rotation for the user to offset the pattern. This way, the user can quickly get iterations and adjust the scale and rotation for each pattern. This greeble asset can be applied over and over again to get really complex patterns on the surface. I’ve seen similar result use to achieve on spaceship design and Starwars death star.

A big challenge for me was to convey the scale of the environment while also trying to keep a consistency between the patterns and the base geometry in the scene. In the end, I decided to add a character in the frame to give the concept a more interesting story. It became the story of an astronaut discovering this amazing electrified “tomb”.

Lightning  Explosion Project

1 of 2

Setup Lightning Child Branches using Perpendicular normal

One of the most interesting parts for me from this lightning project was setting up the Child branches for the lightning. I achieved this look by setting up two different vectors. The first vector used the cross product between the normal and up vector to get the perpendicular normal. For the second vector, I took the ptnum and gave a random multiplication to each primitive to capture its angle and rotation. Then I took the UV as a bias to blend between how much I wanted the normal vector to spread. Later on, I just copied the line over the point as the child branches. This might sound complex and math-heavy (and it probably is to an extent), but these are concepts you need to know to really get the most out of Houdini.

Custom Lightning Mask

To generate the mask, I first needed to create an attribute – “Generation” with two different values on the root and child branches. From there, I took the attribute and placed the input into a switch node and then output to a vector value red and green. By doing it in this way, the compositor can use it as a mask to grade or control the branches separately. The animated mask and noise AOV is actually from turbulence noise. I animated the offset so I could control the density of the lightning in post. Here’s an example of the lightning composite.


There are many ways to set up the propagation technique in Houdini. Here are two ways that you can set up the resistance area to get interesting patterns. In the first method, I transferred the color over the surface in a solver. Then I recorded it’s trigger frame and remapped the color and speed to regenerate the propagation. In the second method, I used the cost attribute to simulate the propagation. This doesn’t go through a solver so it is much faster.

Propagation can be used to set up the active point and can also be used to trigger RBD simulations, tearing, etc.  You can also create a custom propagation mask or use it to create a simple growth system. Here’s the hip file if you are interested in checking it out further.

In the DNA Infection project, I used the solver propagation technique to create the infection mask and output the surface’s textures as AOVs. Study the hip file to see how I achieved this.

Essence Title Design Project

The Essence title sequence design is a self-expression that reflects the intrinsic patterns in nature. Conceptually, I wanted to recreate the abstract forces that cerate these shapes found in the natural world. To achieve the look I wanted, I took advantage of a kaleidoscope effect and fractal patterns to help the audience experience the wonder of this infinite cycle. 

Essence Title Process

This idea came to me when I was experimenting with subdivision patterns. It’s interesting and terrifying to me that you can have an insane amount of complex divisions over each primitive until the computer just can’t handle it anymore. I created the circuit pattern using the quadtree algorithm and mixed them together. By doing this, I was able to get even more complex and detailed patterns on the primitive. From there, I explored more and mixed geometry with different scales and overlapped them to generate new shapes. In the end, I took all of the images I generated from Houdini and brought them into After Effects and applied the Kaleidoscope effect to animate the patterns. What you see in the final sequence is from these beautiful divided patterns.

1 of 2


I prefer to render with Mantra and Redshift. The main reason I like Mantra is that you can easily customize your shaders and add extra attributes to create custom AOV maps. I’ll admit that it is slow, but it’s a powerful renderer.

1 of 2

I’ve been using Redshift more and more. It’s a GPU based renderer so it’s so much faster especially when you have a multi-GPU machine. It’s able to handle a large amount of instancing geometry and proxy renders. In the latest updates, Redshift is bringing more features to the table: custom AOVs, more control for volumetric shading and the Optix Denoiser. I strongly suggest you try it, especially if you are working on a large scene but you have a small render farm. Aside from that, redshift IPR has a very fast preview so you can quickly preview your renders.

Recommendations for Houdini Learners

There are a handful of tutorials and resources online for anyone interested in learning more about Houdini. If you’re interested in learning FX simulations like pyro explosions, bullet and RBD simulations and particle advection check out Steven Knipping’s Applied Houdini tutorials. He gives a great lecture and his setups are built with a production mindset. Adam Swaab also has a lot of abstract effects tutorials online. And if you’re in the Los Angeles area, Peter Claes teaches Houdini classes at Gnomon. His lectures are the best I have ever experienced. Not only does he teach the math and algorithms, but his lessons include growth simulations, RBD destruction, particle effects, clustering, lightning and more. He teaches how to best achieve these effects in multiple ways and gives very good advice on optimization. A lot of my Houdini knowledge and setups came from things I’ve learned in his classes.

Here are some free Houdini tutorials and resources:

If you found this article interesting, below we are listing a couple of related Unity Store Assets that may be helpful for you.

Stefan Kang Chun Yih, VFX Artist

Interview conducted by Kirill Tokarev

Join discussion

Comments 1

  • D1M1




    ·5 years ago·

You might also like

We need your consent

We use cookies on this website to make your browsing experience better. By using the site you agree to our use of cookies.Learn more