• This is a study in creating procedural growth of organic branching and networking patterns similar to a spider web or folium pattern using a space-filling/colonization algorithm.
  • Inspired by Rogan Brown’s and his paper sculptures in which he synthesizes science fact and science fiction, the end result of the project is a series of complex animations for social media to promote a fictional exhibition of Brown’s works.


Cut Mandala Variation (2017), Rogan Brown



Creating circle with irregular spaced points

The project began with producing a base shape of a disc with irregular spaced segments which will be used for the procedural generated organic patterns. A VEX algorithm for generating a circle was modified to randomized the segment for each phase, and from there the points can be joined and polyextruded to form a ring primitive. Below is the algorithm for the circle generation

					float radius = chf('radius');
int pt =chi("numpt");
float minFactor = chf('Minimum');

float angle = 360/float(pt);
int points[];

for (int i = 0; i < pt; i++)
    float rad = fit01(rand(i),minFactor,1);
    float x = radius * cos(radians((i-rad) * angle));
    float z = radius * sin(radians((i-rad)* angle));
    float y = 0;
    v@loc = set(x, y, z);
    points[i] = addpoint(0,v@loc);



Cellular Voronoi Pattern

With the base shape made, the organic patterns are generated from it by:

  1. Resample to introduce more points, and slightly randomize their locations with a Point Jitter
  2. Triangulate 2D & divide with a Dual computation
  3. Resample again before using it for the procedural growth animation


Spread growth

The growth of the particles was primarily driven by the Pyro Source Spread SOP by using

  1. Select the starting points for the growth using groupexpression, and select the points at the edges by using the expression: length(@P) > .99. Alternatively, to select random start points instead: A grouprange can be used to select random points within a set range → instance spheres on those points → connect it as the 2nd input of a groupwith Bounding Type set to Bounding Objects in Points Group Type
  2. Create an attribute called temperature which will be used by a Pyro Source Spread with a low cooling and diffusion rate
  3. To stylize the spread shape, Diffusion Rate Noise was added
  4. Finally, delete the unused points

Creating Mesh with VDB

Modeling of the frame

In order to stylize inner edges like the one observed in Brown’s sculpture, a stencil is needed to be used in the VDB meshing. To do so, the inner points were selected with a Group Expression, and then multiplied with the positions of the points with a remapped randomized value of their normal using the following VEX:

					float val  = fit01(random(@N+@ptnum),.5,1);
@P*= chramp('myRamp', val);

VDB Meshing

Even though the growth is happening along a paper surface, that does not mean it is completely flat as a paper has some thickness in real life. To generate a geometry mesh with thickness from the growing points:

  1. The pscale of the points was set to a certain size with a Point Wrangle
  2. These points and the stencil’s points are then converted to Volume data with a VDB from Particles/Polygons
  3. To mask away the uneven surfaces, a VDB Combine is used to combine both set of points with a SDF intersection operation.
  4. Finally, a polygon mesh is generated with Convert VDB and subdivided to introduce smoothness.

How this could be pushed

Here are some ideas for the future that could make the animation more interesting:

  1. For the pattern growth, they could “bubble” before forming a flat surface like a crystal growth behavior.
  2. The branches or pattern can jitter or move subtly to emphasize the growth movement
  3. For branching, the thickness of branches can become smaller as it grows


You are only as good your reference.

Importance of reference & the 1 %

In Motion Design, I have a tendency to stray off our reference because abstraction is encouraged and appreciated within our field. In the critique of my peer’s render by Professor Fowler, she was still able to point out small details that could be addressed to push the photo-realism of the render, specifically the specularity of the material, or the bevel of the model.

Even in the feedback session of my work-in-progress, the Professor encouraged me strongly to have a reference for what I wanted to achieve in my look development. In the past, I would not have given so many thoughts about being so detail-oriented. But I know now that high-quality works and success is the cumulative effect of artist’s attention to detail. Art and creativity is a practice informed by paying attention to the right things, and executing, elevating them, or even eliminating them.

How does this course relate to me?

Throughout these past ten weeks, I had told myself that I do not see myself being hired as a Houdini Artist for a Motion Design studio and that this Houdini skillset is a bonus that I can offer to a studio when they hire me for my primary skills in After Effects.

That said, I had a thought: What if I just separate this Houdini or CG discipline from my career and just let it be a recreational exploration of science facts and fiction for scientific organizations. That’s just an idea for now. It’s always a mystery how the things we learned today can inform future creative practice. For now, I believe it’s still early for me to connect all the dots.

In the final analysis, this course has been very influential in my creative practice, specifically written and visual communication. I grew more conscientious about the visuals I used to communicate my expertise and breakdown, eliminating what’s not necessary, and organizing my pages to position myself better in the role that I want: that’s right, a full-time househusband.

Below is the evolution of my process pages that span across the 3 VSFX classes taken, and as well as how this methodology is translated to my core discipline of Motion Design,