Curve from grid surface

Use Ctrl+Shift+H -> Curves from grid surface to add Hair System preset with active mesh behaving as Guide for generated strands

Useful for long hair, eyelashes or layered type of hair.
If you want to cover head scalp uniformly with hair, then use standard Hair System with Strand Generator instead.

Curves From Grid Surface works by generating special Hair System preset that uses Strands from Grid Surface. Grid mesh topology will guide hair strands flow (this grid has to be made all quads - with grid/chessboard like topology)

Note: In older Hair Tool 2.4x series, you could directly edit generated curves (in edit mode). In HTool 3.x these curves are generated procedurally in geometry nodes, thus you cannot edit them directly. First use Bake option to convert these procedural curves to real geometry.

Video Tutorial

In first 12 minutes of this video I show how to use this Curves from Grid Surface feature (rest of video is about how to use it for actual hair - can be skipped if you are interested only in basics, of how 'Curves from Grid' works)

Proper grid mesh

Guide mesh has to be made from quads and one border edge loop has to be mark as sharp (or crease): Ctrl+E -> Mark Sharp/Crease - this edge will become roots of hair strands. mark sharp

Example of proper grid meshes topologies (for actual hair you would want to model this better - following main hair masses and hair flow): Grid Mesh

If we flatten these 3d meshes we would get 2D grid: Grid Mesh

Selected Parameters

Control basic properties like generated curves amount, number of points per spline etc. You can use topology of grid surface to guide density of generated strands. In places where grid surface have denser loops you can generate more strands or give more points to each strand.

Points per strand Strands count - number of strands to generate

Uniform Strands Uniform Strands - Distribute strands uniformly. If not, then more strands will be placed at denser grid surface areas (in this case - more on right)

Randomize Spacing Randomize Spacing - Randomize spacing between strands


In Hair Tool 3.x Curves from Grid Surface is using new strand interpolation (based on Geometry Nodes). It has some limitations, see example below:

Ugly Interpolation example Example of poor strand interpolation, when using 'Curves From Grid'. Strands do not adhere to the guide grid surface and instead follow path downwards

Reason of ugly interpolation The reason and explanation: imagine new strand (marked as X above) is picking 2 closest guides; it found one guide to right one to left - which is causing the strand to go to the center (average of both guides)

Ugly interpolation fix The fix: split guide grid mesh in to mesh islands, this will split guides too (marked with black and white). Now new strand will follow only group of strands (only white or only white) - resulting in clean interpolation on right

The reason why splitting guide mesh, into two or more mesh islands work is due to how Hair Interpolation in HTool works - strands spawned on one island, will only follow guides from that mesh island.

Note: You do not have to split base mesh by ripping geometry. In above case I turned Off 'merge' option in mirror modifier, thus righ and left side are seen as separate islands. Or you could use edge split modifier.

In video above I explained and showed how to fix the interpolation issue