Close views of a mouse character, with a coarse clumped coat on the left and a finer regional groom on the right.
Mouse study, 6 October 2026. Left: the earlier browser coat. Right: the regional groom. Direction, length, lean, clumping and shading changed together; this is a grooming comparison, not a direction-only test.

A coat needs more than coverage

Covering a character with hairs is only the beginning. If they all stand straight out, the character becomes a brush. If their directions vary without structure, the coat can break into noisy patches. We wanted the fur to follow a muzzle, run along a back and separate around an eye, while leaving its length and fluffiness easy to change.

The reconstructed characters already carried part labels: nose, cheek, back, limb, ear. Those names gave us places to apply grooming rules. They did not contain a finished groom. The direction also needed the mesh surface, the skeleton and measured feature locations. The mouse and fox examples here show how those inputs became an automatic starting coat.

Whole-body views of the upright mouse: earlier browser coat on the left, regional groom on the right.
Mouse body study, 6 October 2026. The wider view shows the chest, limbs and silhouette. Direction, length, lean, clumping and shading changed together, as in the close view above.
Back to contents

Give each rule a direction on this surface

Start with one point on the face. The initial candidate direction runs from the measured nose centre to that point: point minus nose centre. This sends the flow outward across the muzzle instead of giving every face the same world-space arrow. Along the body, the skeleton supplies the head-to-body direction; limbs follow their chains toward the tips.

The candidate still has to lie along the skin. At each point, the mesh normal is the arrow pointing out of the surface. Subtract the candidate’s component along that normal, then normalize the remainder: f − (f·n)n, where n is a unit normal. For example, a candidate (1,1,0) on a surface with normal (0,1,0) becomes (1,0,0). Its outward component is removed, leaving the direction in which to comb.

A folded paper skin patch. A diagonal candidate arrow rises out of it, while a dashed normal arrow points straight outward. A dotted projection from the candidate tip meets the skin.normal ncandidate f

The candidate points out of the skin

The diagonal candidate f contains an outward component along the surface normal n. The pale dashed line shows the normal; it is not a fur strand.

The same paper patch with the original diagonal arrow shown dotted. Its solid projected arrow runs along the skin, perpendicular to the dashed surface normal.normal nalong skin

Remove the outward component

Subtract (f·n)n. Here (1,1,0) becomes (1,0,0): the solid arrow lies along the surface. The remainder is normalized before use.

A direction has to lie along the skin before it can guide the comb. These teaching coordinates show the article’s arithmetic example, not a measured character vertex. Length, lean and coverage remain separate choices.
Back to contents

The ear needs its own direction

An ear needs its own measurement. A hanging ear’s bone can run in a different direction from its blade. The ear rule finds the seam where ear triangles meet the head, averages that seam for the base, and averages the farthest tenth of the ear vertices for the tip. Tip minus base gives its long direction. The outer ear uses that axis; the inner-ear rule can lean toward the rim. These candidates are projected onto the local skin too.

Neighbouring points then share their directions and are projected back onto the surface. This smooths a useful initial field—a direction at each mesh point—without pretending that a label such as “ear” already tells us where its tip is.

Where the fur grows is a different decision from which way it points. A 1 October 2026 browser prototype used layered fur surfaces, called shells. Its ear test keeps a bare centre while fur grows around the rim. A good comb direction cannot compensate for the wrong coverage mask.

Close view of the mouse ear, with short fur around the outside and a bare inner surface.
1 October 2026 prototype: fur around the ear rim.
The same mouse ear with the inner surface highlighted in magenta.
Magenta marks the excluded inner ear.
Back to contents

The same back label needs different rules

An upright mouse and a horizontal fox should not receive the same back rule. In the regional table, an upright back combs down the body; a horizontal back combs away from the head toward the rear. The label selects the region, while the body’s measured frame gives “down” and “back” their directions.

The first posture estimate looked for the torso’s longest axis. That failed on the round mouse in a T-pose: its broadest direction ran across the outstretched arms. The source records an up-alignment of 0.33 and a mistaken horizontal classification. We changed the preference to the spine’s axis, using torso geometry as a fallback.

