Earlier this year I signed up for the “Procedural Modeling for Production in Houdini” course in the Winter 2021 term at CGMA, taught by Sean McEwan. The course is a 6-week deep dive into procedural modeling in Houdini, where a variety of concepts is presented to create procedural assets. This post shows one of my favorite assignments from this course: “Build a cactus generator with proper controls that can generate several varieties of cactus models”.
RESEARCH
For me, one of the best parts of building procedural tools is the preparation stage of researching and analyzing the subject. I’ve started to make it a habit lately, to collect information about anatomy, structure, shape, patterns, variations and naming before starting the development of any tool. The presentation “Analysis and pre-work for procedural models” by Kim Goossens from BUAS explains this process extensively.
During the research I ran into this great drawing by Lane Martin that illustrates the anatomy of a cactus very well. My plan was to build a cactus generator that can generate ribs of several shapes and sizes with areoles and different kinds of spines. For the first version I decided to leave out flowers and stem segments to reduce the complexity, considering the time frame we had.
The reference board below shows the shape variations I focussed on, and ideas to present them in a nice arrangement.
Cactus Anatomy (drawing by Lane Martin)
Reference board for the cactus generator
TOOL BUILD
One of the things I discovered during this course is the benefit of building a procedural tool on top of a set of simple construction curves and shapes. With this approach you can always fall back on the same (very basic) construction curves and shapes that are easy to control, and this also makes your node network a lot cleaner.
For the cactus generator my simple construction shape consists of a basic representation of the rib shapes of a cactus, that can be controlled with a few user interface parameters and a shape ramp. From this:
a smooth plant stem is generated using a subdivision and twist (ramp) operation on the construction shape.
areoles are generated independently from the construction shape, and instanced to areole points, which in turn are generated using a resampling operation, fibonacci algorithm and a twist (ramp) operation on the construction shape.
spines are generated independently from the construction shape, and instanced to spine points, which in turn are generated from the top sections of the instanced areole shapes.
The cactus node network below reflects all of these steps in separate network boxes. The cactus arrangement demonstrates the variety of 3D models that can be generated with the first version of my cactus generator.
Cactus generator network
Cactus arrangement (built with cactus generator)
Another thing I found out to be very useful during this course, is to start creating control parameters in a CTRLS (null) node right away. This forced me to design tools with logical controls in mind, and makes it very easy to visualize dependencies. The video below demonstrates the simplicity of creating an entirely different cactus with only a couple of user interface parameter changes.
Cactus generator tool demo in Houdini 18.5 (February 2021)
CLOSING WORDS
Procedural modeling in Houdini is awesome and very powerful! It’s great to work non-destructively and to be able to go back to any stage of the modeling process and make improvements. The assignments of this course were very educational and a lot of fun! I would really like to revisit some of them at some point and develop the tools into beautiful and polished digital assets.
Update 2023: Check out this project page for my final version of the Japanese Pagoda Generator I started with during this course!