Hairs - Geometry Nodes

This is ongoing WIP. Experiments with procedural hair creation in Geometry Nodes’ new Fields system.

In this thread I am going to post some of the results of these experiments.

Automatic clump generation is one of the main goals of this project.

For now Clump Modifier supports:

  • Automatic clumping region generation.
  • Ability to chain multiple Clump Modifiers. (still WIP)
  • Combining “User-Made” curves with generated once.
  • Offset hairs which intersect with the emitter object by its normal.


(Main and secondary clumping region visualization)

Combining guiding curves and secondary clumps:

Clumps can be now fully controlled with guiding curves:

  • Rotation along guiding curves’ tangents.
  • Clump profile can be changed globally.
  • Profile can be adjusted with spline radius individually per guiding spline.
  • Tilting individual guiding spline for twisting effects.
42 Likes

Nice, but I should note this may end up being a temporary solution for hair (because the dev. site has an open topic regarding hair and grooming nodes). For now though this should be fine.

1 Like

Yes, I am aware of the new Hair Object and the design proposal done by @dbystedt. It looks great.

This project is just an attempt of mine.

Amazing !:slight_smile:

1 Like

Thank you!

Curls are now possible.


(Curl frequency at 30. Used on guiding curves.)

(Curl frequency at 80. Used on guiding curves.)

(Random frequency, random scale. Used directly on hairs.)

For now Curl Modifier support:

  • Curling effect on input splines’ tangents.
  • Generated and “User-Made” curve guides.


13 Likes

First test with Braid Modifier:


Some of the braids only have two clumps in them.
It would be nice, if at the ends they would have some kind of knots.

26 Likes

This is amazing. The tools we got for curves in geonodes are basically already portable to a hair object as-is. Disregarding the whole simulation part, these are tremendously good-looking braids.

1 Like

Thank you, @Hadriscus it is greatly appreciated! Geo Nodes curves are indeed very powerful.

For the sake of stress testing the nodes system I tried to make a long hair style.
Noticed some issues in Clump Modifier:

Region generation should be more consistent.
Scene is quite slow.


(Roughly 3 Millon control points. Rendered in Eevee).

Demo:

19 Likes

Mind blow :slight_smile:

1 Like

Thank you, @regis3d!

This is looking really good, I can already dream with modifiers stacking like in other grooming tools :heart_eyes:

2 Likes

Many thanks!

This is very impressive! Is each hair a geonodes spline and are you just using the curve to mesh node to render this? It must be very slow in the viewport to get than much actual geometry working.

1 Like

Thanks for kind words @Jamez!

Yes these are all splines that are converted to mesh using Curve To Mesh node.

You are right it is quite slow. I am unable to edit the guiding Bezier curves live after certain amount of control points (in sum 300k control points with 32 points per hair spline, roughly 9k individual splines). There is probably better way to do this.

2 Likes

Still that is impressive you got this far considering the basic tools you are using. I am sure you are aware that the devs will be going node based in the near future for the a new hair system. If you are a c++ coder, you should try and get involved, as devs with artistic skills are always a prized combination!

2 Likes

What you’re doing here is really great, I never expected anyone would make something like this with the nodes we have now.

Regarding performance, there may be some easy ways to optimize the curve to mesh node for this case. Especially with access to a file-- it would be interesting to see what parts are slowest so they could be improved.

4 Likes

Yes, I have seen the proposal for the new hair object. Unfortunately I only know just a little bit of python.

1 Like

Thank you Hans, I appreciate your feedback!

I will share this blend project privately. The blend file needs a little cleanup beforehand. But it will be ready later today.

I am going to share these nodegroups publicly as well, as soon as some of the bigger issues in clump generation are solved.

3 Likes