Parker Britt

Flower Simulation

A procedural flower opening effect created as a workshop for Electric Threatre Collective.

Introduction

This project was created as a university workshop for Electric Theatre Collective, earning me a summer internship as a Houdini TD.

The model was provided in the open position, the goal was to build a closed position and transition between the two. I did this using a combination of KineFX, Vex, and Vellum. The texturing was done in photoshop to match the reference and compositing in Nuke, adding the background element and grade.

Open Close

I started by building a procedural rig. I achieve this by laying the model flat along its UVs, iterating through each leaf and matching a curve along each length. After which the flattened curve is reversed back into the original position where it can be skinned.

The rig is manipulated by rotating the rigs transform matrices in vex.

Closed Position

To create the closed position I curved the KineFX rig inwards creating a colliding mesh, then used that as the target position for a Vellumn solver. The solver followed the rig while creating folds and collisions.

Open Position

The opening animation was created the same way. The rig starts from the closed position, transitioning into the open. Each height of petals starts opening after the previous layer starts. Secondary motion is added and the simulation is then driven by that motion. Benefiting from the art direction of Vex with the physics of a solver.

Texturing

The texturing was created in photoshop as that’s the program I was most familiar with at the time of creating this project. I started using several PBR flower textures, manipulating their form to fit each uv. I then layered additional textures to create the dotted purple effect that was present in the reference. The amount of high res smart layers caused Photoshop to crash many times and taught me the valuable lesson of why people don’t use Photoshop for texturing.

I then moved the textures to Houdini where I built MaterialX shaders, tweaking the, color, normals, and SSS to get the soft, textured appearance I was going for.