FX Artist JJ Sun has shared a comprehensive breakdown of her recent Hurricane Simulation project, explained how the destructible building was set up, discussed the environmental effects, and showed how the simulation was rendered in Houdini Solaris using the USD pipeline.
Hi there! My name is JJ Sun, and I'm an FX Artist who graduated from Lost Boys School of Visual Effects and going to start my career at Industrial Light & Magic in March. I have created a Hurricane simulation using Houdini, which I'm excited to share with you all.
My passion for art and technology started early on, but I studied finance and accounting at university instead. I spent several years working as a financial analyst, but my love for art never faded. I attended art school in the evenings and weekends to hone my skills in fine art, illustration, character design, and landscape concept art. Three years ago, I finally took the leap and became a full-time artist.
Before transitioning to technical art and visual effects, I worked as a freelance artist, creating illustrations, designs, and commissioned paintings. While I enjoyed it, I was eager for new challenges and opportunities to work with a team. That's when I ventured into technical art.
For the Hurricane Simulation project, I handled everything from modeling to lighting, effects simulation, rendering, and compositing. I'm excited to share my experience and a detailed breakdown of the project with you.
I first learned about Houdini from my friend, Kobi Moldavski, a Senior Environment Artist at DNEG. He suggested I look into Houdini and recommended the FXTD program at the Lost Boys School of Visual Effects. I was immediately intrigued by what Houdini could do.
So, I enrolled in the program in March 2022 and threw myself into my studies. I worked extra hard to catch up. With the mentorship from my instructor, Kyle Yoneda, the support from my schoolmates, the resources provided by the school, as well as the contributions of online Houdini content creators, I have gained the confidence to create virtually anything I set my mind to.
The hurricane simulation was my pitched project for the RBD (Rigid Body Dynamics) section of our learning module at school.
My main goal for this project was to recreate a scene based on a real-life hurricane scene as accurately as possible within the six-week timeframe. I used footage from the Tornado Trackers of Category 5 Hurricane Michael hitting Panama City Beach as my reference. My focus wasn't on creating a cinematic shot but on honing our attention to detail and ability to create a realistic simulation.
To create a cohesive wind-storm effect across all elements, I worked with references extensively. I paid attention to the motion of debris and the interaction between the wind and the surrounding environment to ensure that my simulation was as realistic as possible. I also explored the interaction between the RBD bullet solver, Vellum, and PYRO, which allowed me to create a more dynamic and seamless simulation.
Stage I: Research and Planning
To ensure a smooth workflow, I always begin a project with research and planning. This involves creating a work plan that outlines my approach to the project and estimates the timeline, which I revise regularly. I find it not only helps me stay organized but also serves as a snapshot of my progress during our weekly screenings with my supervisors.
As the project progresses, I may need to adjust my plan to account for any changes. You can see an example of my work plan below:
When I start a new project, I like to convert the reference footage into image sequences and use them as backgrounds in my 3D camera. This method makes it easy for me to compare my simulation with the reference.
To keep things simple, I focus on the most important elements of the scene and break them down into static and dynamic parts. For instance, when I was working on the hurricane simulation, I only needed to fracture the camera-facing sections since those were the only visible parts of the house. To get a better sense of the final result, I create a quick pre-vis with simple animation and camera setup. This helps me visualize the timing and overall look of the shot before diving into the actual production.
Stage II: Modelling and Fracturing
Assets for destruction are usually custom-built, as there is a specific requirement for a model to be destruction-ready. For example, every piece must have a proper name attribute, and you need to make sure the geometry is closed (water-tight) and no open holes, wrong normals or unused points, etc.
1. Store User Input Data in a Master Controller Node
2. Make a Low-Res Block Shape and Match it with the Reference
3. Construct Detail Model
In order for the RBD bullet solver to work, I needed to make sure there is no intersection between those pieces that will be simulated. Here are some useful tips to prevent intersection:
4. RBD Fracturing, Constraints, and Custom Clustering
Stage III: Multi-Stage RBD Simulations
By using multi-stage simulations, I can avoid overwhelming myself with a complex simulation and make the process more manageable. It also gave me more control over art direction at each stage.
For instance, let's say you have a shot where a building is collapsing, and there are several types of materials involved such as glass, concrete, and steel. Instead of trying to simulate everything at once, you can break it down into stages. First, simulate the concrete and steel collapsing together, as they are more structurally related. Then you can simulate the glass breaking and falling to the ground separately from the concrete and steel. Finally, you can bring all the elements together and simulate the interaction between the glass, concrete, and steel.
In my Hurricane project, the roof, loft boards, and pink insulation all can be simulated separately, as they had different interactions with each other. By breaking it down into stages and simulating each component separately, I was able to better manage the complexity of the simulation and achieve the desired results.
Stage IV: Environmental Wind-Storm Effects
Most of the wind-storm effects in the scene were created by applying motion to the environment elements such as the roof cloths, cables, palm trees, and grass. I used Vellum Solver in Houdini to simulate all these. The wind force was created using the pop force node inside the DOP network. While there are many details involved in setting up Vellum simulations, it may be too lengthy to discuss here, so notify me if you would be interested in hearing more about the topic.
In the final step, I added atmospheric dust and volume to the scene. To achieve this, I created a custom velocity field and ran a pyro simulation using the sparse solver. This helped me achieve a realistic look for the dust and smoke in the scene and added depth to the overall atmosphere.
Stage V: Final Render in Houdini Solaris using USD Pipeline
My final render was done in the Houdini Solaris LOP network. I converted all static elements to USD and directly referenced them into Solaris, using SOP import to bring in all the vellum and volume elements. I set up lighting and camera and rendered out AOV passes using Houdini's native Karma render. I also used point instancing for all the RBD dynamic elements directly inside the Solaris LOP network. Using the instancer method allowed me to store position, rotation, and velocity data on points and apply them to static RBD fractured pieces at render time, which significantly reduced render time. Then, a final touch-up in Nuke for minor color correction and camera shake.
If you're setting up a similar simulation, here are some tips to keep in mind:
Other great online Houdini content creators such as Rebelway, Adrien Lambert, John Kunz, Junichiro Horikawa, Paul Esteves, Keith Kamholz, and many more. I greatly appreciate them for their contribution to the tech art community and wish to do the same!
Feel free to connect with me on LinkedIn or Instagram for further feedback. Thank you for reading!