Jack Jägerman discussed his approach to creating different types of particle simulations in Houdini for his project Downfall, talked about adding materials to the particles, and gave a few useful tips on technical art.
Hi! My name is Jack Jägerman and I am a freelance 3D Artist working from Lund, in the southern part of Sweden. I work mostly as a generalist doing product visualization at different studios and for a variety of different clients like Sony, Electrolux, and so on.
Right now, I am sitting at Frank Valiant doing some really cool visualizations for a client of theirs – I am not at liberty to say more right now, but it’s going to be epic!
I studied the 18-week “Advanced 3D for Visual Effects” course at Escape Studios in London back in 2015-2016 before moving back to Sweden. Since then, I have studied Graphic Design at Lund University, but from a 3D perspective, it’s been online resources and workplace experience that has been my main teacher.
After getting back to Sweden and starting my own company, I really started looking into Technical Art. The perfect union of artistry and technical work felt like such an interesting balance so after receiving a tip from one of my teachers at Escape Studios, I started learning Houdini and have never looked back.
Rather few studios I work with use Houdini so I always try to preach the benefits of the software so that I might be able to use it more haha!
Since we live in an era where you have an almost unlimited number of learning resources at your fingertips, you can find information on just about anything from the internet.
If you want to learn more about Houdini, there are tutorials on Youtube and Vimeo, free of cost that teaches everything from fundamentals to specific effects. Along with that, there are Facebook groups, Discord channels, and SideFX’s own forums that are chock full of awesome and helpful artists from around the globe!
If you then feel like taking it to the next level, I can heartily recommend Rebelway and CGMA, I’ve attended online courses with both, and they are fantastic – but they do come at a cost!
“Downfall” was a great project and something I enjoyed immensely to work on. The project was made for the “Mastering FX Lvl 2” course over at Rebelway (it’s now been renamed “Advanced Houdini FX – Rise”).
From the curriculum and the introductory video, I knew what kind of effects we were going to be doing and I instantly felt that I wanted to try a slightly different take on it. We were provided every model the instructor used but I have always felt that the best way to learn something is to make your own version of it. From the number of unfinished projects lying around on my personal drive, I decided right away to give myself a deadline for the project coinciding with the end of the course. Knowing that there was a time limit of 10 weeks in place helped me try to scope the project and decide on what I could and probably could not do.
Starting by watching the video that the instructor, Saber Jlassi, had done I started thinking about what elements I wanted to add or do differently to make the project my own - but not so wildly different that I would miss out on the techniques taught or that I could not finish on time.
After deciding on the main beats of the video, I set about creating the environment, the statue, the orb, and the character. With all the assets made the iterative process of creating the FX (and the real fun) began!
My go-to for practically all FX is Houdini. In fact, everything in the project except for the character is done in Houdini and the particle systems are no exception. All particle simulations seen in “Downfall” are POPs (Particle Operators) made in Houdini, all with a different look and motion depending on what purpose they serve – but in this scene, it could basically be split into magic or sparks. Most good particle simulations require some amount of layering to give it a natural and vibrant feel, whether it is chaotic or controlled, this helps make it feel more complete and varied.
For this specific project, I feel that the particle simulations are the ones that should have received a bit more love but the time frame forced me to make some concessions, and I prioritized the RBD and pyro instead.
The force very much depends on what the purpose of the particles is. All of the magical ones were given more of a coherent force that made them travel more as streams than as individual particles. The sparks are far more chaotic and independent from one another. The base approach for both of them are similar, but the forces applied are different.
Most of the magical setups are fairly basic with sources either close to or on the surface of, for example, the characters' hands. Coupled with some VOP noises and animated seeds to keep it randomized and uneven so that there is always some breakup – something very important to give it a natural look, keep your source randomized!
For the actual forces, I generally use several “POP Wind” nodes with varying size and strength as my basis. If I need more intricate motion, I generally make some basic smoke simulation and run them through a “POP Advect by Volumes”, that way you can get some great swirly motion.
A slightly more interesting one would be the particles following the cracks after the lighting strikes. Here is a short rundown of the process:
- Bring in the geometry, remove all inside pieces and in a “Divide” node, remove all edges that are not border edges.
- Use a pre-drawn curve to decide which parts of the statue you want to consider for the curves.
- Attribute transfer an attribute from the curves to the statue, pick your start/end groups and run them in a “Find Shortest Path”.
Now you have a base source for particles following the existing cracks and can do some awesome stuff with that!
The sparks are done in a slightly different way though the overall process is very alike. When I was doing the pyro simulation, I added the points via an SOP solver. There I could get them spawned naturally from the fire and inherit the velocities found. This is then fed into a POP network where some additional forces are added to break the sparks up a bit more while still following the fire.
Working on the Material for the Particles
When the simulation is done, I normalize the age of the particles to get a 0-1 range of their lifespan, no matter the time difference of the particle lives.
This coupled with a random function based on the @id, not the @ptnum, I can easily control the pscale, alpha, and color variation of the particles when moving on to look at development and shading. Using the normalized age, commonly referred to as @nage, I can feed that into several ramps and noises defining different aspects such as emission, alpha, or any conceivable thing really!
Then bringing this into a compositing software, Nuke, in my case, a bit of exponential glow goes a long way to giving it that smoldering hot, or magical, feeling.
The Biggest Challenges
The greatest challenges of this project would certainly be getting all of the aspects and pieces to fit together. Several of the techniques used were learned during the project and it led to several points of jumping back and forth to better tie them together.
Getting the particles to interact with the RBD and the RBD to have the feeling of being affected by the particles with the addition of pyro and smoke simulations could be quite a furious jumping between them all – but it was a great learning experience and a lot of fun.
My tip for that would just to slow yourself down and start looking at things methodically. What is the primary driver, the secondary, the tertiary, and so on. When all the elements and their dependencies have been identified, it is much easier to go through them in an orderly fashion and plan for what trickles down the pipeline and what things are independent of others.
When it was all said and done, I still felt like there were a few design aspects and smaller mistakes I wanted to correct, but in my mind, that would detract from the learning. I’ve yet to work on a project where I am given a nigh-infinite timeline to polish things forever, so I feel that it’s better to get into the mindset of identifying and remembering my mistakes than spending forever going through and fixing them all on a personal project.
Next up for me, I’m doing a few more months of standard product visualization in Maya, but looking ahead I really want to move over more and more towards Houdini – either continuing as a freelancer or trying to get into a studio. However the future turns out, I truly hope it’s filled to the brim with awesome FX in Houdini!