Wednesday, January 9, 2013


Before I can venture further with RBDs and fractureing I needed to create my flower seeds, leaves, and stem.

if you are unfamiliar with L-systems they are equal parts awesome and frustrating. Awesome in that you can create a blue print to grow CG plants,  geometric shapes, ect... however they are limited in that the L-system turtle commands can only take a limited number of variables, and they can quickly eat up large amounts of computing power, as L-systems maintain alot of history/data as they are grown/created.

for this project i needed three main components. first i needed a seed arrangement's for my flowering hands. Plant adhere to several laws for governing petal and seed arrangements and growth that fall under the heading of phyllotaxis .

for a description of phyllotaxis  check out the L-system help documents from sidefx. and this website:

here I created an L-system for the half of a leave. grouped it and then mirrored the geometry using the below values:



for this i needed a long stem similar to that of a rose stem with branching leave stems and thorns:



after I have these rules set up i can then supply the leaves to the J and K leaf input nodes of the stem L-system and the result:

Next i needed to create a phyllotaxis rig that i could animate parameters to make the spiral structure rotate:



with this in place i can now attach my arms to the appropriate leave input of the L-system with a transform node to align the orientation of that arm animation as needed the result:

deforming geometry fractures:

At this point i have the basics down and have R&D'ed the fracturing in a controlled manor. The next bit of R&D is to test a deforming piece of geometry.

The process outlined in the previous posts was replicated now with the deforming arm geometry as my fractured object.

the main difference here is in the solver type. FOR the geometry i need to stick together through out the sim(the arm before it fractures) I chose to use an RDB solver for this section due to its ability to handle more complex geometry shapes. Thus when the arm bends and shapes become distorted,  it  will have a higher likelihood of producing concave and or manifold shapes. The bullet solver(used in the tube example) although very fast and efficient, notoriously does not handle the aforementioned shapes with any real dignity. Using the bullet solver on deforming geometry, even with the penetration threshold cranked up: the piece shapes will remain rigid(not deforming per piece), and will try to maintain a minimum distance and position from each other resulting in an exploded view of the the animated geometry with unsightly gaps in what should look like a solid object.

However for the pieces that become active ( peices falling off the arm), i was able to use a second solver the bullet solver to speed simulation times, given the shot framing, ect... Another small trick to speed simulation times, is to set the merge node to "LEFT AFFECTS RIGHT" this dictates to dops that the falling pieces will be affected by the animated arm geo only.

the result of this test is deforming geometry that fractures in a controlled manor. This workflow gives the artist complete  control over which fractured pieces become active, by animating a attr transfer from say a simple sphere to static "T pose" or default pose of the geometry attr transfer as a blueprint for the deforming geometry.

here is an example of the result:

next i needed to create control points for rbd sim

i chose to set up a simple scene with a fractured tube(using the aforementioned volume method) animating from screen right to left. Next i fed the vornoi fracture into a for each sop which contains an add node that i directed to find the centroid of each "piece group" created by the vornoi fracture sop. This will create a single point for each fractured piece of the object with a point number to match the piece group number. I then give each point a black color which i fed into an attr transfer. The opposite side of the attr transfer i animated a sphere(attatched to a trail sop) that animates down in the y axis. The sphere is given a red color. This way when the sphere comes with in the attr transfer bounds it will transfer a  red color onto the originally black tube points. This red color will can now be used to activate fractured pieces in a very controlled manor.

Next i moved into dops and began to set up my simulation.
I set up a ground plane from the shelf, then i manually created two RBD fractured objects. one for the deforming tube(which is actually just translated... not deforming) and the other for the tube object moving peices(the pieces activated by the attr transfer).
I attached an RBD state node to the tube object deforming with a "defualt operation" with a value of "set always" to specify the activation state of the tube object deforming object.
from here I allow editing of my fractured objects in dops and dive inside and set point expressions on the  activation parameters of the sopgeo nodes(see below). This takes the point color from my attr transfer that i did on the sops level on the un-animated geometry and feeds in a per point activation that correlates to the pieces of that fractured object i want to be active. 

This gives me a result like this:

Tuesday, January 8, 2013

i needed to be able to fracture things controlably.

the first thing i had to do is set up the fracture. I did this by creating vornoi fracture

I then convert my arm geometry (in its default pose) to a volume using an iso offset. I also mixed that arm volume with a volume from a box of similar proportions to my arm geo. I plug that volume into a volume vop giving me ramp based on the BBOX positions and the position attributes, this gives me more control over the where I want the volumes to be within that arm shape. I then plug that data into a vopsop connecting the position into a volume sample file(saved out geo from a file node). 
From here I scatter points and plug hook those points into my vornoi fracture sop.

1st post!
hi my name is lee johnson and this blog is designed as a case study of my SESI FX projects

Flowering Hand project

to create a full CG fx shot using houdini with a technical focus on RDBs, vornoi fracturing, and Lsystems. 

opening sequence to girl with a dragon tattoo. here is a link if you are unfamiliar withthis sequence

Assests head count:
for this project i will need a few assets, most of which i modeled in maya/houdini, and sculpted in zbrush .

bud petals = maya zbrush
hand+arms = maya zbrush
flower stem  = houdini
flower leaves  = houdini
seeds  = houdini

bud petals = houdini
hand+arms = houdini
flower stem  = houdini
flower leaves  = houdini
seeds  = houdini

hand+arms = houdini
bud petals = houdini
seeds  = houdini

zbrush for displacement maps
the remander will be houdini

all houdini

here is a test of all the aforementioned elements (excluding the dynamics)together