Hair Curve Sculpting Tools [feedback]

A short list of tools that we think would help artists sculpt hair curves. Again, most of this feedback is either already in progress (D15134) or probably will be. Hopefully some interesting ideas could grow from it though.

Hair Curve Sculpting Tools

CV selection
Similar to the current hair system, CVs selectable by root, tip, lasso, brush ect. It would also be great to be able to select curves by things like faces attached, UVs, vertex groups, face maps, hair groups ect

Freeze/Mask Curve Brush
Freeze/mask curves or CVs

Attract/Clump Brush
Self explanatory and already in testing I believe

Repel/Part Brush
Compliment to the Clump Brush

Jitter Brush
Selectively being able to add organic jitter to the curves

Orient entire curve from the root

Smooth/Relax with Gravity option
The ability to relax the curves in a realistic fashion

Hair Curve Groups
Making and storing hair curve groups for hiding/freezing ect. These could also potentially be called in the geom node graph


Hi there!

I have an old suggestion about grooming that is using a projected curve from camera space in order to groom the hairs that are within close proximity of the first stroke point. The whole suggestion can be found here:

For better readability I’ll also post the text and images here. The steps below describes what happens under the hood during one single stroke. The problem this method tries to solve is to be able to groom separate strands at a time without accidentally deforming parts of the hair that the user does not want to deform when laying down the stroke:

Step 1.

This red line represents the strand groom brush stroke done in screen space. This view will later be referred to as “original camera position”

Red curve = original stroke from original camera position

Step 2

In order to see what is happening we can examine the stroke from the side. The stroke is a flat projection from the original camera position. It’s depth is based on the position of the brush at the start of the stroke

Step 3

Project stroke by zdepth buffer

The stroke is then projected onto the visible mesh based on the original camera position (in img 1) using the zdepth buffer

If projection is slow for some reason, it might be better to simplify the curve/stroke so that it only has 10 points or less. This means that the depth only needs to be sampled 10 times

Blue curve = projected stroke

Step 4

Clamp projection

However it is better to clamp the projection so that no point is further away from the original camera position than the distance between the “camera” (eg original view) and the start of position of the original stroke (red line in img 1,2 and 3)

Purple curve = projected stroke with depth clamping

Step 5


Smooth curve

This step will lock the first and last point of the curve and smooth the rest of the points. I think the smooth strength should be set in a slider in the brush settings, since the results might vary depending on hair length etc.

Step 6

Get hair curves, which root points are within the proximity of the brush radius at the first point of the groom strand stroke (green line)

If there are already curves selected, prior to making the stroke, only the selected curves should be affected by the groom strand stroke.

Step 7

Shape the appropriate hair curves along the smoothed groom strand stroke (green curve)

Tapering is applied if it is set in the UI

Selection of the hair curves if the checkbox
“keep hair selection after stroke” is checked. This will enable the user to tweak the hair curves afterwards without touching the other parts of the hair.