Designing Wonderful Effects in Houdini

Jose Leon Molfino talked about using Houdini in production and shared a detailed breakdown of several of his projects.

Introduction

Hello! My name is José León Molfino. I’m a 3D Artist based in Buenos Aires, Argentina. I got my degree in TV & Film Production. I started working as a Motion Designer back in 2004 here in Buenos Aires. I also got some experience in Germany, working for Sehsucht and Metaphrenie for a short period of time. Then I came back, and started my career as a freelancer, working mostly for Motion Design studios around the globe.

I’m currently a Creative Director at Stato, the studio I co-founded with my partner and wife Jimena Passadore. In Stato, we work on a variety of commercial projects. I also work on personal and client projects outside Stato whenever I can.

Choosing Houdini

Like many Motion Designers today, I started working with Cinema 4D as my main tool. At some point (I would say back in 2015/2016), I was stunned by the stuff artists like Simon Holmedal, Ben Watts, Simon Fiedler or Adam Swaab were creating with Houdini, so I decided it was the right moment to move out of the comfort zone and start digging into that piece of software. After many failed attempts, things started to click at some point, and once I reached that click, I’ve never wanted to step back. 

Although I still work in Cinema 4D on some projects, and interchange data between the two packages when needed. 

The big first step I took was when at Stato we decided to make a short film to relaunch the studio. For that short film, I decided to challenge myself and try to finish as many shots as possible in Houdini. Those shots would include explosions, procedural growths, particle simulations, etc… The final piece came along pretty well and we had great feedback!

Houdini is difficult to understand at the beginning so my advice would be to start learning as baby steps, try simple things. Trying to mirror C4D setups was a good exercise for me also. 

The Fur & Feathers Project

This was a personal project where I wanted to combine vellum soft bodies and hairs together. I would split this project into four sections:

1. Torus animations.

2. Soft body sim.

3. Feathers sim.

4. Fur sim.

So I set up a simple animation of a group of torus scaling up and down in order to get some soft body interaction with a bigger torus. I used a Copy to Points and For Each loop to offset each torus animation. Then, a simple vellum cloth sim to get squeezing interaction.

Then, I used the Hairgen node to generate simple hairs onto the main torus. Houdini has a fantastic set of tools to stylize your hair guides. I mostly like the Guide Advect node. Which lets you advect your hair guides based on a custom velocity field. 

I stylized the guides based on the first frame of the animation only. So finally, I added a Guide Deform node, to deform the guides based on the torus animation (the soft-body sim I did earlier).

So once I liked the way the main guides look, I used an Orient Along Curve node to get the orient attribute used in the Copy to Points SOP node, so then I’ll get a custom feather geo copied on each guide root’s point.

The feather geometry was simply created by sweeping a curve. The blue-red gradient is the Curve u attribute that will then let me create a points “root” group that will be pinned to the original animation during the cloth sim.

I also added some animated color noise that I'll use in the final shader. So I ended up with custom feathers scattered on the torus surface and following its deformation.

Now, it’s time to add some vellum cloth simulation to those custom feathers! The setup was simple. Vellum Cloth Constraints with soft pins in the “root” group. Then inside the DOP network, I added two colliders; the main torus, and the smaller toruses squeezing it.

Finally, I added fur to the outside toruses. I did that using the tools from the OBJ/context. Guide groom - Guide Deform - Guide Simulate and Hair Generate.

As collisions with external objects were not noticeable, I avoided any external colliders to get faster simulation times.

The SDF Melting Project

Working with volumes inside Houdini is so versatile. There’re plenty of VDB nodes to affect volumes. I really like using volume VOPs to advect them, adding colliders, etc. For the emitter “source” I animated a few boxes in a sine wave fashion and converted the whole thing into SDF.

For this melting FX, I advected the volume along the gradient vector of the SDF with some noise and added a small “gravity” force. I’ve also added a ground collider to the SDF. Then, I put that setup inside a sop solver to run the advection on each timestep.

Finally, I’ve also created a Foat “Age” volume, and vector “Rest Position” volume to the emitter source and added them to the advection too. The age volume was used to gradually stop the growth based on its age. And also used to mix the two shaders. The advected rest-position was used to add some colored noise in the shader.

This is the whole advection setup inside the volume VOP:

The Ice Wall Collapse Project

This was a freelance job I did for Imagina Studio. The original shot was a female tennis player who hits the ball and the wall begins to gradually collapse. I removed the character and rendered out my own version.

The main geo was fractured with RBD Material Fracture SOP nodes. This gives you plenty of options to create custom fractures, interior detail, edge noise, etc. It even creates constraints between pieces and keeps the fracture levels!

I’ve also added the RBD Connected Faces SOP node, which creates constraints between the inside faces and adds a “distance” attribute, which then will be used as a threshold to hide the interior faces. This is very useful for glass pieces, as the interior faces on pre-fractured geo should not be displayed until they break apart.

I then remove the constraints in SOPs just with a falloff threshold from the center of the wall. I also split the pieces into active and inactive. So only the “active” chunks will collapse within the bullet solver.

Once the RBD simulation was done. It was time to add some secondary effects, like particles and smoke. For the particles, I used the Debris Source SOP node to create the initial emission particles. Based on those, I added a POP simulation with simple ground collision and gravity.
 
That second pop simulation was then rasterized and used as “density” and “velocity” volumes sources for the final smoke simulation, which was done with the Pyro Solver.

All the CG elements were rendered out together in Redshift (with beauty pass and custom AOV’s) and comped in After Effects using ACES workflow. Of course, there was a lot more work during the process, lots of tweaks, etc... but this was just a rough overview of the workflow that I mostly use for this kind of VFX and pretty much learned from Steve Knipping tutorials.

The Particles Grow Project

I wanted to create an abstract piece with growing particles like if they were infecting something. I first modeled a simple box and fractured it into a few pieces with the RBD fracture. I then copied each piece to random points in 3D space and added rotations over time with variable orientations. 

For the particles, I split the process into three steps. First, I scattered points over the surface and simulate a custom infection solver to get the “Age” attribute and keep only the points with Age lower than a certain threshold. That way I can get that organic “ring shape” growth over each surface.

Then I run a POP grain simulation with the ring emitting the grain particles. I reset the velocity to zero each timestep, so the grains accumulate but there’s no movement. 

This was intended only to get the final frame of the simulation where all the grains are stuck together with no overlapping. So I finally added a third simulation with the custom infection solver and revealed the points based on the “Age” attribute. The Transform Pieces SOP node was used to transfer the rotation animations of each piece to the particles simulation.

Conclusion

The challenges I face during production are usually related to optimization issues. I use GPU rendering for all my projects. Although GPUs are coming with more and more RAM nowadays, I always try not to load the GPU too much. I also like optimization as a general rule for all my projects. I try my best to keep all my setups as simple as possible.

It’s hard to recommend a specific Houdini Tutorial, there’s plenty of them on the internet. Those from the official SideFX website are pretty well organized and categorized, so it is worth diving into them.

My main Houdini learning resource is still the same from the days I started... The CGwiki. Matt Estela is a great guy and he takes all the notes for you! 

Jose Leon Molfino, 3D Artist

Interview conducted by Theodore Nikitin

Join discussion

Comments 1

  • Anonymous user

    Interesting! Thanks for sharing!

    0

    Anonymous user

    ·2 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