top of page


After my collaboration with Illusorium Studios during which I dug deep into Maya tube grooming, I took some time to make some research and try to replicate the same technique in Houdini. Not an easy task for a no-nerd artist like me.

Anyway, I got somehow what I was looking for and in this tutorial, I will go through the main steps.

To better follow all the steps, here you can download the file, ready to be rendered:

Remember to set the project to the directory where you unzip the file.

The grooming is very complex and heavy in terms of curves. There are almost 30 hairgen nodes and to load all of them takes several minutes. Be sure to set Houdini in manual mode and activate the ones you need.

You need GroomBear.


This is a personal project and some solutions I found may not be suitable for production. The goal of this effort was to make some research and try some tools and workflows. To be more specific and make an index for this tutorial, these are the main topics:


As always this is the key to a good job. Never work by heart. Your mind is unreliable and you may get this only after many hours of hard work. Grooming is a very complex task and you need clear references to follow.

To start, I made a quick search and once I found the key image, I looked for other views of the same subject:


Another key reference for grooming is video. Sometimes the hair flow is so complex that watching how hair is combed can help you a lot. In my case I googled "dread bun" and I found these refs:


Even if I'd love modeling my characters, as a groomer I prefer to concentrate just on hair/fur and spend all my time doing this task well and quickly. For this reason, I tried two different approaches to quickly get what I was looking for.

The first method was Face Builder (for Blender) by Keen Tools:

This is a very cool plugin that lets you model quickly and with ease a face using a bunch of images (in different angles) of the same person. A good starting point if you want to go further with the modeling task or just a reference if you don't care to have a final model under your groom.

Tip: This tool is very useful to get 3D cameras from your photos and use them to follow the hair flow

Using the best refs of my guru and a little bit of sculpting I got this:


click image to enlarge

Not bad for a couple of hours of work. Likeness and clean topology.

But I decided to go another way. The reason is that the goal of the project was tube procedural modelling and not digi-double. If I had chosen to use this approach, the model and the groom should have perfectly matched, and with a procedural approach this is not possible.

So I decided to use Human Zbuilder - Head a very cool plugin for ZBrush:


The goal was to get an Indian-like face to put under my big dread bun. So, after another couple of hours, adding some details with some skin brushes in ZBrush I got this:


click image to enlarge

Once again, not bad: cool model, clean topology, 6 ZBrush levels, UV and albedo:


click image to enlarge

For my personal projects, to speed up the texturing process, I usually buy a model from 3D Scan Store. This way I'm sure that textures perfectly match the model. But this time I wanted to make something different and starting from my refs and the plugin albedo I made my maps.

As regards displacement, the plugin creates different kinds of skin pores that are cool, but for this project I wanted to try the Multi-channel Faces by


click image to enlarge

To match the textures to the model, I exported an UV wireframe image from Houdini and put it over the albedo as guide. Then, with the Photoshop Puppet Wrap tool I deformed the Multi-channel face image:


click image to enlarge

This is the final result (ZBrush sculpting + displacement map):


click image to enlarge


Now comes the tricky part.

The whole process is very complex and going into detail for each setting would take forever. My goal is to explain the main steps and make the file available for download for those who are interested in deeping dive into it.

I was looking for a tool that could let me turn simple guides into tubes. To better match my reference I divided the dread bun into 6 parts:


click image to enlarge

To start, I procedurally created the tubes and then I drove them with a guide.


I started with a circle, a line, a copytopoints, and a sweep nodes:


click image to enlarge


click image to enlarge

  • Circle > Uniform scale controls the diameter 

  • Circle > Divisions controls the number of tubes


click image to enlarge

I used a sweep node rather than an extrude node to have the following settings which helped me to match my reference:

  • Radius

  • Scale along curve

  • Roll/twist

  • Pitch


click image to enlarge

To have some variation in the diameter of the single tubes I added a couple of nodes:

  • attribrandomize​​

    • set to "Two Values" gives you Value A/B to get play with

  • attribpromote

    • set to "pscale"

To add even more variation, I duplicated this first part of the tree and added a delete node in both branches with some parameters linked to keeping, when merged, always the same amount of tubes (controlled by the circle divisions):


click image to enlarge

At this point, I added 3 twist nodes to start shaping the tubes: 


click image to enlarge

Using the taper option of the bend node I got the diameter reduction in the bottom part of the tubes:


click image to enlarge

Now, to shape the tube group (I divided the dread bun into 6 parts), I used a single guide. I usually use GroomBear, but you can do the same using a regular guide groom node


click image to enlarge

At this point I added the guide into the second input of a pathdeform node using an object merge node:


click image to enlarge

What I've done so far (variation, twist, taper) was meant to create all these different directions in the edges that will be converted into curves and then into guides:


click image to enlarge

This is a key point.

After long research, I found SideFX Labs which is a collection of 230 tools. Among these, the Labs Edge To Curve is exactly what I was looking for.

To use it, you have to convert the tubes into curves, group them and finally feed this node.

So I added these 3 nodes to the tree:


convert node set this way:

  • Convert to: Mesh

  • Connectivity: Rows


click image to enlarge

This could be a very long process, so pay attention to select/enable it if not necessary.


group node to select all the edges


click image to enlarge


Now it's time to feed the Edge Group To Curve node that ends the process:


click image to enlarge

