What's new
Notable improvements in GroomLab, newest first.
GroomLab is in early access, and it changes quickly. This page lists the improvements that change how you work, newest first. It will keep growing as the system is fleshed out. Something missing, or something you would like to see? Write to support@getgroomlab.com.
Check for Updates in the GroomLab menu (the app: Help > Check for Updates) gets the latest version. While GroomLab is in early access, a node's params can still change between updates (a param renamed, or two merged into one); the entries below say when one does and what to set. Once it leaves early access, saved grooms will keep their look across updates.
0.35.2 (October 28, 2026)
- Fixes: opening a scene saved by a newer GroomLab no longer fills the Script Editor with a Graph Editor traceback: the Graph Editor says the graph needs a newer GroomLab and leaves it as it is (update GroomLab to edit it). A scene saved while GroomLab was loaded from a renamed copy of the plugin (a development build) now opens with its grooms when you double-click it.
0.35.1 (October 28, 2026)
- Changed: Shift selects, Ctrl flips. With a guide brush, Shift+drag paints guides into the selection and Shift+click adds the guides in the ring (on bare scalp: deselects and unfreezes all); this was Ctrl. Ctrl now does every brush's opposite: Length shortens, Lift lays down, Twist, Curl, Attract, Direction, Noise and Shape go the other way, Cut grows, painting goes toward 0. The brush lasso is gone (the Select tool keeps its own). Painting maps or Freeze, Shift+drag still smooths; smooth guides with the Smooth brush.
- Blender: updates from inside Blender. GroomLab > Help > Check for Updates... shows the newest version with what's new, and Update installs it in place (restart Blender to finish). Once a day GroomLab checks at startup and says so in the Groom Tools. Both need Blender's Allow Online Access. From this version on there's no need to download GroomLab from the site to update it.
0.35.0 (October 28, 2026)
- Brush alphas. The Paint brush on a vertex or texture map can stamp an alpha: a grayscale
image inside the brush circle, so a stroke leaves speckles, spots, noise or streaks instead of a
round spot. Pick one from the Alpha thumbnail (eight ship with GroomLab), or Add Alpha...
your own: they go to
Documents/GroomLab/alphas, which Maya, Blender and the app share. Set its Rotation (fixed, following the stroke, or random), Spacing and Invert; the alpha multiplies the brush's falloff, and symmetry mirrors it. See Brush alphas. - Segments per group and per guide. Each guide group keeps its own segment count, which its new guides take. The Segments slider rebuilds the selected guides, else the picked group, else every guide. Guides you resample on their own keep their count when the group's changes; the group's right-click Reset Segments brings them back in line. Frozen guides are never resampled.
- Changed: no Display Segments. The guides' dots sit on their own points (still set by Guide Points: all, roots and tips, or off).
- Blender: Create Groom without a preset. A new groom starts from the default graph fitted to the mesh, as in Maya and the app; pick a look later from the Presets menu.
- Fixes: the Groom Tools and the Graph Editor docked back beside Maya's Toolbox can be resized again.
0.34.0 (October 28, 2026)
- Interpolate: strands between parted guides keep their length. A new
blendparam:directions(the default for new Interpolate nodes) builds each strand segment by segment along its guides' directions, so hair between guides combed apart turns smoothly from one side to the other instead of being pulled in.offsetsis the old average. One smoothness slider now sets how softly the guides blend into one another, and Keep Clearance checks the skin at every point, so strands no longer dip in between two points. - Guide weight. Interpolate's
guideWeightsets how strongly each guide pulls the strands around it against its neighbours. Paint it: Paint > + New Map > Guide weight. - Cards along the guides, flat feather cards. Cards can follow a Guides node (
cardsFromguides, or draw a link into its newguidesinput). New Cards nodes flatten feather cards to their vane (Feather Flatten 1) and no longer push feathers apart (Feather Separation 0). - Clump takes a Guides node's curves. Linking a Guides node into Clump's centers sets
inputCurves. - Collide: one softness.
softnessis now a length along the strand: hair starts curving that far before it meets a collider and slides along it, resting at the offset. It replacessoftnessandsmoothing; the old softness also floated hair off the surface. Setsoftnessagain on a Collide that used either. - Even roots that hold at any scale. Scatter spreads its roots with a smooth relaxation, so a
scalp in other units (cm or m) grows the same hair, and an edit moves roots only near it. Its
randomnessstops at 1. - Fixes: Wind and Part no longer flip a segment pointing nearly against them (hair combed
across a part). Instance's leaves no longer jump a quarter turn as their strands move, and
spinRandomturns them either way. Mirror flips feather vanes. A Scatter density from an expression above 1 is no longer cut off. Clump locks no longer cross their strands, and a negative Clump pushes strands out in order. Bend leaves a strand standing straight off the skin as it leaves one a hair off it, and Displace reads its profile along the strand's length, not its points. Guides level -1 takes each family's deepest groups. A Ctrl+Shift lasso drawn off the guides deselects and unfreezes them all. - Simpler nodes. Rarely used params moved under Advanced, and a few changed. Saved nodes keep
their old defaults (Upgrade in the Graph Editor moves them to the new ones). Set these again if
you used them:
- Renamed: Length
trimMaxisrandomness, ClumpflattenisflatAlong(flatDirection), BandsrandomnessismelaninRandom, TanglesameClumpisclumpChannel, Mergematchisstrength. - Removed: Length
trimMin, GravitydirectionColorSet(use an expression indirection), Interpolatereach,powerandsmoothGuides(usesmoothness), ClumpcopyNeighbors. - New defaults for new nodes: Noise and FieldNoise one octave, Flyaway
fraction0.01, Direction alongdirection(no line at the scalp's UV seams), FeatherColordownStrength1, Splitselect1, BlendkeepLengthon (each strand keeps its length between the two looks). - Split moved to Utility. The Cinematic hair preset is rebuilt.
- Renamed: Length
0.33.0 (October 27, 2026)
- Faster grooming on dense grooms. Combing guides on a 181,000-strand wolf takes about 14 ms a dab (it took 44), and opening it evaluates in under a second (it took three). Every look node now runs one set of math on the CPU and in the GPU preview, so the two always agree. Instances that a dab leaves alone are no longer rebuilt, and combing no longer nudges guide roots.
- Faster previews of Cull, Split and Mirror. Dragging a param before them stays in the GPU preview.
- Braid: a paths output, looser box braids. Braid's new
pathsoutput hands on the paths it braids along as guides for the nodes after it. Box braids weave at 0.3 crossings, and a braid stays round however few points its strands bring. - Changed: Curl adds its points first. Where a strand has too few points for its curls, Curl now adds them along the strand's smooth curve before it curls. Tight curls on sparse strands can look slightly different.
- Removed: the Tie node. Make a ponytail with Braid instead: draw the path from the
ponytail's base and give it a large
region(0.45, say), withalongScalpon so hair from afar sweeps over the scalp into it. A groom saved with a Tie node no longer loads: delete its Tie nodes in 0.32 before you update.
0.32.1 (October 25, 2026)
- Changed: Ctrl selects guides. With a guide brush (Comb, Smooth, Lift, Length, Cut...), Ctrl+click selects every guide inside the brush ring (no more aiming right at one), and Ctrl+drag paints guides into the selection; Ctrl+Shift+drag draws a lasso around the guides you want. Every guide not selected freezes, one undo step; Ctrl+click where the ring holds no guide deselects and unfreezes all. Ctrl no longer reverses a guide brush: use a negative strength (Lift, Length, Twist, Shape). Painting maps and Freeze keep Ctrl as the opposite (Ctrl+Paint on density removes hair, Ctrl+Freeze unfreezes).
- Fixed: feather cards shearing at the tip. On tightly curled feathers the barbs near the tip could flip a card's side and shear it. Cards now lie flat in the vane to the tip.
0.32.0 (October 25, 2026)
- Select guides without leaving the brush. Ctrl+Shift+drag paints guides into the selection with the brush ring, live, and when you let go every guide not selected freezes, so the brush works on just your selection (one undo step). Ctrl+Shift+click adds one guide; Ctrl+Shift+click off a guide deselects and unfreezes all. Selection only takes guides you can see: nothing behind the head.
- Changed: Shift+click no longer solos. Shift is smoothing alone (Shift+drag); selecting is Ctrl+Shift in every host, as above.
- Compounds preview on the GPU. A compound is a grouping, as in Unreal and Blender: its nodes now run as if they sat in the graph, so dragging a compound's parameters (Soft Frizz, Windswept Ends, Grey Streaks, your own) previews on the GPU, and so do the nodes above it. Saved grooms and the Graph Editor are unchanged.
- Drags stay on the GPU past a Subdivide. With Subdivide at the end of the graph, a drag previews unsmoothed on the GPU and the release smooths again (before, every drag fell back to the CPU).
0.31.2 (October 25, 2026)
- Fixed: stair-stepped strands in card bakes. On wide cards that bend, baked strands ran in steps (and some pieces landed in the wrong place). Strands now follow the card smoothly.
- Fixed: hair cards with wide tips. A few cards flared out at the tip for the handful of longer strands running past the rest, or for one strand drifting off its clump. Cards now keep to their lock.
- Flyaways get cards of their own. Strands a Flyaway node pushes out no longer widen their clump's card: each gets a thin one-strand card, first in line for Flyaway Cards (the longest first).
0.31.1 (October 24, 2026)
- Fixed: Separation could shear cards. In a dense groom a few cards were bent at the tip or shoved far from their strands (sometimes more than a feather's length). Separation now never moves a card more than its neighbours ask, nor more than half its width, and the card stays smooth.
- Fixed: a new guide group is highlighted in the Groom Tools list right away, as it already was in the Group choice above it.
0.31.0 (October 24, 2026)
- Cards that don't pass through each other. The Cards node's new Separation section pushes cards that cross or nearly touch apart along their normals, so overlapping feathers lie on each other instead of clipping. Feather Separation is on by default (0.05 of a card's width); Separation does the same for hair cards (off by default). Roots stay put, each card bends smoothly as a whole, and only the mesh moves: baked maps stay valid. (Requested by Omar Hesham.)
- Small numbers show. A value under 1 now keeps two significant digits in Maya and the app: a feather preset's Scatter density on a centimeter-sized head reads 0.035 rather than 0 (it always scattered correctly).
- App: Alt+right-drag zooms the way Maya does (drag right to zoom in), and the app has the GroomLab icon.
- Blender: choosing one of Blender's tools (the toolbar, W) now leaves the GroomLab brush, so objects can be selected again without pressing Esc first. Add Sample Mesh frames the view on the sample, which comes in at its real size (a head is about 35 cm).
0.30.0 (October 24, 2026)
- GroomLab files in Maya's File Path Editor. Every file a groom uses shows under GroomLab: its texture maps, the images and Alembic files its graph reads, its guide cache, Simulate bakes, card bake and the groom file it renders from. Repath them there, or with Replace String, and the groom follows, its paths kept relative to the scene. A scene opened from another folder or machine keeps its grooms' paths; the entries just show where the files are now. (Requested by Omar Hesham.)
- For pipelines. Farm submitters, publish and archive scripts can collect a groom's files with
groomlab.file_dependencies(groom)and repoint one withgroomlab.repath_file. Maya's own Archive Scene only sees Maya's node types, so use these (or Collect Files) for GroomLab's files. - Collect Files. GroomLab > Utilities > Collect Files copies every file the grooms use from outside the scene's folder into its groomlab folder and points the grooms at the copies, so the scene's folder holds everything for Archive Scene, a zip or another machine. One undo step.
- Fixed: Save As left some files behind. Saving a scene under a new name or folder copied its texture maps, card bakes and caches along, but not Simulate bakes or the images and Alembic files the graph reads (HairColor's and FeatherColor's images, ImportCurves' file): they went missing in the new scene. Now they come along too.
0.29.0 (October 24, 2026)
- Pins in the Graph Editor. Tidy crossing wires the way Unreal's Blueprints do: double-click a link to put a pin on it, then drag the pin to route the link. Drop a pin on another pin of the same output and they join, so links from one output run through one pin as a bundle. Drag from a pin's right side to an input for another link of its signal; drop a link from an output on a pin to feed every link through it from there. Select a pin and press Delete to remove it (the link stays). In Maya and the app; Blender shows pins as its own reroute nodes. Pins are saved with the groom and travel between all three.
- Snap. A Snap toggle on the Graph Editor's top bar puts the nodes and pins you drag on the grid. It's remembered between sessions.
- Cut links with Alt+Shift+drag. As in Maya's Hypershade: every link the line crosses turns red, and letting go disconnects them as one edit. (From Omar Hesham's pull request.)
- Undo an edit that left the graph unfinished. Cutting or deleting a link that leaves the output unconnected isn't applied to the groom until it is wired again; Ctrl+Z now puts the graph back, instead of undoing the step before it.
- Normal map for game cards. Every card bake and export writes a tangent-space
_Normalmap beside the others: DirectX's green in Unreal's TGAs, OpenGL's for Unity's PNGs and glTF's normal texture._Tangentkeeps its name (Unreal's own slot for the strand direction); use_Normalin a card material that doesn't use Unreal's Hair shading model. (From Omar Hesham's pull request.) - Wireframe on shaded for cards in Maya. The groom's cards view now draws the cards' edges with Shading > Wireframe on Shaded, in Maya's wireframe color (lead or active when selected), and Wireframe mode shows the edges alone, like any mesh.
- Clump: Strand Strength Random. In Clump's Random group: each strand's pull toward its clump scaled down at random, so strands don't sit perfectly on their guide (on top of Strength Random, per clump). Drags of it evaluate on the CPU for now.
0.28.0 (October 23, 2026)
- Align Photo. The Photos tab's Align Photo... opens the Photos window on the photo: the photo on the left, the head mesh on the right, as the Transfer Groom window works. Click a feature on the photo and the same feature on the mesh; from four pairs the camera lines up as you click, each pair shows its error, and the mesh's outline draws over the photo. No more looking through the camera to pick points. The window's Focal Length, Keep focal length (now kept with each photo) and Lock are the camera's; right-click a Focal Length slider for Reset Focal Length if a solve takes the lens somewhere odd. Guides from Photos is the same window's Guides (experimental) stage. In Maya and the app (Blender keeps Pick Points for now).
- Switch photos while looking through one. Picking another photo in the Photos tab while the viewport looks through a photo looks through the new one; Back to Perspective still goes back.
- Subdivide: smooth strands from few points. A new node: each level doubles every strand's segments along a smooth curve through its points, so a curl grown on few points renders round. Unlike Resample it doesn't make the nodes before it work on more points: put it last, keep the Resample low, and only the output pays for the smoothness. Levels for renders and exports (2 by default), Viewport Levels for the viewport (1).
- Expand Inputs on graph nodes. A button on a node's header shows all of its connectable params as inputs, or hides them again (connected ones stay). (Thanks to Omar Hesham.)
- No point budget by default. The viewport's Point Budget starts at 0 (no limit) in Maya, the app and Blender; set one to keep a very large groom interactive.
0.27.0 (October 23, 2026)
- Display Ribbons shows the strands at their true width. With Display Ribbons on (off by default), the strands draw as ribbons facing the camera, as wide as the strands times Ribbon Width Scale and never thinner than a pixel; the parts thinner than a pixel fade with their width, as the lines do. Turning the camera keeps them facing it. Use it to judge widths and density close up (it is slower than lines there). With lighting off, the ribbons now take the groom's color as the lines do.
- Paint modes. The Paint brush and Fill now Replace, Add, Subtract or Clamp Maximum, on guide, vertex and texture maps, in Maya, the app and Blender. A stroke adds at most its amount however often its dabs overlap. (Thanks to Omar Hesham.)
- Thinnest Strand for card bakes. A Cards node setting: the narrowest a strand bakes, in the atlas's pixels. 1, as before, keeps every strand solid and at least a pixel wide, so cards cut out at a cutoff don't break up, though they read denser than the groom; 0 bakes the strands to scale, as renders and the viewport show them, for blended or dithered cards.
- A Focal Length slider in the Photos tab. Set the photo camera's lens by hand when you know it; Keep focal length turns on, so a solve keeps it.
- Faster everywhere. Release builds let the compiler inline more: about 6% off the operators on average and 15 to 20% off brush dabs, with the same results to the last bit.
0.26.0 (October 22, 2026)
- Only a Resample on the way to the Output sets the resolution. A Resample node fed by nothing, or one whose strands never reach the Output, still set every strand's point count; now only the Resamples the Output's strands pass through do. If a scene of yours has a Resample off to the side, its strands come back with the default resolution: wire the Resample into the chain.
- Feather shafts show their rachis. The shaft a feather's Propagate keeps is drawn and rendered as the rachis tube (Arnold, V-Ray, RenderMan), not as a strand of barb width, and its width no longer comes from the Width node. The feather presets now offer Vane width and Barb width in place of Length and Width.
- Smooth card edges in Maya's viewport. Textured cards are smoothed by the viewport's anti-aliasing instead of a hard cut-out, their shadows follow the card's shape, and ambient occlusion no longer draws boxes around them.
- Guide dots stay behind the scalp. With a feather's Keep Shaft on, the dots on guides behind the scalp no longer showed through it.
- Faster Merge, Smooth and Clump. Each takes less time, with the same results to the last bit.
0.25.0 (October 22, 2026)
- Isolate works by group. Isolate, beside the Group choice in the Groom Tools, dimmed every
hierarchy level but the picked group's, so with several top-level groups nothing dimmed. It now
keeps the picked group and its child groups at full color and dims every other group (Maya, the
app and Blender). On the groom node, Isolate Group (
isolateGroup) replaces Display Level: a scene saved with Isolate on shows every group until you pick one again. - Scatter's density expressions mask the roots. With Randomness 0, a density expression let roots spread past where it falls to 0 (roots on the neck); on a scalp with Subdivision 2 it gave no strands at all. Both fixed.
- Faster curls. Curl is about 1.8 times faster (a 500,000-strand groom: 62 to 35 ms), with the same curls to the last bit, so clump, noise and brush edits on curly grooms come back sooner.
- Smoother orbiting. The viewport's level of detail no longer works its strands out again on every frame while the camera turns about the groom.
- Less memory for Keep Clearance. Interpolate's skin distance field takes a quarter of the memory it did.
- A new home page. Every strand on getgroomlab.com is grown by the
GroomLab engine itself, running in your browser, and the groom viewer opens a
.groomfile there, maps and all.
0.24.0 (October 21, 2026)
- GroomLab is developed in the open. The source lives at
github.com/thekesslereffect/groomlab and takes
pull requests: work happens on the
devbranch, and each release lands onmain(Contributing). - Every guide group gets its own color. Guides are colored per group, child groups included, each with a hue of its own that differs per groom; the "by level" mode is gone. Guide Color is now Group or Painted Layer (a painted guide layer, black to white). A color you pick for a group still wins.
- Hand-placed flight feathers. GroomLab > Add > Feathers offers Scattered feathers or One
feather per guide (hand-placed): pick a guide group (
feathers,flight_left,tail...) and each of its guides is exactly one feather, with none in between. The new Flight feathers (hand-placed) preset makes the group and switches to the Draw tool on it (Hand-placed flight feathers). - The app: the scalp hides the hair behind it. In the lookdev view on Direct3D 11, strands on the far side of the scalp showed through it; fixed.
- A new look for the site. The website and the GroomLab wordmark are set in Google Sans Flex.
0.23.0 (October 21, 2026)
- One current groom. The Groom Tools and the Graph Editor always show the same groom: picking one in either, or selecting a groom, makes it current for both, and brushes work on it. Pin the Graph Editor (its pin button) to keep it on one groom while the Groom Tools move on. The Groom Tools' "Selected groom / follow selection" row is gone: selecting a groom always makes it current (The current groom and what shows).
- Show the hair or the guides. The Groom Tools header has two eyes: one hides the hair alone
(strands, cards, scales, instances; the viewport only, renders keep it), the other the guides
alone. Shift+click either for every groom in the scene; GroomLab > Display has Show/Hide All Hair
and Show/Hide All Guides, and Alt+Shift+G toggles the guides. In Maya the hair's eye is the new
shape attribute
displayHair; hide a whole groom as any node (Ctrl+H). - Each groom's guides get their own colors. Guide groups are colored automatically from a hue that differs per groom, so two grooms no longer share the same blue; a group's own color still wins.
- Delete All Flow Arrows. GroomLab > Utilities > Delete All Flow Arrows clears a groom's painted arrows and sinks in one undo step, and the Flow tool shows how many there are (Delete All Flow Arrows).
- Node actions at the top. A node's buttons (the Cards node's exports, Simulate Range and Bake, Bake Node to Guides, Clear Sculpt Edits, a compound's Save) sit at the top of its settings, no scrolling needed.
- A shorter Groom Tools. Sections show when the tool at hand uses them: Tubes with Place, Draw, Shape and Select, the sculpting options with the brushes that sculpt.
- The app: Properties tabs, a smooth scalp. The Properties dock has tabs (Attributes, Material, Lighting, Render); GroomLab > Studio lights the viewport without leaving Groom mode; lookdev starts Interactive over a gradient, and lighting presets keep your background. Properties > Inputs > Scalp Subdivision grooms on the Catmull-Clark smoothed scalp (Scalp Subdivision). The Dyed swatch dyes the hair violet; the GroomLab swatch puts the default pigment back.
0.22.0 (October 21, 2026)
- The app looks and works like GroomLab in Maya. The standalone app has a menu bar with the same GroomLab menu as Maya and docked panels: Groom Tools on the left (Tools, Paint, Correctives and Photos tabs, the tool card, Tubes, guide groups, Output), Properties on the right in the Attribute Editor's order, and the Graph Editor and timeline at the bottom. Docks move, float and remember where you put them; View > Panels brings them back. Charcoal is the default theme, and themes now switch live (the app).
- Everything the Maya UI has, in the app. Right-click menus on guide groups (colors, reparent, mirror, sync), maps (import, convert, relink, fill, "read by") and correctives (order, solo, keys); the full Tubes panel with the shape library and outline editor; Graph Editor menus with presets, Add Node, drop a node on a wire to insert it, Drive with Slider and Bake Node to Guides; reference photos as backdrops with Align by Points; Add Sample Mesh, Add Feathers/Braid/ Collider/Wind/Jiggle, Strands to Mesh, Find Missing Files; the Y + click marking menu. Undo and Redo sit at the viewport's top right (the app).
- Open Recent and autosave in the app. File > Open Recent lists your last grooms; the app keeps a timed copy of an unsaved groom and offers it back after a crash (Autosave).
- Unreal grooms land on the head. The Unreal groom export now writes Unreal's own axes and centimeters, so Unreal's groom import with its default settings lines the hair up with the head you imported as FBX from the same scene: no more groom lying on its side (Importing the groom into Unreal).
- Blend's mix starts at 1. A map or slider plugged into a Blend node's
mixmultiplies it, so at the old 0.5 a white mask only blended halfway. New Blend nodes start at 1, so the mask alone sets the blend. Saved grooms keep their value: setmixto 1 where a mask drives it. - Flow with guide tufts, painted. The
flow_with_guidespreset is now fur along the flow blended into your guides wherever you paint itsguideAreasmap white: a ruff, a mane, ear tufts, styled with guide sculpting. The map is made for you, black (all fur), in Maya, Blender and the app (Presets).
0.21.0 (October 20, 2026)
- Render with Maya Hardware 2.0, no renderer needed. GroomLab > Render > Maya Hardware 2.0 (no renderer needed)... renders frames or a turntable with Maya's own Hardware 2.0, in every Maya version, in well under a second to a few seconds a frame: the grooms at their render density, anti-aliased, with GroomLab's hair shading; a studio's Arnold lights replaced by matching Maya lights. The images open in the Render View (Maya Hardware 2.0).
- A steady render progress window. V-Ray and RenderMan renders from Maya show one progress window over Maya, with the frame and percent, instead of a small box flashing until the image came.
- Render in RenderMan from any Maya. GroomLab > Render > RenderMan (prman)... renders the grooms through GroomLab's RenderMan procedural, the visible meshes, the camera and the lights in RenderMan's prman in the background, in every Maya version, 2022 too, without RenderMan for Maya: the studio presets' area lights and dome become RenderMan lights, a frame range renders a turntable or a shot, motion blur is an option, and the image opens in the Render View. RenderMan is free for non-commercial use (RenderMan).
- RenderMan in the app. Render > Render Frame in RenderMan and Render Turntable in RenderMan render the groom in prman with the viewport's camera, lights and scalp, in the same window as the V-Ray renders; the RenderMan procedural now comes with the app (the app).
- Posing a rig keeps the groom's scale. On a scalp with a rest mesh (a skinned one gets one), the groom's scale is measured without the pose's stretch: posing at the start frame no longer rescales the hair, and scaling the rig still does.
- V-Ray scenes. GroomLab > Export > V-Ray Scene... (Maya and Blender),
groomlab.export_vrsceneandgroomlab-cli eval hair.groom -o hair.vrscenewrite the groom as a V-Ray scene: the strands as V-Ray hair with each strand's color, and a VRayHairNextMtl shader set up from the groom's look so it renders close to Arnold. Render it in V-Ray Standalone or load it in V-Ray for Maya with a VRayScene node. Frame ranges are written as keys, so V-Ray renders motion blur (Other renderers). - V-Ray for Blender. With V-Ray as Blender's render engine, final renders show the groom as GroomLab's V-Ray hair (each strand's color, the shader from the groom's look) instead of V-Ray's plain conversion of the hair object; animations and motion blur included (Blender).
- V-Ray in the app. Render > Render Frame in V-Ray and Render Turntable in V-Ray render the groom in V-Ray Standalone with the viewport's camera, lights and scalp, in a window that shows the progress and the image. Export mode has a V-Ray scene target too (the app).
- Render in V-Ray Standalone from any Maya. GroomLab > Render > V-Ray Standalone... renders the grooms, the visible meshes, the camera and the lights in V-Ray Standalone in the background, in every Maya version, 2022 too: the studio presets' area lights and dome become V-Ray lights, a frame range renders a turntable or a shot, and the image opens in the Render View (V-Ray).
- V-Ray for Maya hook (experimental). For Maya 2024 and later with V-Ray for Maya: Render > V-Ray for Maya Hook renders the grooms inside V-Ray for Maya's own renders, and Render > Load as VRayScene points a VRayScene node at an exported groom. Untested so far; please report results.
- Buddy, a posable sample character. Add Sample Mesh > Buddy (rig) in Maya and Blender brings in a rigged cartoon character (a skinned body, eyes, teeth and tongue; controls in Maya, an armature in Blender) with its body selected: grow a groom on it, then pose it and the hair follows. The GroomLab app and the AI agent tools get Buddy's body as a sample mesh.
- Maya exports read a fresh pose. An export at the current frame after posing a rig without keys (or any other edit upstream of the scalp) now reads the scalp as posed, not as it was before the edit.
0.20.0 (October 20, 2026)
- Photos in Blender. The Groom Tools' Photos tab: reference photos as cameras, Look Through, point pairs picked on the photo and the mesh, and Solve to line the camera up. The photos are saved with the groom, so the GroomLab app opens them too.
- Guides from Photos in Blender. GroomLab > Guides from Photos (experimental)... grows guides from the photo cameras into a guide group of their own.
- Alembic curves as guides in Blender. Import > Alembic Curves... takes a groom's guides from an Alembic file, as in Maya.
- Bake Node to Guides in Blender. Utilities and the Graph Editor's node menu turn a node's strands or guides into guides you can brush.
- Paint a param on the guides in Blender. The Graph Editor's Paint > On Guides paints a param on the guides (children inherit it, strands blend it), besides the scalp's vertices or a texture.
- Engine exports in Blender. GroomLab > Export has Maya's Unreal Groom, Unreal Cards, Unity Strands, Unity Feathers, Unity Cards, glTF Cards, Scales Mesh (FBX) and Scales Instancer (USD); the FBX files are written with Blender's own exporter. Utilities has Strands to Mesh and Bake Scale Maps.
- Simulate in Blender. GroomLab > Simulate adds a Simulate node, steps it over the playback range with the frames counted in the status bar (Esc stops), bakes it to Alembic guide caches and clears it. The scalp's animation is handed to the simulation.
- Add in Blender. Feathers (one design or an assortment, scattered or on selected curves), Braid on Curves (selected curve objects as the paths), Cards at hero, mid or low detail, and Collider (selected meshes, followed as they move), as in Maya.
- Transfer Groom to Scalp in Blender. Moves the groom onto another mesh by closest point, bounding boxes, stored markers or UVs; the new mesh then owns the groom (its hair, guides, graph and sliders), and undo puts it back.
- Sample meshes in Blender. Add Sample Mesh brings in Nika, Manny or the wolf at their real size, ready for Create Groom from Selection.
- Review and utilities in Blender. A Strand Count HUD in the viewport, a Turntable camera and lights, Copy Graph to Other Grooms, and Find Missing Files to relink moved textures and files.
- Shift+drag smooths in Blender. Holding Shift with a brush smooths under it, as in Maya (its drags were refused while the Shift press waited to see whether it was a click).
- Blender's Groom Tools match Maya's. The GroomLab menu, the Groom Tools' tabs and sections, the lists' bars and right-click menus, the option lists and the pie menu are built from the same definitions as Maya's, so they have the same items, names and order. Items Blender doesn't run yet are left out.
- Tubes in Blender. A Tubes section edits the selected guides' tube shape (the built-ins and the groom's library of custom shapes), width, flatness and twist, smooths them and turns on Fill Tubes; the Shape brush paints Width, Flatness or Twist; Place and Draw give new guides the tube shown.
- Maps, groups and guides in Blender. The maps' right-click menu renames, converts, makes gray or color, imports, relinks and reloads images, and deletes a texture map with its file; Fill works on every kind of map, and Read by lists what a map feeds. Guide groups get their own colors and a right-click menu, and Edit Guides gains Mirror Selection, Mirror Group..., Reparent... and a Segments slider. The Part tool lists its parts (Remove, Clear All) and Flow has Clear All.
- Correctives in Blender. The Correctives tab adds, fixes a frame, solos, reorders, renames and deletes correctives and brushes Sculpt nodes; a corrective's weight is keyed with Blender keyframes you can edit in the Timeline or Graph Editor.
- Save to and Reload from Groom File in Blender, and GroomLab > Add > Wind and Jiggle.
- Blender's Graph Editor authors like Maya's. Its node, Edit, Add and Presets menus are Maya's,
item for item. Ctrl+G groups nodes into a Compound and Ctrl+Shift+G ungroups it; a
compound shows the inner params you pick. Params can be exposed as inputs, driven by a slider or
keyed (Blender keys on the groom's
ctl_properties, read on every frame), and fed from a texture, color set, attribute, painted map or expression (edited in a text block, checked as you type). - Backdrops in Blender. Blender frames are GroomLab backdrops: their title, color, place and size are saved with the graph, so Maya and the app show them too, and Maya's backdrops show as frames in Blender.
- The node library in Blender. Save as Node, Save to Library, Update Node (a ↑ on nodes whose library file is newer), Import Node, Open Nodes Folder and Save as Preset; New Script Node opens the script in Blender's text editor with live errors.
- Copy Graph and Paste Graph in Blender, a node dropped on a wire inserted the way Maya inserts it, and Tab search listing your painted maps as Map nodes.
- Leaving the Paint tab ends painting in Blender. Going back to the Tools tab stops the Paint brush and takes the map off the strands and scalp, as picking another tool does.
- Tubes show in Blender. Display > Tubes draws the tubes lighter and through the strands round them, and the Shape brush draws every tube it can shape as a wire, the selected guides' tubes highlighted, as in Maya.
- Presets and the graph live in Blender's Graph Editor. The Presets and Graph panels are gone from the 3D view's GroomLab tab; the Graph Editor's Presets menu and sidebar have them, as Maya keeps them out of Groom Tools.
- Hair shows its color in Blender's Solid view. The hair's material carries the groom's look as its viewport color, so Solid shading shows the hair's color (as Maya's viewport does) instead of plain gray.
0.19.6 (October 20, 2026)
- Graph Editor zoom draws cleanly. Alt+right-drag zoom no longer leaves larger copies of the nodes behind on scaled displays (150%): it scales a picture of the whole graph (zooming out shows all of it, dots too), sharp again on release.
0.19.5 (October 19, 2026)
-
Smoother Graph Editor panning and zooming. Alt+drag and middle-drag pan a 30-node graph several times faster (nodes are drawn once and moved, not redrawn), and Alt+right-drag zooms without lag.
-
The Select tool redraws on release. A marquee, a Shift pick and a click on nothing to deselect every guide show in the viewport the moment you let go, without moving the camera.
-
Opening a scene picks its groom. After File > Open (and when the Groom Tools open on a scene with grooms) the tools work on the scene's groom, the one you last worked on when the scene has it, instead of showing Start a groom. Selecting another groom still switches to it.
-
Windows stay where you put them. The Groom Tools and the Graph Editor reopen where they were after Maya restarts (an update's restart too): floating on another monitor, docked or tabbed, their size. The Reference, Transfer, Card Maps, Updates and Import windows remember their place and size too. (Windows placed before this version open in their default place once.)
-
The Graph Editor clears with the scene. File > New empties it, and File > Open shows the opened scene's groom, instead of keeping the closed scene's nodes.
-
Twist is symmetric. With symmetry on, the Twist brush (and the Shape brush's twist) turns the mirror side the opposite way, so both sides stay mirror images.
-
Wider scroll bars. The Groom Tools' and Graph Editor's scroll bars are wider, with a visible track, and light up under the cursor, so they are easy to see and to grab.
0.19.4 (October 19, 2026)
- Guide colors are automatic. Guide Color and Theme Guide Colors are gone from the Attribute Editor: guides draw in the theme's color for their level, and a guide group with a color of its own (Groom Tools > Guides, click its swatch) draws in that color. Default Color in the group's right-click menu goes back to the theme's.
0.19.3 (October 19, 2026)
- Drop a node on a wire to insert it. Drag an unwired node so any part of it lies over a wire: the wire lights up, and letting go puts the node into it. Tab over a wire does the same for a new node.
- Painted maps in Tab search. Tab in the Graph Editor and type a map's name (or map, mask, paint): each painted map is listed, and picking one adds a Map node already reading it.
- Undo in the Graph Editor shows at once after you have moved a node: the graph, its wires and the param panel go back with the hair, instead of only after closing and opening the editor.
- Leaving the Paint tab ends painting. Going back to the Tools tab (or to the GroomLab Select tool from a shelf button or a script) stops the Paint brush, and the strands and scalp stop showing the map.
- Selecting guides redraws the viewport at once, so the selection color shows without moving the camera.
- Guide Color is dimmed while Theme Guide Colors is on (Attribute Editor, Display > Guides): the theme's colors replace it then. Turn Theme Guide Colors off to draw the guides in your own color.
0.19.2 (October 19, 2026)
- Alt+right-drag zooms the Graph Editor, as in Maya's viewports: drag right or down to zoom in, left or up to zoom out, around the point you pressed.
- Deleting a texture map deletes its image too (the Paint section's maps list). Only a file GroomLab made in the scene's masks folder, and only when no other map or groom reads it; undo puts it back. Turn it off with Delete Its File Too in the list's right-click menu.
- Deleting a map unlinks it. The params it fed go back to their own slider values (its Map nodes are removed), and a param set to the map goes back to the node's default, so the groom keeps working instead of reporting an error. The delete dialog names the params; undo brings everything back.
0.19.1 (October 19, 2026)
- Manny, a new sample head. GroomLab > Add Sample Mesh > Manny (head) (or the button under
Create Groom from Selection in Groom Tools) adds Manny at the origin, selected and ready to groom.
Free to use, commercially too, with credit: "Manny head by Nick Rutlinh (GroomLab), CC BY 4.0".
AI agents get it by name too (
"mesh": "manny").
0.19.0 (October 19, 2026)
- Use GroomLab from AI agents.
groomlab-cli mcpis an MCP server, so Claude Desktop, Claude Code, Cursor, VS Code and other AI apps can build grooms through GroomLab's tools: new grooms on a mesh or a sample, presets, nodes and params, guides and tubes, script nodes, a preview image the agent looks at,.groomfiles and Alembic or USD export. It works in one folder you choose, makes no network connections, and every change can be undone. See Use GroomLab from AI agents. - Card map exports. Export Maps... on the Cards node (the app: Export > Card maps; Blender: Card Maps...) writes the cards' textures as your engine wants them, in one click: pick a preset (Unreal Hair Cards, Unreal packed, Unity HDRP Hair, or every map on its own), a resolution up to 8K, and PNG, TGA, TIFF or EXR at 8, 16 or 32 bits, with automatic edge padding and optional supersampling. New maps: a normal map (OpenGL or DirectX), per-strand seed, per-clump ID, root to tip, specular, translucency and a flow map, beside depth, coverage, tangent, color and AO. Advanced packs any map into any R, G, B or A channel, inverted or not; save the packing as a preset that Maya, the app and Blender share (Export card maps).
- Studio lighting. GroomLab > Studio (or Studio in the Groom Tools' Output section) puts a photo studio round the groom in one click: a seamless grey backdrop, Arnold softbox lights, an 85 mm three-quarter camera and a matte grey mannequin head. Five presets (Portrait, Beauty, Rim Drama, High Key, Turntable) relight it in place; it scales with the groom, and Remove Studio puts back the head's materials and the render settings (Studio lighting).
0.18.0 (October 18, 2026)
- Compound nodes. Right-click a compound > Save as Node... to keep it in your node library
as a node of your own: it shows in Add Node and Tab search under its category, in every
groom, in Maya, the app and Blender. Share it as one
.glnodefile (Import Node..., or drop it on the Graph Editor). Grooms carry a copy of the nodes they use, so they open and render anywhere; a newer version in your library shows an update mark on the node. Three examples ship: Soft Frizz, Grey Streaks and Wind-swept Ends (Custom nodes). - Script nodes. Add Node > New Script Node makes a node of your own from a short script in
the expression language: it runs per strand and per point, moves points, sets widths and colors
and writes channels, with parameters of its own (sliders, mappable, ramps). Its editor opens in
the Graph Editor's side panel and is live: the groom follows as you type, and errors say their
line and column. Save it to your library and share it as one
.glnodefile, like a compound node. Four examples ship: Wave, Kink, Taper by Channel and Random Length. In the app, double-click a script node to edit it; Blender lists and evaluates them (Script nodes).
0.17.1 (October 18, 2026)
- Tubes has its own section in Groom Tools > Tools: shapes, sizes and the shape library in one place, opened by the Shape brush, Place and Draw, or any time from its header.
- Fixes: Scatter's guide radius fills a sized round tube's footprint (only shaped tubes did); the Tubes section edits the guide of a groom that has just one; the Tube locks preset feeds its guides to Scatter (guide radius 1), so hair grows only on the tubes.
0.17.0 (October 18, 2026)
- Join us on Discord. A GroomLab community for questions, work in progress and feedback: discord.gg/sr2rxjRVkm, also under Help > Discord in Maya and the app, and in the Blender menu's About.
- Tube guides: shape the hair as whole locks. Every guide's tube now has a shape (round,
ribbon, teardrop or blade) and sections along it (width, aspect and twist, root to
tip). Children are made inside the shape and follow it as it flattens, twists and tapers.
Interpolate's new Fill Tubes fills each tube with strands that stay inside it to the tip, and
Clump's Follow Tubes (on) clumps them inside their own tube: anime and cartoon hair without
modelling a mesh. In Python:
set_tubeandget_tube; draw them with Display Tubes. See Tube guides. - The Shape brush shapes tubes in Maya. It replaces the Tube brush (same place in Groom Tools >
Tools > Shape): drag over guides to paint their tubes' Width, Flatness or Twist near
the brush, point by point along each guide (Ctrl does the opposite). Its card sets the selected
guides' tube Shape, Width, Flatness and Twist as a whole, and the groom's Fill
Tubes. While it is on, the tubes draw as wires, a section outline at every guide point. In
Python:
brush_stroke(..., "shape", tube_channel=...),scale_tube,set_fill_tubes. - Fill Tubes has a soft edge and fills every level. Interpolate's new Tube Blend (25% of a tube's half-width) blends the strands just outside a tube into it, so no seam shows round a lock. And the tubes of every guide level fill now (a child's tube inside its parent's takes its own strands, the parent's the rest), without setting the Guides node's level.
- Tubes fill at any angle. Strands no longer collapse into a thin band when a guide leaves the head at a shallow angle (lying along it): a tube's footprint is now its section laid flat on the scalp, so its strands fill the whole shape (blade, ribbon, teardrop, round, flat or not) at any angle. Picking a shape lays the tube flat on the head (twist 0: its width along the scalp).
- Shaping tubes is quicker. While the Shape brush is on, every guide it can shape shows its
tube (the selected ones brighter), with lines along each tube's corners so a blade reads as a
blade. Shift+drag with it smooths the channel it paints along the guides; the Tubes card's
new Smooth button does the same for the selected guides (the current channel or all three;
smooth_tubein Python). The card edits only the selected guides and shows Mixed when their shapes differ. - Custom tube shapes. Draw your own cross-sections: each groom has a shape library saved with
its guides (in the scene and in
.groomfiles), and guides take a library shape by name like a built-in one. Fill Tubes, children, clumps and the wires follow its outline exactly. The Tubes card has a shape editor: a square with the outline's points to drag (the groom follows live; letting go saves, one undo step), click the outline to add a point, right-click one to remove it, Mirror (on) keeps both sides alike, Smooth or straight edges. Edit as Custom copies a built-in into the library; New, Rename, Duplicate, Delete and Apply to Selected manage it, with no dialogs. Editing a shape updates every guide using it. Outlines that cross themselves or leave out their center are refused with a message. In Python:add_tube_shape,set_tube_shape_points,rename_tube_shape,remove_tube_shape,tube_shapes, andset_tube(..., shape="<name>"). See Tube guides. - New guides take the shape you chose. Place and Draw (and their mirrors) give a new guide the
shape picked in the Tubes card (a built-in or a library shape), and blend its width, flatness and
twist from the two nearest guides; with none near, it takes the card's Width, Flatness and Twist.
The card shows for Place and Draw too. In Python:
brush_tool(..., tube={...}),brush_stroke(..., tube={...}),placement_tube(). - Tube sections follow the head. A shaped tube's sections turn to lie as the scalp does all along the guide (twist 0: width along the scalp), so a ribbon combed round the head stays flat on it; off the head they carry on as they left it.
- The Tubes card follows solos. With no guides selected it edits the soloed ones (Shift+click a guide with a brush), and it follows every change of the selection or solo.
- Children of slanted tubes spread out. Children of a shaped tube whose guide leaves the head at a slant root across its footprint instead of bunching on a line (upright guides and plain round tubes keep theirs).
- Scatter's guideRadius fills tube footprints. Round a guide with a shaped tube, Scatter keeps the roots on the tube's footprint (plus the new tubeMargin) instead of a disc, so blades and ribbons fill evenly.
- Tube locks (anime) preset. A start for stylized hair (Presets > Hair): Fill Tubes with a soft edge, soft clumps that follow the tubes, a little noise and tapered tips. Place guides, then shape their tubes with the Shape brush.
- The teardrop shape is round against the scalp and points away from it, and the crescent shape is gone (a saved crescent loads as round).
Grooms saved before: guide tubes return to the default width (0.1); set them again with set_tube
or the Shape brush. Scripts naming the tube brush mode use shape now.
0.16.1 (October 17, 2026)
- Fixes in Maya. Leaving the Paint brush for another tool no longer prints "A scriptJob cannot be killed while it is running", and the Graph Editor no longer prints "Invalid flag 'pressed'" over and over in Maya 2022.
0.16.0 (October 17, 2026)
-
A wolf to start from. GroomLab > Add Sample Mesh now offers a sitting wolf (body, eyes, nails and mouth, its body selected for Create Groom from Selection) beside Nika. Free to use, commercially too, with credit: "Wolf by Nick Rutlinh (GroomLab), CC BY 4.0". Add Sample Head (Nika) is now Add Sample Mesh > Nika (head), and in Python
add_sample("nika")oradd_sample("wolf")(wasadd_sample_head()). -
A painted map works wherever you pick it. Choosing a map painted on the scalp's vertices from a param's map menu (Painted map) no longer fails with "no guide carries the layer".
-
More drags preview live on the GPU. Dragging a param of a node feeding a Merge's second input (a whisker or eyebrow branch merged with the fur), and Collide's Offset, now update instantly instead of waiting for a full evaluation.
-
Faster simulation. The Simulate node steps nearly three times as fast (5,000 guides: about 17 ms a frame instead of 48 on a 12-core machine), with exactly the same results.
-
A bake is what played. Baking (and Simulate Range) now gives the simulation you watched: frames that real-time playback skipped are spread evenly instead of making the hair whip, and they are kept when you scrub back; Simulate Range meets colliders and other scalps where they are on each frame (it met them where they stood on the current frame); and a bake of guides the graph makes (ToGuides, imported curves) follows the head with Follow Scalp on. For the closest match, set Maya's playback to Play every frame while you simulate.
-
Hair drapes over ears. Interpolate's Keep Clearance now only lifts strands out of the skin and lets them return to their groomed path after an ear or a cheek, so hair drapes over ears instead of standing off them (no more gap below the ear).
-
A documented, versioned USD layout. Every USD export (Maya, the app, Blender,
groomlab-cli) now follows one specification, USD layout: every prim, attribute and primvar with its type, interpolation and units, and how to read one frame or a range. Each file carries its version (groomlab:layoutVersion1, in the layer'scustomLayerDataand the root prim'scustomData), so viewers and pipeline tools can build on it. The app's USD export now also writes the scales and the groom file's prototype meshes. -
Sculpt edits survive grouping. Grouping a Sculpt node into a compound (Ctrl+G in Maya's Graph Editor or the app's node graph) no longer throws its brushed edits away: they move into the compound with the node, in the same undo step, and come back out with Ungroup. Renaming or duplicating a compound takes the edits of the Sculpt nodes inside it along.
-
Blender: painted maps show again after reloading. Opening a groom file again onto the same mesh shows its painted map on the scalp at once (the first redraws failed and left the old map shown). After Blender's own undo or redo, the Paint tab's map list (and the guide groups) show the groom's maps as they are, instead of the list from before.
Grooms saved before: strands crossing ears and cheeks sit closer to the skin.
Exports: in USD, a scales instancer's (scaleInstances) per-instance root color is now
primvars:scaleRootColor (was primvars:scaleColor), the name the scales mesh uses for it; an
attribute named normals is written as primvars:normals_2.
0.15.0 (October 17, 2026)
- Simulated hair no longer flips at the ends. In fast head motion the ends of simulated guides no longer flip or jitter, at any substeps (more substeps used to make it worse). The Simulate node now solves each guide's stretch and bend as a whole, so stiff guides still hold their shape.
- Simulated hair keeps its groom by default. Groomed Under Gravity is now on for new Simulate nodes (and the Default preset): the groomed shape is taken as how the hair rests under gravity, so pressing play no longer drops the groom; only motion moves it. Turn it off to let gravity pull on the groomed shape.
- Nika, a sample head to start from. GroomLab > Add Sample Head (Nika) (and a button in Groom Tools' empty state) adds a head and shoulders at the origin, sized for the scene's units and selected: Create Groom from Selection grows hair on her. Free to use, commercially too, with credit: "Nika head by Nick Rutlinh (GroomLab), CC BY 4.0".
- Arnold in Maya 2024. The Maya 2024 build now renders grooms in Arnold like every other version.
- Painting no longer leaves the map showing. After the Paint chip (or + New Map) starts the Paint brush, choosing another brush or tool (Q) puts the groom's look back.
- For developers. Adding a node is one command (
tools/dev/new_node.py, see docs/EXTENDING.md); the noise, hash and ramp math is one source shared by the CPU and the GPU preview, and an expression function is one table row (docs/MATH.md). A skinned, animated test scene builds fromsamples/skinned_bust.
Grooms saved before: simulations look slightly different; the same bend keeps about the same
stiffness, and baked simulation caches still play as they were baked. A Simulate node saved with
Groomed Under Gravity off keeps it off; one saved at the old default now keeps its groom (turn it
off for the old sag).
0.14.0 (October 17, 2026)
- Each branch sets its own strand resolution. A Scatter now grows its strands with the most segments a Resample after it asks for (a Resample fed nothing sets the default; without either, 8), not the most any Resample in the graph asks for. Fur no longer carries the 51 points a whisker branch's Resample asks for: lighter, and much faster to evaluate. The Graph Editor (and the app's parameter panel) says on each Scatter and Resample which Resample sets its resolution.
- Faster edits and playback with Instance nodes. Param drags upstream of an Instance preview on the GPU (the instances follow at release), Follow Scalp carries instanced grooms on the GPU, and the instances' meshes are built again only when their strands move.
- Width and color edits stay quick. A Width or HairColor change keeps the points of every node after it (Collide, Merge, Instance): only the widths and colors are made again.
- Quicker exports. An Alembic or USD export of the frame the viewport shows takes the viewport's evaluation instead of evaluating the groom again, and a one-frame USD file is written in one pass.
- Compounds and backdrops in the app. The app's Graph Editor groups the selected nodes into a Compound (Ctrl+G) and opens one again (double-click, or Ctrl+Shift+G), one undo step each, exactly as Maya's Graph Editor does. Backdrops can be added, renamed, recolored, moved with their nodes, resized and deleted. The app's Node Settings panel takes the window's height when it needs it, and the rail labels of a first run no longer cover the stats and the Graph pill.
- Faster brushing and guide edits. Guides are re-made only for the group a stroke touches, Merge updates only the side that changed, and Follow Scalp carries strands on every core. Brush strokes start warm after the previous one, and caches are freed when a scene closes.
- Keep Clearance is much quicker. Interpolate pushes strands clear of the scalp at the guides'
sample points instead of every point (on the CPU and the GPU), Collide skips surfaces far from a
strand, Merge previews on the GPU, and Scatter randomness edits are faster. The process caches
hold at most 2 GB (
GROOMLAB_CACHE_LIMIT_MBsets another limit). - Clearer feedback. Long exports show progress (Esc cancels) and say when they're done; XGen and Yeti imports, Guides from Photos, Transfer and card bakes show they're busy; errors say what went wrong in plain words, and a node in error shows it under its header.
- Easier to find things. Add Node and Tab search show labels, categories and descriptions and find nodes by what they do ("symmetry" finds Mirror). Groom Tools has an Output section (simulate, export, render) and Import > Alembic Curves...; the Sculpt tab is now Correctives, the Reference tab Photos, and the Reference node Linked Groom. Symmetry is always visible in the Group row. A Paint chip on mappable params adds a map in one click. New docs page: Common tasks.
- One set of shortcuts. Maya, the app and Blender share one shortcut table; tooltips show the keys, and the app gains M+drag, Alt+Shift+X, B to bypass, and F/A in the graph.
- The app. It asks before closing, opening or reloading over unsaved changes; success messages show; menus follow the theme. The graph gets multi-select, copy and paste, View Up to Here (V), error badges and link-refusal reasons. File > Add Prop Mesh..., Add Eye... and Save Image... are new, and empty states say what to do next.
Grooms saved before: a Resample now only sets the resolution of its own branch; add a Resample to a branch that relied on another's.
0.13.0 (October 16, 2026)
- Scale with scalp. A groom now scales with its mesh like a child object: scale the head (its transform, a rig's root, or the mesh itself) and lengths, widths, clump sizes and noise scale with it, density adjusts so the strand count stays the same, and guides keep their shapes. The scale comes from the scalp's surface area at the animation's start frame, so Freeze Transformations changes nothing and animation doesn't make it wobble. Your values are never changed: scaling back gives the original groom. Scale Source (Surface Area, Transform Only or Off), a Groom Scale readout and Set Scale Reference are in the Attribute Editor's Inputs (and the app's Display panel). Surface Area survives Freeze Transformations; Transform Only survives remodelling the mesh. When a remodel changes the scalp's size under Surface Area, GroomLab says once how much the groom scaled. See Scaling a groom.
- Transfer: Fit groom to the new scalp's size. A new option in the Transfer window
(
transfer_groom(..., fit_size=True)) treats the new scalp as the old one resized, so the groom scales with it; off (the default), it keeps the size shown.
Grooms saved before: they start at 1x the first time they're measured, so nothing changes until a mesh is resized. Scenes whose rest mesh was captured before the head was resized change their strand count once.
0.12.0 (October 16, 2026)
- Expose any parameter. Every parameter can now be exposed as an input (574 of 579; the rest define a node's own ports). Per-strand inputs (maps, fields) work as before; everything else takes a Value port, one value for the whole node. A new Value node (number, integer, on/off, vector, color, choice or text) can drive many parameters at once, and an Expression can output a single value from the frame or time. Exposed parameters become a compound's inputs. See Node graph.
- Strand Mesh node. A live tube or ribbon mesh of the strands, drawn in the viewport in place of the strands and following animation, Follow Scalp and Simulate. Mesh in Scene connects a Maya mesh to it for animated Alembic export. Utilities > Strands to Mesh stays a one-off snapshot.
- Charcoal theme. A calm, monochrome theme, and a theme picker: GroomLab > Theme in Maya, View > Theme in the app (on the next start).
- App fix. The cards preview showed every card with another card's texture; fixed.
Grooms saved before: nothing changes.
0.11.0 (October 16, 2026)
- GroomLab is open source. Apache-2.0, on GitHub at thekesslereffect/groomlab (the Blender add-on is GPL-3.0-or-later). Still free for any use; donations on Ko-fi keep it going.
- Import XGen grooms. GroomLab > Import > From XGen... converts XGen Interactive Grooming and XGen Core descriptions into GroomLab grooms: guides, density, length, width, clump, noise, coil and cut, expressions, and Ptex or file textures (copied into the groom's masks folder). An import report lists what was mapped, approximated or skipped. See Importing.
- Import Yeti grooms, without Yeti. GroomLab > Import > From Yeti... reads Yeti's graphs and groom strands straight from the scene: scatter, grow, guides, clumping, scraggle, width, displace, cut and textures. A Roots field resolves texture paths that use environment variables.
- Guides from reference photos (experimental). GroomLab > Guides > Guides from Reference... opens a two-view window, the photo beside the mesh: pair a few landmarks to line the photo up (the camera solves live), draw flow arrows on the photo, touch up the hair mask, then Generate grows guides that follow the photo, with symmetry. Measured Look (Maya) reads clumps, curls, flyaways, frizz, tips and thin areas from the photo and offers to set them. Works best on long hair and longer fur. See Reference photos.
- The same strands on every machine. GroomLab's math now gives bit-identical results on Windows and Linux, so a groom renders the same on any farm node.
- Linux builds from source. The core, the C API, the command line, the Python module and the Blender helper build and pass their tests on Linux (see the repository's docs/DEVELOPING.md).
Grooms saved before: strands differ in the last digits (the new portable math); re-bake caches if
you compare them bit for bit. In Python, apply_suggested_look is now apply_measured_look.
0.10.0 (October 14, 2026)
-
HairColor, simpler and fixed. Hue Random and Saturation Random now vary every strand, in both modes, in the viewport, the app, Arnold and RenderMan. Clump Share gives each clump its own color (with a Clump before the HairColor; the node says so when there is none). HairColor follows RenderMan's PxrHairColor: Base (mode, melanin, redness, dye or color, map, greys), Random, Tip and Highlight. Every renderer uses the one RGB HairColor writes; in mode melanin it is the color whose absorption is the melanin's, so Arnold renders it as its melanin. Color params show a swatch in the Graph Editor (click it to pick); the Attribute Editor's Hair Color section shows every everyday param and the resulting color. See Color patterns.
Grooms saved before:
rednessRandom,colorSource,dyeAmountandmapModeare gone and ignored (a map now replaces the color in mode color and dyes the pigment in mode melanin);valueRandomworks in mode color only (in mode melanin, raisemelaninRandom). A mode melanin groom renders in Arnold by its RGB instead of the melanin user data, about as before. Exports that store a plain color (USD displayColor, Alembic Cd, Unreal's groom_color, the cards' Color maps) and Maya's hair tube shading now get the hair's appearance, measured from Arnold renders: natural colors come out somewhat darker and more saturated than before (medium brown sRGB about 145, 108, 66), and picked colors lighter than the value picked, as the hair renders. See Base color and appearance. -
Color maps drive colors. The Map node has an rgb output: link it to a color param (HairColor's color, dye or tip color, Bands and FeatherColor colors) and a painted or imported color map colors the hair. See Painting maps.
-
Import an image as a map. Import... in the Paint tab makes a texture map from an image in one step, named after the file, color or gray as the image is (
groomlab.import_map). -
One way to paint a setting. The Width and Density brushes are gone. In the Paint tab, + New Map > For a setting (Density, Width, Length, Clump strength, Curl, Noise amplitude, Flyaways, or any other) makes the map, links it and starts the Paint brush, in one undo step; a setting that already reads a map picks it. The painting brushes live in the Paint tab only. Ctrl on a gray map paints toward 0 (on a density map: removes hair); the Graph Editor's Paint starts at 1 like the rest.
-
Lighter defaults. The viewport shows every strand by default (Preview Density 1), Scatter makes 80 strands per unit area (was 200) and the presets' densities are lower (hair 80, fur 25), so a new groom previews in full and stays responsive. Raise density for final renders.
-
Arnold IPR safety. GroomLab now stops Arnold's render before it edits the hair during IPR (a newer MtoA could update it mid-render and crash Maya), never hands Arnold a negative width or a broken strand, and warns once when IPR runs on a groom of 500,000 strands or more. The crash log names the module that faulted and the GroomLab, Maya, MtoA and Arnold versions.
-
GPU fix. Very dense grooms (past about 4 million strands) could get a few points wrong from the GPU preview's clearance pass; fixed.
Grooms saved before (besides HairColor above): scripts using the width or density brushes get
an error naming the new way; maps they made keep working. Scatter nodes with no density set now
make 80 strands per unit area instead of 200.
0.9.0 (October 13, 2026)
- Pick a hair color. HairColor has a Mode: Melanin (natural, as before) or Color (RGB), which renders the picked color with no pigment on top, in the viewport, the app, Arnold, RenderMan and Blender. A tip color now applies as soon as you pick one, takes the strand's randomness, and Tip Offset Random varies where each strand's tip color starts. The groom's Attribute Editor has a new Hair Color section, and the app's Look card a Natural / Picked color switch. New presets: white_wool and the two_tone_tips add-on. See Color patterns.
- Arnold renders the groom's own colors. A groom with no shader renders its look (it used to fall back to a fixed brown), and a shader made with Create Hair Shader is rebuilt when the look changes. Your own shaders are left alone.
- RGB colors match Arnold in the viewport. Picked colors, FeatherColor, Bands and color maps used to draw too dark and too saturated; the viewport and the app now turn the color into the fiber's absorption as aiStandardHair does.
- Springy fur in Simulate. A Preset menu on the Simulate node (Default, Fur), and groomedUnderGravity, which treats the groomed shape as already resting under gravity: fur holds its groom and still moves with the body. Stiff guides now hold their shape and come to rest, hair resting on the scalp or a collider keeps its length, and guides saved on an older version of the scalp follow a moving body when the groom has a rest mesh. See Motion and simulation.
- Brushes. A red line marks the symmetry plane on the scalp while a brush with symmetry is on, Symmetry is the first brush setting, and Alt+Shift+X toggles it. Ctrl with the Density or Width brush now always paints toward 0 (it painted toward the inverse of Value). Erase removes guides, parts and flow arrows; Density with Ctrl removes hair, which the tool now says.
- Small screens. The Graph Editor opens docked under the viewport when a floating window would crowd the screen (1080p at 125-150%, or 1366x768), the Transfer and Updates windows open within the screen, and the app's panels scroll when short.
- Scatter. A note on the node and a Script Editor warning past 2 million strands;
lengthsays when guides set it instead.
Grooms saved before: HairColor's map setting mode (replace or multiply) is now mapMode; a groom
that set it shows an error until it is changed. RGB-colored looks are lighter in the viewport (as in
Arnold). Grooms without a shader render their own colors in Arnold. Simulations come out
differently; bake again.
0.8.0 (October 13, 2026)
- SeExpr expressions. The expression language now follows SeExpr as XGen uses it: the
->operator,if/elseblocks,&&,||,!,%, compound assignments, vector indexing, and nearly all of SeExpr's built-in functions. XGen's variable names ($id,$faceId,$Pref,$cLengthand others) andmap('${DESC}/paintmaps/name/')work, so most XGen expressions paste over unchanged. What differs is listed in Expressions. - Simulate comes to rest. Hair on a still head now settles instead of moving slightly forever, and hair resting on the scalp or a collider no longer bounces. Fast colliders are swept through the substeps, so more substeps now stop them passing through the hair.
- Docs. Rewritten for clarity, with new reference sections: the strand attributes each renderer and export receives (Rendering), Interpolate's guide influence settings (Node graph) and guide groups (Guides and brushes).
Grooms saved before: expressions using noise, fbm, turbulence, voronoi, remap, spline
or cycle now give SeExpr's values (noise returns 0 to 1; the old -1 to 1 noise is snoise).
Simulations and their bakes come out slightly different; bake again.
0.7.0 (October 13, 2026)
- GroomLab is free, for everyone. Every feature and every export (Unreal, Unity, glTF, Alembic, USD, cards), for any use, commercial included: no license key, no watermark. If it helps you, Support GroomLab (in the GroomLab menu, the app's Help menu and Blender) opens Ko-fi.
- Native RenderMan. A RenderMan 27 procedural grows the groom from its file at render time in prman, with GroomLab's color and highlight calibrated to PxrHairColor and PxrMarschnerHair, and an example scene. In RenderMan for Maya (Maya 2024 to 2026), GroomLab > Export > RenderMan Procedural sets it up (experimental: tested through prman, not yet in Maya). See Other renderers.
- The highlight on HairColor. Specular and roughness (and their randomness) moved from RenderData to HairColor's new Highlight section, with a cuticle tilt that moves the highlight along the hair, in the viewport, the app, Arnold and RenderMan.
- Other renderers. A new docs page on rendering GroomLab hair in Redshift, V-Ray and others through Alembic and USD, with each renderer's hair shader settings.
Grooms saved before: RenderData's specular and roughness are now HairColor's (set them there;
the shipped presets have moved). Scenes saved with a license tag may log one harmless warning about
an unknown license attribute when they open.
0.6.0 (October 13, 2026)
- Sculpt generated guides. Grow dense, even guides from a few hand guides (Scatter + Interpolate, then ToGuides), add a Sculpt node after them, select it and brush: comb, curl, lift, smooth. Change anything upstream (comb the sparse guides, change the density) and the dense guides regenerate with your sculpting kept on top: each edit is stored as bends along the guide, so a hook stays a hook on the new shape. In Maya and the app. See Node graph.
- Ponytails in one node. The new Tie node pulls hair along the scalp into a tie and out as a
tail: set its
center(Pick a vertex or locator) andradius, pick which hair with Affect, and style the tail after it (it marks the tail, so a Curl can curl just that). Two Ties make pigtails; a second one down the tail makes a bubble ponytail. - ToGuides colors its guides. Generated guides draw in their ToGuides node's
colorwhen you brush them, so they stand apart from your hand guides. - Bake Node to Guides takes the output. Bake the groom's final result into guides, as the other Utilities already offered.
- Nearly every node on the GPU. Dragging a parameter or brushing guides now stays on the GPU through Bend, Direction, Transform, Displace, Twist, Smooth, RestoreLength, BlendNeighbors, Tangle, Flow, Jiggle, MeshCut, Tie and the Sculpt node too, and through any node restricted by an Affect mask (a Curl on a Tie's tail, a Noise on a Group). Before, any of these handed the preview back to the CPU from that node on.
- Fixed in the app: after some edits the lookdev view could draw self-shadowing from stale data (shadows too light) and, now and then, crash.
0.5.1 (October 12, 2026)
- Fixed: Graph Editor edits not reaching the viewport. A node off to the side (its output unplugged, or a copy with a free input) made the Graph Editor stop applying every later edit, so the viewport kept showing the old graph: an unplugged, bypassed Clump still showed its clumps. Only a node the output is made from can hold the graph back now; the others' problems show as a note in the editor's status line.
0.5.0 (October 12, 2026)
- Move a groom onto another character. Transfer Groom to Scalp is now a window with two views, the groom's scalp and the new mesh side by side. Click matching points on both (ears, temples, crown, nape) and Markers: warp maps the groom feature to feature onto a head of other proportions, somewhere else, turned or scaled. Guides turn and scale with the head around them; parts, flow and painted maps follow. Also Markers: align (the same head moved or scaled), UV (meshes sharing their UV layout) and the old closest point and fit bounds. See Utilities.
- Marker pairs like Wrap. Pair N is the Nth point on each side, placed in any order; Ctrl+click deletes a pair, drag slides a point, Symmetry X mirrors as you click, and the pairs are saved with the groom for the next transfer. The app has the same window.
- One undo. A transfer is one Ctrl+Z in Maya, color sets and maps included, and the window follows it back.
0.4.0 (October 12, 2026)
- Hair that doesn't pass through itself. The new SelfCollide node pushes hair apart wherever
it is packed tighter than real hair can be, so layers rest on one another and volume builds up
behind the ears and at the crown. Hair with room to spare stays put. Lower
packingfor more volume. See Node graph. - Static. The new Static node charges the hair: the outer layer puffs out, tips lift away from the head and clumped locks fray into single strands, like dry winter hair.
- Parts found for you. Set a Part node's
partsFromtoautoand it finds the parts where you combed the hair apart, no drawing needed.splitAnglesets how sharp a split must be. - Attributes made clear. Params that name an attribute now say whether they Write or Read it. Reading ones list only the attributes that actually reach the node, with the node each comes from; a node that would overwrite an earlier node's attribute warns you, and one that reads a name nothing writes gets the grey i badge. See Node graph.
- All on the GPU. Dragging the new nodes' params, and brushing guides before them, run on the GPU in Maya and the app.
0.3.0 (October 11, 2026)
- Wet hair in one node. The new Wet node clumps hair the way water does: small clumps near
the root merge into bigger ones toward the tip, every small clump inside one big clump. One
slider,
wetness, sets how far it goes (animate it to dry the hair);clumpSizeandlevelsset the clumps' sizes. It replaces stacking Clump nodes by hand, and the wet add-on preset now uses it. See Node graph. - Wet hair looks wet. Hair shades darker, more saturated and glossier where it is wet, in the
viewport, the app and Arnold, with nothing to set: from the Wet node, a Simulate with rain or
water, or an Attribute named
wetness(to wet hair by a map without clumping it). - Curls that hang under their weight. Curl's new
weightlets curls stretch where hair hangs below them: loose near the root, tight at the tip, narrowing as they stretch, like real ringlets. Hair lying flat or pointing up keeps its curls;weightDirectionsays which way is down. 0 by default, so existing grooms look the same. - Both brush and drag on the GPU. Dragging
wetnessorweight, and brushing guides under a Wet node or a weighted Curl, run on the GPU in Maya and the app. - Fewer nodes. Comb is now part of Bend: with
alongdirection, Bend lays the direction onto the scalp and never bends past it, soangle180 combs every strand that way. Straighten is now part of Smooth, whose newscale(the size of the bends it removes, a share of the strand's length) replacesiterations: small values take out kinks, 1 straightens. Smooth now looks the same at any point count. The Comb, Smooth and Straighten brushes are unchanged. - Light hair matches Arnold. Blonde tips were about a quarter brighter in the viewport and the app than in Arnold; they now match.
- Several scalps, fixed. Each scalp now subdivides at its own level, hair on a moving extra scalp jiggles with it, and scripted brush strokes reach every scalp.
- Blend takes curls. Blend no longer stops with "a and b must be the same strands" when a Curl
on one side added points to tight curls (
blend_two_lookson small scalps).
Grooms saved before: Comb and Straighten nodes no longer load. Rebuild a Comb as a Bend with
along direction (angle 180 for a full comb) and a Straighten as a Smooth with scale 1.
Smooth's iterations is gone: set scale (the default, 0.09, looks like the old default).
0.2.2 (October 11, 2026)
- Brushing creatures on the GPU. Grooms whose clumps take their centers from a second Interpolate, and Interpolate keeping clear of an animated scalp, now brush on the GPU too: on a wolf groom a dab went from about 220 ms to about 35 ms, in Maya and the app.
- Softer collisions. Collide's
softnessandsmoothingmake hair curve onto a floor or another collider and slide along it instead of folding flat against it. Both are 0 by default, so existing grooms look the same. See Node graph. - No freeze on OpenGL. The first GPU stroke after an update used to stall for up to a minute while the graphics driver compiled GroomLab's GPU code. It now compiles in the background when a groom first draws (brushing stays on the CPU until it's ready) and is cached, so later sessions start at once.
- A smoother app. Orbiting and parameter drags hold 60 fps, a CPU brush stroke no longer slows the window (strokes and commits run off the UI thread), and the first frame shows in a quarter of a second instead of four. Click a tool's name as well as its icon.
- Placing guides freezes nothing. Solo new guides is now an option on Place and Draw, off by default; Shift+click with a brush still solos a guide.
0.2.1 (October 11, 2026)
- No more hang on the first groom. Creating the first groom of a Maya session no longer freezes Maya for several seconds: the hair shader compiles in a quarter second, once.
- New brushes. Direction turns guides toward the way you stroke. Noise adds jitter that builds up with each stroke (Ctrl smooths it out). Width and Density paint how thick the hair is and where it grows; the first stroke makes and wires the map. Works in Maya, the app and Blender. See Guides & brushes.
- Brush curves. Root to tip sets how much of the brush reaches each part of a guide: style the ends and leave the roots alone. Falloff curve draws the brush's edge.
- Symmetry on the scalp itself. Symmetry can mirror across the scalp's own left and right (Topology), not only world X: right for a head that is turned or not quite symmetric.
- Solo guides. Shift+click a guide with a brush to solo it (the rest freeze, so you shape only it); Shift+click off a guide, or Unfreeze All beside Freeze, to free them all. The Select tool works the same way, and symmetry keeps the mirror guides live too.
- Several scalps on one groom. Ears, a head and a body, or eyebrow patches, in one groom: Pick on the Scalps row of the Attribute Editor's Inputs. See Node graph.
- Library looks. The Reference node brings in another groom file's strands or guides. See Node graph.
- Render overrides.
renderDensity,renderWidthScaleandrenderLengthScalechange the render without touching the viewport. See Rendering. - Viewport fixes. Cards are shaded like the strands they stand for, light hair stays bright with the light behind the camera, and hair shading works with anti-aliasing off.
October 10, 2026
- Clump centers from a dropdown. Clump's
centersFromsays where its centers come from:pick(it picks its own among the strands),inputPointsorinputCurves(whatever you feed itscentersinput). Connectingcentersswitches it toinputPoints. A low-density Scatter wired straight intocentersmakes procedural clump centers. See Node graph. Grooms saved before: it replacesshapeFrom; setcentersFromtoinputCurveswhereshapeFromwascenters,inputPointswhere it wasstrands. - No hidden params. A param never hides because an input is connected; what a panel shows follows its dropdowns only.
- Uneven ends with Length.
fractionpicks a share of the strands, and each loses a random share of its length betweentrimMinandtrimMax. Grooms saved before: it replacesrandomness; settrimMaxto the oldrandomnessfor a close look. - Looping Wind and Jiggle. Turn on
loopand setloopStartandloopEndfor a seamless cycle: game idles and looping clips. See Motion & simulation. - Curl spacing.
frequencyProfiletightens or loosens the curls along the strand, andspacingRandomvaries their spacing smoothly, so curls bunch and open as real ones do. - Pick with an eyedropper. The Attribute Editor's Pick buttons (scalp, rest mesh, colliders) wait for you to click the mesh in the viewport or the Outliner. Scalp and ColliderMesh nodes in the Graph Editor have a Mesh field with the same eyedropper.
- Faster brushing. The next stroke starts while the last one is still being committed. Wind, Switch and Blend now preview on the GPU while you brush, and keeping strands clear of the scalp is 13 to 15% faster.
- Clumps small to large. The
cinematic_hairandeveryday_simpresets now chain the fine Clump before the big one, so each lock reads as clumps of clumps. Do the same in your own grooms.
October 9, 2026
- GroomLab's own hair shading in the viewport. Strands in Maya's viewport are lit with
Marschner's three highlights from their pigment and RenderData's specular and roughness,
calibrated against Arnold's
aiStandardHair. The hair shadows itself, light scatters through it, and each strand shades a little apart from its neighbours. The standalone app draws the same look. See Rendering. - Clump level of detail. Seen from afar, each clump draws only as many strands as cover its pixels: big grooms draw several times faster, and closer to the render. Renders and exports always take every strand.
- Curl rebuilt. One curve at any resolution, with no kink at the root: 40 or 256 segments make the same curl. Where a strand has too few points for a turn, Curl adds them.
- The GPU previews most of the graph. Dragging a slider or brushing guides draws on the GPU through Interpolate, Length, Clump, Noise, Curl, Width, Part, Gravity, Flyaway and Collide; letting go commits on the CPU, so renders and exports are unchanged.
- No stall on release. Commits run off the UI thread, and the GPU preview stays on screen until they land.
- Painted maps without seams. Brushing and smoothing cross UV seams, and a dab stays on the surface it lands on (never the back of an ear). See Painting maps.
- Lighter at a million strands. Interpolate's memory at a million strands went from 208 MB to 37 MB, and Follow Scalp playback is carried by the GPU.
October 8, 2026
- Maya 2023 to 2027, in beta. The same download holds a build for each Maya from 2022 to 2027. Maya 2022 is tested; the newer builds are in beta. See Installation.
- The GroomLab app, in beta. Groom, look-dev and export without Maya, on Windows. See GroomLab app. GroomLab for Blender is in beta too.
- Strand width as coverage. Thin strands and tapered tips read in the viewport as they render, and a thinned preview reads as dense as the full groom.
- The preview is the render, thinned. Preview density changes only how many strands show; each one is the render's strand, clumps and curls alike.
- Smooth randomness. Dragging Scatter's or Clump's
randomnessmoves each root or clump smoothly from its even spot to its random one instead of jumping, and past 1 (up to 2) for more clumps and gaps. Tangle's partners change smoothly too.
October 7, 2026
- One naming scheme. A node's random spread is
randomness, a param's own spread is<param>Random, and every node saysstrength,alonganddirection,profileandclumpChannelthe same way. - Fewer, clearer nodes. Bend stands strands up at the root, Clump does all the clumping, and
Map is the one map node. HairColor, Bands and FeatherColor split the color work; RenderData holds the
highlight (
specular,roughness) and the opacity (opacityProfile). Instance and Scales are separate nodes, and Length only trims (Transform'sscalelengthens). See Node graph. - Strands stay out of the scalp. Interpolate's Keep clearance keeps every strand at least as high above the scalp as its guides.
- Regions. Paint areas in a color each and name the map in Interpolate's
regionMap: strands blend only their own region's guides. See Regions. - Right at any scale. Every length param fits the scalp's size, Maya's sizes are in centimeters whatever the UI's unit, and a new groom's default graph is fitted to its scalp.
- Straighten. A node that pulls strands toward a straight line from the root, lengths kept.
Blender
GroomLab for Blender 5.2 (beta) - installation, the Groom Tools and graph editor in Blender, rendering in Cycles and EEVEE, the attributes on the hair object, and current limitations.
Guides & brushes
The guide hierarchy (primary and child guides), tube guides (shaped tubes and Fill Tubes), guide groups with show/hide and color, freezing and soloing guides, the grooming brushes and their settings, and how a groom scales with its scalp.