๐ฅ Boost Your Blender Grooming Workflow with GroomFlow Pro!
GroomFlow Pro is an advanced, guide-driven grooming add-on for Blender designed for professional character artists. Say goodbye to heavy viewport lagging and messy root alignment. Generate dense, production-ready hair and fur effortlessly using a clean, non-destructive pipeline.
๐ Key Features
Guide-Based Strand Generation
Create dense, high-quality hair strands from lightweight guide curves. Maximize visual fidelity without the performance limitations of traditional systems.Surface-Locked Distribution (BVHTree-Powered)
No more floating roots or mesh clipping! Our continuous surface projection system perfectly snaps every strand root directly onto high-curvature areas like eyebrows, eyelashes, and beards.Optimized & Non-Destructive Workflow
Keep your guide curves completely separate from the generated output. Enjoy a clean, mirror-professional pipeline ideal for character hair, fur, and Unreal Engine groom preparation.
๐ฆ What's Included?
GroomFlow Pro Blender Add-on (
.zip)Official User Guidebook & Documentation
Future updates and bug fixes
๐ Official Online Guidebook & Documentation For a detailed guide, step-by-step tutorials, and technical documentation of GroomFlow Pro, please visit our official site:
๐ https://mayalhc.github.io/GroomFlow_Pro
๐ What's New in v1.8.3
- Fix: Clump Noise changed the groom when Child Resolution changed
- The break-up was drawn per POINT rather than along the strand, so adding points packed in more and more zig-zag. Going from 6 points to 64 made the strands about ten times longer and moved them 12.9 mm on average on a 17.5 cm head - and raising the resolution never settled on an answer.
- The noise is now a function of where you are along the hair, so the shape holds still: at Child Resolution 32 the groom is within 0.11 mm and 0.6% of length of the same groom at 64, and it converges from there.
- Grooms that use Clump Noise will look slightly different from before. The strength of the effect is unchanged.
- Fix: the GPU and CPU paths built different grooms with Clump Noise on
- The noise phase came from
fract(sin(...)), which keeps none of its low bits across float precisions - the two paths disagreed by more than the noise itself was worth (0.126 against an effect of 0.065). An integer hash replaces it and the paths now agree to 4e-5, which is rounding.
- This showed up on machines without GPU compute, and on grooms large enough to fall back to the CPU path.
- Faster builds and lighter live ticks
- The children and the guides were stacked into one new array and then transformed into another - two full copies of every point in the groom. They are now written straight into a buffer that is allocated once and reused.
- The root snap's correction was added to a strided slice numpy cannot vectorise. It now rides along with the transform that was already being done, on a contiguous buffer: the snap stage went from 112 ms to 46 ms at a million strands.
- At a million strands a build is 321 ms down to 290 ms and a live tick 334 ms down to 277 ms. Not a single point of the groom changed value.
- Fix: Clump Noise changed the groom when Child Resolution changed
- The break-up was drawn per POINT rather than along the strand, so adding points packed in more and more zig-zag. Going from 6 points to 64 made the strands about ten times longer and moved them 12.9 mm on average on a 17.5 cm head - and raising the resolution never settled on an answer.
- The noise is now a function of where you are along the hair, so the shape holds still: at Child Resolution 32 the groom is within 0.11 mm and 0.6% of length of the same groom at 64, and it converges from there.
- Grooms that use Clump Noise will look slightly different from before. The strength of the effect is unchanged.
- Fix: the GPU and CPU paths built different grooms with Clump Noise on
- The noise phase came from
fract(sin(...)), which keeps none of its low bits across float precisions - the two paths disagreed by more than the noise itself was worth (0.126 against an effect of 0.065). An integer hash replaces it and the paths now agree to 4e-5, which is rounding.
- This showed up on machines without GPU compute, and on grooms large enough to fall back to the CPU path.
- Faster builds and lighter live ticks
- The children and the guides were stacked into one new array and then transformed into another - two full copies of every point in the groom. They are now written straight into a buffer that is allocated once and reused.
- The root snap's correction was added to a strided slice numpy cannot vectorise. It now rides along with the transform that was already being done, on a contiguous buffer: the snap stage went from 112 ms to 46 ms at a million strands.
- At a million strands a build is 321 ms down to 290 ms and a live tick 334 ms down to 277 ms. Not a single point of the groom changed value.