Hair tool – Blender addon ($)

I developed Hair Tool addon for blender to simplify creation process of low/medium poly hair models
This addon will help you generate hair mesh ribbons with uv’s from bezier/nurbs curves. It is how most current games are doing hairs for characters.

Blender Hair Tool addon

Hair Tool workflow


  • generating curves from mesh surfaces
  • adding bevel profile to curves thus making them into curve ribbons
  • easy and convenient switching back and forth between curve ribbons and  mesh, while preserving mesh uv’s
  • ability to adjust ribbons radius profile over strand length to taper the ribbons shape

Tutorial about using this addon, with some tips and tricks, problem solving and stuff:
Video about hair shader:
Video about creating texture:

Basic workflow:

First step is to generate base shape of hair. For that use grid mesh, created only of quads. Mark one border of this mesh with sharp edges – those will become roots of hair splines:

Press ‘Curves from surface‘ button located in left Tool Shelf -> Tools, to generate curves from selected object. Generated curve settings can be modified using ‘F6‘ hotkey. You can adjust stuff like hair amount, length, add some noise etc. Or you can do some manual tweaking here going into curve ‘Edit mode’.

To add ribbons to generated curves, press ‘Generate Ribbons’ button. There are some settings to play with under ‘F6’ hotkey. Usually manual work here is needed to adjust curve tilt (select curve and press Ctrl+T – to change curve tilt).

To preview how the hair will look, convert them to mesh with ‘Curves to Ribbons’ button. You can now quickly uv this mesh by going into ‘UV Editor’ and searching for ‘Hair UV’ operator under spacebar. Left click and draw rectangular shape, in uv Editor, to define the uv bounds for hair strands. That is it, hair are ready to render.

If you don’t like the result you can go back to curve by pressing ‘Ribbons to curve’ button (warning – any changes to mesh topology will be lost!). This kind of workflow lets you tweak the hair in curve mode, convert it to mesh and preview If you don’t like it – go back to curve mode and tweak it again. UV’s defined previously will be restored.

Features added in Hair Tool 1.2:

Adjust generated curves tilt, so it is aligned to source mesh surface with new – ‘Align. Previously it was pain to adjust them manually. No more

Create curve ribbons from Particle Hairs.  Align their tilt to head with ‘Align Tilt’ checkbox, and embed hair roots deeper into the scull using ‘Embed Roots’ parameter.

Update 1.2.1:

  • normalized scale for generated ribbons (bigger ribbons for bigger objects,  smaller ribbons for small object). Apply scale first for mesh from which you generate ribbons.
  • normalized hair generations (similar look of generated strands for small and big objects). Apply scale first for source grid mesh.
  • improved ‘strands generation from Particle hair’ – operation will update previously generated ribbons if exist (before it would create new child ribbons each time )

Update 1.3:

  • added ‘Randomize Tilt’ operator
  • added ‘Smooth Tilt’ operator
  • added ‘Randomize Spacing’ option when generating curve hairs from surface
  • added ‘Uniform’ option (for hair spacing, and strand points) when generating curve hairs from surface
  • Bugfixing and UI tweaking.

That is it. There are some examples of hair made with above technique. You will need some manual work obviously to tweak the hair looks

Hair Tool addon examples

Hair Tool examples

Hair Tool source meshes

You can buy this addon from Gumroad

Improvements to uvSquares and Matalogue addons

EDIT: Matalogude developer included support for GroupPro into master branch. You can grab his addon from Matalogue.

Matalogue is great addon for managing materials. In my fork I added support for working with Group instances (so it works with GroupPro). Added support for Group Instances = when selecting group instance object (empty with duplication set to group), Matalogue will now show materials for objects that are inside this group. Previously it would show ‘no material’ message.
Matalogue addon


Another great addon is uvSquares. This time I added ability to work on multiple islands with one click. You can grab fork from here:

uvSquares addon

Hopefully autors of those addon will agree to merge those changes into master branches! Keep the thumbs up.

Whats new in Batchtool Baker 1.11