The rule compares the axis with up. An absolute alignment above √½, about 0.707, means it is within 45 degrees of vertical. In the 6 October records, the mouse’s spine-derived value was 0.995 and the fox’s was 0.553. The former selected the upright rule, the latter the horizontal one. This is a measured posture decision rather than a rule keyed to the animal’s name.

It remains a coarse choice. A curved spine or an unusual pose can make the estimate ambiguous, so the implementation also accepts an explicit posture override. The geometric guess is useful when it is inspectable and correctable.

A tall paper body patch, labelled head at the top and down below. A dashed spine reference runs vertically while two solid comb arrows point down the patch.spineheaddown

Upright body: comb down

For an upright body, the back rule points down. The dashed spine reference makes the frame visible.

A horizontal paper body patch with the head end on the left and rear end on the right. Its dashed spine reference and two solid comb arrows run along the body toward the rear.spineheadrear

Horizontal body: head toward rear

For a horizontal body, the back rule points away from the head toward the rear. The same label receives a different direction.

A curved paper ear blade. Small samples mark its attachment seam and farthest tip group. Two larger circles mark their means, joined by a single straight base-to-tip arrow rather than a curved centreline.basetip

Ear: measure its own long direction

Average the attachment seam for the base, then the farthest tenth of ear vertices for the tip. The straight arrow joins those two means.

The label chooses a rule; measured geometry gives that rule a frame. Body posture prefers the spine axis and falls back to the torso. These are generic teaching shapes. The ear arrow is a straight base-to-tip candidate, projected onto the local skin later—not a curved chain traced through the ear.
Profile views of an orange fox character: the earlier textured coat on the left and the smoother regional groom on the right.
Fox profile, 6 October 2026. Earlier browser coat on the left; regional groom on the right. The back uses the horizontal-body rule. Length, lean, clumping and shading also changed, so the smoother appearance cannot be attributed to direction alone.
Back to contents

A part must separate the clumps as well as the arrows

A coat needs places where neighbouring hairs deliberately go different ways. Paired left and right labels supply a midline: average the centres of each pair, then use the direction between the sides to define a plane. Near that plane, the regional rule nudges the comb toward its own side. With no paired labels, the method cannot derive this part.

Turning the arrows is not enough if a clump still pulls hairs across the division. A clump is a small group of hairs gathered toward a guide. Here its group includes both the grooming region and the side of the midline, so one lock cannot gather strands from opposite sides of the part. The table also gives the muzzle finer groups and the tail coarser ones.

This follows an established grooming distinction. Houdini’s workflow separates local grooms for different areas; XGen’s region maps stop guide influence crossing a part. Our adaptation uses the character’s existing labels to construct those regions automatically. The exact lengths, lean and clump sizes remain style choices in an editable table.

Clump strength also changes how we read a coat. In the 1 October 2026 shell-fur prototype, moving it from 0 to 1 turned a fine surface into much larger locks. The recorded length, direction, curl, density and view stayed fixed. That gives us a useful look at grouping; the separate schematic explains why those groups must also respect a part.

Four strand curves on an unbroken paper skin patch gather toward a single diamond guide on the right. Two curves starting left of the dashed part cross it.part

One clump can pull across the part

A shared guide gathers roots from both sides. The left-hand strands cross the dashed midline even though the direction arrows point away from it.

The same four roots and outward arrows, now with one diamond guide on each side of the dashed part. Every strand curve stays on the side where it begins.part

Keep each clump on its own side

Including both region and side in the clump group keeps guide influence from crossing the part. Each side gathers toward its own guide.

The part and the small outward direction arrows stay the same in both panels. Only clump membership changes. Circles mark strand roots and diamonds mark clump guides; the dashed part is a division of influence, not a cut in the skin.
A mouse character with a fine coat and little visible grouping.
1 October 2026 shell-fur test, clump 0.
The same mouse character with the coat gathered into large locks.
Clump 1: larger grouped locks.
Back to contents

