See How to Simulate Different Types of Sand in Houdini

Martín Chumillas shared insights with us about VFX and using Houdini for sand simulations, guiding us through various types of sand and the methods for creating them.

In case you missed it

In case you missed it

Introduction

Hello readers! I am Martín Chumillas, a Junior FX Artist from Spain. A few months ago, I graduated from school. It's a pleasure for me to be here and talk with you!

My journey into VFX started driven by my initial passion for photography and videography. While it was a source of joy with friends, I always wanted to improve and learn new things and programs like Photoshop, Premiere, Lightroom, Davinci, and others, to be able to reach another level in my work. This is how, at the end of 2020, I discovered the VFX world and Houdini and fell in love with the possibility of being able to create anything realistically.

In my case, I began to learn self-taught for several years and, finally, I completed a master's degree in "VFX and compositing with Houdini and Nuke" at Animum3D School, where I could have more organized training. At the moment, I have not been able to apply my knowledge to a real project, but I do not give up, so I keep learning every day. I know it will come soon!

Houdini

Like many artists, my first step was making introductory tutorials: the typical donut, the procedural stairs... to understand the basics of the program, how nodes work, and how the information passes from one of them to another. Learning those basic things well was crucial to doing more complex tasks in the future.

It's normal to hear people say that Houdini is one of the most difficult 3D programs, but that difficulty and seeing what could be done caught my attention from the beginning. I took it as a challenge, and everything I achieved motivated me to continue learning to this day.

The main advantage of Houdini is that it is a well-established program that allows you to perform more and more tasks, minimizing the need to switch software frequently. It is also a standard in the industry, so you can find a lot of information for training, and has a very large community that will not hesitate to help you with any problems that arise along the way.

In the process of learning Houdini, many problems can arise. However, without a doubt, the hardest thing for me is to overcome my moments of weakness. Many times I have been frustrated, I have felt that I wasn't good enough for this, I have compared myself to other artists and thought that my work was lacking, but despite all those thoughts, you have to take time to think, look at where you started and what you are capable of doing now.

The Series of Sand Simulations

The initial idea was not to make a film shot, but to make a study about sand: to know how it behaves in real life, its differences, and how to simulate it in Houdini using Vellum Grains.

The first thing I did was to look at some real references on YouTube and Pond5 (a site I highly recommend). I tried to see what the differences between them were and drew the following conclusions: 

  • In the case of dry sand, it looks like each grain is independent, they do not stick together.
  • Half-wet sand acts in a similar way, but small sand formations are also visible and tend to hold together until they impact somewhere.
  • The wet sand is more consistent, the pieces are perfectly visible and have a greater variety of sizes. They are more resistant to impacts and tend to break into smaller pieces.

Knowing all of this, I was ready to recreate everything in Houdini.

Setting Up Different Types of Sand in Houdini

Once inside Houdini, before starting with the arena setups, I created a backdrop and placed a Tommy to understand the scale.

Dry Sand Simulation

The dry sand was the easiest of the three. I created the collider, which was a box with some holes. As a source, I used another box with some noise and I put a vellum-configured grain with a particle size of 0.015, which gave me approximately 4.6 million particles. (Note: the 4.6 million particles was not the initial number. First, I iterated with a low quantity, and finally, when I had the behavior I was looking for, I started to increase the number while adapting the simulation to the new resolution.).

In the solver, I used 5 substeps because SideFX recommends at least this minimum, and it worked for me. I also lowered the max acceleration to 15 to better control them and set the attraction weight to 0, as I did not want them to group together. It is important to control the friction of both the particles themselves and the colliders. In my case, I increased the friction so the particles did not slide too much on the ground.

In the post-sim, I adjusted the pscale and put a random color to each particle based on an attribute I created with the rand() function.

Half-Wet Sand Simulation

For half-wet sand, the approach is almost the same, but with the addition of several new concepts. 

As I mentioned before, we need the particles not to separate so easily and create those little clumps. To make that happen, we are going to need an attraction weight that defines how much the particle sticks together and constraints: Firstly, I made the attraction weight. I used some noises that I fitted from 0.5 to 0.8 and exported it as my attraction weight.

Next, using Voronoi noises, I created a class attribute that determines the pieces. I then split some of them, which is where the constraints will be made.

Regarding the constraints, instead of creating them directly with the "Vellum Constraint" node, I preferred to manually create them with a "connected adjacent pieces" node. However, you can just use the glue constraints that generate the "Vellum Constraint" node, even though the result may not be exactly the same. To determine when the constraints should break, I used a break threshold of 18.

With the union of these two concepts, I could achieve the little pieces.

Wet Sand Simulation

I made the wet sand with the same technique as the half-wet one. The only difference is that here I used an attraction weight of 1 for all the points, and I made some constraints that needed a higher impact than others to break. As a result, I now have pieces that do not break, causing that muddy effect.

Rendering, Lighting & Post-Production Settings

The lighting was quite simple. I only used an HDRI from Poly Haven and an area light as a fill light. Finally, in compositing, I put noise reduction and softened the sharp edges a little. 

Conclusion

The project took almost two weeks. I feel satisfied with the result, and despite getting stuck at some points, I believe I have achieved the main objective I set out to accomplish. I hope you have liked it as much as I have enjoyed making the breakdown!

Tips & Resources for Aspiring Artists

I would recommend John Kunz's channel, as he has a wide variety of content, Junichiro Horikawa, if you want to dive into VEX, and the SideFX page where you can find a lot of tutorials made by professionals. 

I also advise taking notes. Houdini is a very extensive program, and it's impossible to remember everything. That's why taking notes with images and a little explanation can save you a lot of time in the future. And if you have any doubts, ask without fear! There are many forums and groups available to help each other.

Martín Chumillas, Junior FX Artist

Interview conducted by Theodore McKenzie

Join discussion

Comments 0

    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