Quite some time passed since I described what is new in Batchtools 1.03 version. Right now Batchtool Baker is in version 1.11, so wanted to describe new features.

  • baking presets – lets your save your most used setups for baking:
    Batchtool presets
  • quick texture preview (in blender internal glsl mode – TODO: add Cycles support) – assign all baked maps to material of lowpoly object:
    Batchtools texture preview
  • Added Helper icon – ‘Duplicate passes’ – duplicates current bake job, with all render passes setting – saves time when creating new bake job.
  • added support for Substance Batchtools 6 series this includes (you need to go to addon preferences and select Substance batchtools version 6 in menu):
    • ability to bake non square maps
    • ability to bake 8k textures

New blender addon – Transform Utils

By default some blender operations do not work very well with instances. Mainly I speak about ‘Apply  transformation‘ and setting ‘Origin to 3D cursor’.  Apply  transformation – won’t work at all with instanced object and setting ‘Origin to 3D cursor’ won’t preserve position of instances. I made python version of these, that work with instances and are preserving positions of instanced objects. The math behind that was bit complicated, but I managed to make i work. The ‘Transform Utils‘ also has some other tools that I developed while working with blender.

  • Add Transform Orientation – quick way to align gizmo (add temporary Transform Orientation) to selection. Gizmo will be aligned to  selected object, face, vertex or edge.
  • Align To Transformation  – Sets current object rotation to match the gizmo transform orientation (created with previous command).
  • Apply Transformation – lets you apply location, rotation, scale even on object with instances. Instances positions will be maintained.
  • Origin to 3D cursor – same as default blender operator, but all instances positions are preserved.
  • Store position – let’s you save current object location, rotation, scale. Position can be restored with ‘Restore position’ button.

In image below I demo the ‘Apply Transformation’ operator. Build in apply loc, rot, scale operator won’t work on object with instances. The addon version works ok, and it is maintaining original position of all instances.

Transform Utils

Grab addon from gumroad

Procedural art with Animation Nodes

Animation nodes is addon for blender, that lets you animate stuff, but it is also great for procedural art generation :).

You can get the latest version of Animation Nodes from here (click the green button for download). Support the creator of addon – Jacques Lucke – by donating here.


Below is the breakdown of the most important steps to obtain results from above (this is for advanced users).  Here is the file

  • generating random point on mesh surface (Plane object) – it will be root of spline:
  • Then I can create spline from random (x,y,z) points in loop, but this gives to noisy result (looks like lightning, jagged and random). So instead I use coherent noise – perlin noise as way of generating points for splines. This makes the splines look like wavy grass thing.
  • next step is making tip of the hairs go into direction of target object (sphere). For that I just create BHV tree for target, and then I snap spline to target with ‘find nearest surface point’. If I snap spline point to target sphere I would end up with this:

    But I do not want snap whole spline to sphere, but just the tips. To do this I can interpolate between originally generated point (x,y,z) and snapped to surface point (obtained from BHV find nearest node).

    The red inscription says: 0 == ignore snapping, 1== full snapp to target shpere). Start value in AnimFloat is root of spline, End – tip of spline.

There is more stuff, but the basic idea is explained above.

Batchtool Baker – update 1.03

Update 1.03 to Batchtool Baker:

  • added ability to bake second or next uv set (UV map)
  • preview of frontal/rear ray distance
  • one click cage setup

Example of fixing black texure spots (to low value of ray distance causes some areas of highpoly to not be captured while baking). First I preview frontal (green) ray distance, fixing bake, then adjusting rear (red) ray distance, fixing bake again.


And example of one click cage setup. You can adjust cage offset by weight painting it.


Trim Tools for Blender

Blender addon for cutting your geometry. Grab it from here. Compared to other blender Carving addons, this addon works in edit mode.


Located in left Tool Shelf-> Tools-> Trim View.

  • Knife trim – cut geometry with knife tool. If this tool is not behaving as it should, try switching ‘Trim Type’ parameter from ‘dissolve’ to ‘KDTree search’ (slower) or vice versa.
  • Trim by selection -(based on bisect tool) cut mesh in plane based on selected geometr. To define plane – select 2 or more vertices, then use this tool. After that you can offset the cut plane by pressing F6 and changing depth parameter.

This addon may not work on complex geometry as expected. This is partially due to old blender carve (boolean) module. It was being worked by blender devs, but for now it is disabled. Maybe it will be enabled again in blender 2.8?