The goal of this project was to create a 3D Menger Sponge fractal with a custom RenderMan interface. To have a better understanding on the Menger Sponge I created a Sierpinski Carpet which is the 2D counterpart first. Later on I used a real-time simulation of the Menger Sponge acting as a softbody object.
To begin the attributes that needed to be designed to make an interface for RenderMan. The number of iterations of the fractal and what hole to remove from the fractal were the first two designed. To extend the fractal a sin math function was added. This meant that the frequency and amplitude needed to be added for the attributes along with a max height.
Now that I had an understanding of creating an interface I set to create the Menger Sponge. Since the two fractals are different new attributes needed to be assigned. Instead of a single hole to target, there is a text field that allows the user to select an array of holes. A drop down menu was added to select whether to render the menger or the holes. To save on rendering time for multiple frames another drop down was added so the user could either remake the RIB file or to reuse it.
Menger Real-time Softbody
My focus is real time rendering and I wanted to do something unique with the Menger Sponge. Altering some of the code I was able to make cube meshes instead of creating a RIB file. I have a custom build of the Unreal Engine that has NVidia Flex integrated. Flex is a real-time unified solver for particle system that can do fluids, softbodies, cloth, rope, adhesion, and gases. The mesh was turned into a softbody using Flex which automatically places the particles on the mesh for simulation.