© 2016-2019 Danny Barnhart | All Rights Reserved.

Eggsplosion

3•14•2018

The purpose of this project was to challenge myself to replicate various aspects of an egg breaking in Houdini in slow motion.

R&D

This project required a lot of research and development, as I had not done a simulation that combined fluids with fractured objects, especially in bullet-time. 

I decided to first test fluids interacting with an rbd object. I tried using the egg as a rbd packed object, and as a rbd fractured object. Both did not interact with the fluid in the way I wanted. After researching fluid interaction further, I found that creating my shattering geometry, caching that out, and using that as a collision for fluids would likely be the best solution for my project.

Eggshell Fracture

I went through several iterations of fractures for the eggshell. I had to decide what it was in the scene that would cause the eggshell to break. In addition to this I did a huge amount of experimenting with different ways of fracturing and clustering pieces of an object, and using different kinds of constraints within an rbd sim. Once I had a fracture I felt I could work with, I sourced a vdb from the cache to use as a collision for the fluid. This way, I could easily tweak and re-cache the destruction effect, and it would already be hooked into the fluid sim.

Fluids

I created a fluid object inside the egg that would mimic the whites of an egg, I wanted to get something close to what I liked with just one fluid before introducing the second fluid (the yolk). My biggest problem with the fluid and rbd interaction was fluid leaking through the thin eggshell geometry, I had to increase the substeps significantly to solve this problem, as well as extrude the cached fracture to add thickness to the collision.

I achieved the physics of the white and yolks by using high viscosity, surface tension, and elasticity. The elasticity was made possible by this tool. Because I ran the simulation at 6000 frames per second for smooth slow motion playback, I had to drastically increase the viscosity for it to appear physically accurate.

Rendering

All shading, lighting, and rendering was done in Houdini using Mantra. I broke the scene into 3 layers to reduce render time, and combined them in Nuke.