Before converting the tubes, you can modify their shape using sculpt, lattice, soft transform etc. This is useful to avoid interpenetration between the different parts of the dread bun. A quick way to fix the issue without modifying the curves or other settings.

TIP: A very simple but cool node I use a lot is the switch node. In this case you can put it at the very end of the tree and connect:

  • the Edge Group To Curve output

  • the pathdeform (or other modifying nodes you used) output

This way you can avoid the long convert process ad keep the tubes visible:


click image to enlarge

This ends the tube grooming part.


It's time to feed a guide groom node and add some variation to the curves:


click image to enlarge

As you can see, using only external curves you don't get a thick dreadlock tube. On the other end, filling all the tubes with curves means getting a very heavy scene.


As a compromise, I duplicated the guide groom node and added a resample node to reduce the volume:


click image to enlarge

When both nodes are enabled, this is the effect:


click image to enlarge

Now, you simply need to add an hairgen node and use the modifiers (clump, frizz, bend, etc.) to get the look you are looking for.


Before ending this tutorial, I would like to share with you 2 techniques I use for this task.

The key is GroomBear the grooming toolkit for Houdini. With this technique, you can comb even the most complex hairstyle very quickly. If you are not familiar with GroomBear, please read my previous tutorial "From hitch to hypster" on Pixar's Renderman website" or find other tutorials or resources like this.

Please pay attention at the steps and especially at the settings of the tools I will use.




Using the draw or scatter brush, shape your guide


click image to enlarge



Using the scatter brush with "initial brush" option disabled plant some guides


click image to enlarge



Leave the shaped guide unselected


click image to enlarge


CLUMP - Part I

  • Select the clump tool

  • uncheck "maintain length" (in the parameters window)

  • Clump Screen Method > Clump select

  • hit the "Clump Select" button 


click image to enlarge



Brush the guides until you get a very tight clump


click image to enlarge



  • Select the smooth tool

  • uncheck "maintain length" and "orient" (you can use these option later if you need them)

  • Smoot Method > Average Tangents

  • Smooth Radius > 0.6 

    • this is a key setting. With this value, you can avoid interpenetration​

  • Set the brush strength to a low value (0.26) to have more control


click image to enlarge

Brush untill you get the shape you are looking for:


click image to enlarge

With this technique you can change the shape very quickly:


click image to enlarge

Working with the smooth brush and its options you can shape even large areas and the result is pretty clean:


click image to enlarge

If you want, you can now select the most external row of guides and shape them over all the others to avoid any interpenetration:


click image to enlarge


If you want more control, you can use the Clump Brush and the Scatter Interpolate tool:


click image to enlarge

Let's see quickly how.

Once the main guide is created, plant just one guide using the scatter tool with "initial brush" option selected:


click image to enlarge

Now, as you did before, use the clump brush:


click image to enlarge

And the smooth brush, but this time with the "Average Neighbours" option:


click image to enlarge

Do the same for another couple of guides:


click image to enlarge

Now, using the "Scatter Interpolate" tool, add as many guides as you need:


click image to enlarge

Using this technique, you can quickly build your grooming following the main clumps, and using GroomBear groups or multiple GroomBear nodes you can keep the whole thing well organized.

Tip: Using the new Houdini 19 guide groom node (which is very similar to GroomBear), you can add parting lines very easily and this helps keep things neat even in complex groomings. 


I'm not a lookdev artist so, in production, I usually deal only with grooming.

But for this personal research project, I wanted to test the new Renderman MaterialX Lama. I will not go deep since you can find all you need to know here in the learn section of the Renderman website.

Here I will simply show you my graph and share a simple technique to add variation to the shader.



click image to enlarge

As you can see, nothing fancy. Just a LamaHairChiang whose TT Specular color is driven by a PxrHairColor. To add some variation I used a PxrColorCorrect whose mask input is fed with a PxrVary.

Let's see in detail.

I will use a simplified version of the drealock and exaggerated colors/variations.

The first settings for variation are inside the PxrHairColor:

  • Melanin Randomize (Hair Color tab)

  • Stray Density/Random Melanin (Stray Hair Color tab)

  • Dye Random Hue/Random Saturation (Dye Color tab)

All these settings are effective only if you write "id" in the Hair ID Primvar in the Random Setup tab:


Here's the difference:


You can visualize the randomness of your settings by checking View Index Random in the Random Setup tab:


At this point, we can add some more variation using the PxrVary

With this node, you can vary the input color. The cool thing is that you can use an attribute inherited from the hairgen node as a mask. In my case I used the clumpid:


Let's see in detail.


Set the attribute you want to transfer inside the hairgen node in the Attributes tab. In my case I chose a clump node and assigned it the clumpid_big attribute:


Now exit the node and in the Attributes tab you will find the new attribute in the dropdown menu of the Ouput Attributes/Primitive Attributes:


click image to enlarge

With all this set you can now add as many variations as you want to the hair using all the parameters of the PxrVary: Hue/Sat/Lum/Gamma:



As I told you at the beginning, this is more research rather than a digi double project.


Procedural vs handmade is an old topic. Choosing one or the other depends on many factors. As regards hair, if you want to exactly match a reference, procedural is not the way to go, but if you want to make an alike, this could be a solution.

Tube grooming is a key feature for grooming and this is how a no-nerd artist like me tried to achieve the result. It would be nice if an advanced user could find a better solution and share the knowledge.

bottom of page