Let the flow turn around the eyes

A nose-relative field can still point across an eye opening. The next pass adds constraints from the actual surface. Eye anchors help identify the skin’s open boundary loops; directions close to a rim are encouraged to run along it. Ear-base label boundaries provide another set of rings. The nose pushes flow outward, while the crown and tail tip attract it.

Each constraint fades with distance measured along mesh edges. That matters on a folded surface: two points can be close through the air but far apart along the skin. On sufficiently elongated limb, ear and tail regions, local curvature also supplies a preferred long direction. Round regions do not provide the same evidence.

The solver repeatedly combines neighbouring directions, these constraints and a weak copy of the regional groom. Each update is projected onto the skin and normalized again. The default is 40 passes. This is a local relaxation method: it lets nearby directions settle around the constraints, rather than replacing the whole coat with one facial rule.

The mouse report found two eye rims and two ear-base rings. The separate views below make the directions large enough to inspect: compare the regional starting field with the solved directions, then look at the coat. A missing loop is reported as missing; the method cannot invent an opening from a part name.

A paper skin patch has an elliptical eye opening. Nose-relative direction arrows spread upward and outward. Two point into the opening, where their otherwise dark arrows become pale and dashed.eye openingnose

The initial flow can cross an opening

Arrows run away from the nose. Two enter the eye opening; their pale dashed portions expose the crossing. A nose-relative rule alone cannot turn them around the rim.

The identical paper patch, eye opening and six sample points. Solid local arrows turn around the edge of the opening, with none entering the hole. The nose anchor remains unchanged.eye openingnose

A rim constraint turns nearby directions

Near the boundary, directions turn along the eye rim. Neighbour smoothing spreads that influence over the skin; it does not decide which areas should be bare.

Both panels start with the same eye opening and sample points. Only the direction changes. The right-hand arrows illustrate local rim tangents; they are not a replay of the full relaxation solver. Where fur grows is controlled separately by coverage masks and labels.
Front of the mouse head with cyan arrows showing the regional starting field.
6 October 2026: regional starting directions.
Front of the mouse head with cyan arrows showing the solved surface direction field.
Solved directions.
Front of the mouse head with its historical regional fur coat.
The coat.
Back to contents

Check where fur is allowed to grow

The inputs still set the limits. In a 2 October 2026 beaver test, eye-socket labels extended across the cheeks and brow, so the no-fur mask exposed too much face. Another character lacked useful mouth and lip labels and grew fur across the mouth. More hairs would not repair either region. The upstream labels need checking just as carefully as the groom.

The penguin’s regional report had no paired labels and therefore no midline parting. That is a declared absence, not a successful deduction of where a part belongs. Applying a strand coat to a bird also does not establish an appropriate feather model; bare regions and the desired surface treatment need their own decisions.

The reconstructed beaver face before adding a coat.
2 October 2026: before adding fur.
The beaver coat leaves a broad area across the face without fur.
The coat leaves too much face bare.
Magenta mask extends beyond the beaver eye sockets across the cheeks and brow.
The mask spreads across cheek and brow.
Back to contents

Keep the useful controls and the failures visible

The browser viewer connects this field to the strand coat. Roots are attached to skin triangles, and the generated strands use the direction field together with length, lean and clumping. The viewer exposes overall coat controls and regional length and fluff controls. A drag can change a region without asking someone to comb every strand again; changing the direction does not have to change the density or make the whole coat longer.

The dog exposed a less settled failure. Its historical nose and crown constraints reached only 19 vertices, and only one of two eye rims was found. The retained source comments and change record disagree about why the small reach occurred, and no retained rerun establishes the repair. The example remains a warning to inspect the field’s coverage, not evidence that this case was fixed.

This gives us a useful starting coat on the bodies we tested. It still depends on a labelled skinned mesh, useful anatomical anchors and a coherent surface. The viewer uses this field directly; the older Blender grooming path is separate. Length, how flat the fur lies and how the coat breaks up the silhouette remain art-direction choices.

Back to contents