Disintegration & Growth Effect in Houdini

Download Houdini File: Disintegration_and_Growth.hiplc

Download Houdini File (vdbadvect): Disintegration_and_Growth_vdbadvect.hiplc

Using a Foreach Loop and the SOP Solver, I was able to create a growth and disintegration effect in Houdini. By simply repeating the simple operation over and over generates very interesting results. In the disintegration scene, I use the vdbcombine to subtract holes from a starting cube geometry. By simply changing that same scene setup from subtraction to addition creates a whole new growth scene. This simple operation is repeated over 10 times in a Foreach loop, which is then repeated over and over in each frame using the SOP Solver.

Foreach Loop & SOP Solver, Why Both?

Foreach loop repeats operations, then why is the SOP Solver necessary? The SOP Solver repeats all operations inside the SOP Solver node for each frame. They both can carry over data from the previous iteration. So why is it necessary to use both in my scene setup in Houdini?

In the disintegration scene, subtracting holes from the geometry, one hole at a time is very slow. By using a Foreach loop, I’m able to subtract 10 spheres from the geometry every frame. The Foreach loop helps speed up the visual effect in the scene.

The SOP Solver helps evolve the geometry by using the previous deformed cube and subtracting more spheres to deform it further. This creates holes on holes, which results in more interesting shapes for each frame.

The Foreach loop helps the speed of the disintegration and the SOP Solver helps the geometry evolve into interesting shapes each frame.

To Combine or Not to Combine

Inside the Foreach loop, I choose to use vdbcombine and subtract randomized spheres from my starting cube geometry, but this could have been a different operation. Just by changing the operation from subtracting to adding in the vdbcombine node, I was able to change the disintegration scene to a growth scene.

This is the power of Foreach loops and SOP Solvers!

vdbadvect is added after the original disintegration effect

vdbadvect is added after the original disintegration effect


Near the end of the tutorial video, reusing the disintegration scene and without changing the existing nodes, I added one more step after the Foreach loop inside the SOP Solver. This additional step is still within the SOP Solver and is repeated over and over for every frame. Simply appending this extra step, I was able to change the scene quite drastically.

I added a vdbadvect node following the Foreach loop. The vdbadvect node like the name implies operates on vdb’s or volumes. In order to subtract holes from the starting cube, I used the vdbcombine node inside the Foreach loop operations. Therefore, the geometry is still a volume even after the Foreach loop and is compatible with the vdbadvect.

The vdbadvect node moves the points in the geometry according to a velocity field that you plug into the right input of the vdbadvect node. The right input requires a velocity volume.

disintegration and growth___vdbadvect closer look network.JPG

The geometry that is plugged into the left side of the input will then move according to the velocity volume defined. The velocity volume primitives are randomized to make interesting animation motion. The effect will end up animating like the noise you apply to the velocity volume. If you have smooth noise like Perlin, the geometry will end up disintegrating like the Perlin noise.

Velocity vectors attached to points that were scattered

Velocity vectors attached to points that were scattered

I put down an Attribute Randomize node to randomize the velocity data. However at this node, the geometry isn’t a volume yet. It is purely a bunch of points that were scattered and the Attribute Randomize creates random velocity vectors that are attached to each point as an attribute.

Then a new volume is created as a placeholder to store the velocity vectors in our soon to be velocity volume. The Volume from Attribute node uses the velocity vectors from the points and adds these velocity vectors to the volume.

There are two types of volumes in Houdini, Houdini Volumes and VDB Volumes. I put down a Convert VDB node to convert the Houdini Volume into a VDB. This makes it compatible for the vdbadvect node as a Velocity VDB (right side input).



The spheres don’t cover much area and if the spheres are larger, the scene will surely disintegrate faster, but the scene will look very odd and low quality. After some trial and error, I discovered that subtracting 10 spheres from the starting cube geometry seemed like a good fit for my PC.

The smaller the spheres, the better the resolution of the effect. However, if you watched one of my previous videos on Foreach loops, you’ll understand that the polygon count increases exponentially after each subtraction. You need to find a good balance between what your computer can handle and what kind of effect you want to achieve. If the file keeps crashing before the sim finishes then that just gets no where.

Motion Design

The disintegration and growth scenes are excellent for splash screens for motion designs. With unique rendering and tweaking the scene by adding a variety of noise or different operations to the scene this could be a great introduction scene for the opening of a movie or sci-fi scene.