Introduction
The Interpolate Hair Curves preset in Blender is a tool for hair grooming that generates dense hair strands from a few guide hairs. Introduced in Blender 3.5 and maintained in Blender 4.x, it allows artists to efficiently create detailed hairstyles by duplicating and blending guide curves on a surface mesh. This tool saves time by populating areas with thousands of hair strands that smoothly transition between guide hairs, resulting in natural hair flow and volume without manual work. It is especially useful for 3D artists and studios needing realistic and stylized hair.
The preset is mainly used to create child hairs from parent guide hairs, offering more control over the style than previous particle systems. It is ideal for creating complex styles, with smoother transitions between groomed sections. Compared to other nodes like Generate Hair Curves and Duplicate Hair Curves, Interpolate Hair Curves offers more refined control by blending several guides for natural variations. In contrast, Duplicate Hair Curves duplicates guide hairs without blending, making it faster but less flexible.
Blender’s latest releases include these presets in the Essentials Asset Browser, allowing for easy drag-and-drop functionality. Interpolate Hair Curves is often combined with other grooming nodes for a complete workflow, enabling faster, high-quality hair creation..
Understanding Inputs
The Interpolate Hair Curves node group comes with a variety of input sockets that control how guides are converted into full hair. It’s important to plug in the correct data for each input to get the expected results. Below we break down each Input Socket and what it means in practice:

Geometry Input Socket (Guide Curves)
The Geometry Input in Blender’s Interpolate Hair Curves node is where you provide the guide curves (parent hair strands) that will be used to generate new hairs. Only curves are affected by this node, and other geometry will be ignored. Typically, these guide curves are sparse hair strands that you have groomed or drawn on the scalp, and they define the hairstyle’s shape, length, and direction. Without input here, the node cannot generate hair. The guide curves can be created manually or using the Generate Hair Curves node. It is important to ensure that the guide curves are properly attached to the surface, often through an Attach Hair Curves to Surface step, so that the interpolation works correctly.
Surface Input Socket
The Surface input in Blender’s Interpolate Hair Curves node defines the base mesh (scalp or surface) where the hair lies. There are two ways to specify the surface: a direct Surface Geometry input and a Surface Object input. If both are provided, the geometry input takes priority. You can either plug in the scalp mesh geometry or select the scalp object from the modifier panel’s object picker.
The surface is essential for determining where new hairs are spawned and how they are attached. Ensure the surface and guide curves share the same space, and if using geometry, it should match the mesh of the guide curves. The Surface Input essentially directs the node on where to grow the interpolated hairs. If the surface is not provided, the interpolation may fail or yield incorrect results. Additionally, a UV Map is required alongside the surface.
Surface UV Map Input Socket
The UV Map input requires a valid UV map on the surface mesh for hair attachment and consistent placement. Hairs are rooted using UV coordinates, which allow them to stay in place even if the surface deforms. The Interpolate Hair Curves node won’t work without a UV map. Ensure the UV map is unmodified, typically the default one used during grooming. The UV map also helps control hair growth when using the Mask Texture input. Always select the scalp’s UV map for proper hair generation.
Surface Rest Position Input Socket
The Surface Rest Position toggle tells the node to treat the surface as undeformed when attaching hair. This is important if the surface will be deformed later, such as when a character’s scalp moves with a rig. In such cases, generate and interpolate hair in the rest pose, then use a Deform Curves on Surface node to bind the hair to the moving scalp. Enabling this ensures correct hair root placement relative to the base geometry, avoiding issues like double transformations or sliding when the scalp deforms. Use this option if you plan to deform the surface after hair interpolation.
Follow Surface Normal Input Socket
The Follow Surface Normal option makes hairs point outward from the scalp’s surface, respecting its curvature. If disabled, hairs follow the guide’s orientation, which may cause unnatural angles. It’s generally best to keep it on for natural hair growth and to reduce clipping.

Part by Mesh Islands Input Socket
The Follow Surface Normal option makes hairs point outward from the scalp’s surface, respecting its curvature. If disabled, hairs follow the guide’s orientation, which may cause unnatural angles. It’s generally best to keep it on for natural hair growth and to reduce clipping.
Interpolation Guides Input Socket
The Interpolation Guides input defines how many nearby guide curves influence each new hair strand. A lower value (e.g., 1) makes hairs closely follow a single guide, while a higher value (e.g., 3) blends multiple guides for smoother transitions. More guides create more natural-looking hair but can increase computation cost. A typical range is 3–5 guides for natural blending without losing distinct flow.
Distance to Guides Input Socket
The Distance to Guides setting determines the radius around each guide where new hairs can be spawned. A smaller distance limits hair generation close to the guide, while a larger distance allows hairs to be influenced further away. This setting works with hair density and the number of interpolation guides to ensure even coverage without excessive overlap. Adjusting this helps prevent gaps or unwanted blending between distant guides, ensuring smooth, localized hair placement. It’s useful for uneven guide layouts and for fine-tuning how far the guides’ influence extends.
Poisson Disk Distribution Input Socket
Enabling the Poisson Disk distribution method ensures hair roots are spaced evenly by enforcing a minimum distance between them. This prevents clumping and bald spots, creating a more uniform spread. It’s particularly useful for short fur or closely cropped hair, where unevenness is noticeable. While it slightly reduces the total number of hairs and may increase computation time, it provides a more consistent distribution. When disabled, hair placement is random, which may be suitable for manual grooming or if root clustering isn’t a concern. Poisson Disk is a quick way to achieve even hair distribution.
Density Length Input Socket
The Density input controls the overall number of generated hair curves on the surface, determining how many hairs are created per area. It’s a scalar value that adjusts hair count, with higher values resulting in more hairs and lower values producing fewer hairs. This input affects hair thickness or sparsity, but does not directly control hair length, which is influenced by guide curves. Density can be adjusted using a number, weight map, or texture, with white representing full density and black indicating no hairs. While higher density values can affect performance, they provide the base for the final render count.
Density Mask Input Socket
The Density Mask input modulates hair density across the surface by applying a factor, typically from a vertex group or painted weight map. It acts as a multiplier on the main Density input, allowing control over where hair grows. For example, areas with weight = 0 will have no hair, while areas with weight = 1 will have full density. This input is useful for creating regional variations in hair density, such as thinner hair along edges or temples. It’s more performance-friendly than using an image texture mask, as it operates per vertex/face. The Density Mask enables precise control over hair placement, ideal for tasks like shaping hairlines or fades.
Mask Texture Input Socket
The Mask Texture input allows you to control hair placement using an image texture. By connecting an Image Texture node with UV coordinates, you can remove hair roots based on the texture after the initial distribution. The texture is sampled using the Surface UV Map, so it aligns with the scalp’s UV layout. For example, a black-and-white image can designate areas with no hair (black), full hair (white), or partial hair (gray). This is useful for creating detailed patterns or hairlines.
The Mask Texture provides finer control than vertex weights but can be slower due to image sampling. It is recommended to use a combination of Density Mask for broad control and Mask Texture for fine details. Ensure your UVs are well-unwrapped, as the Mask Texture only removes hairs, not adding new ones in areas with zero density. This input is optional, and if not connected, no texture-based culling occurs.

Viewport Amount Input Socket
The Viewport Amount is a factor that reduces the displayed hair density in the 3D viewport for faster interaction. It multiplies the effective density for preview purposes; for example, setting it to 0.1 shows only 10% of the hairs, while the full density is still used for rendering. This helps improve performance when working with high-density hair that could slow down real-time editing.
By default, Blender sets this to a reasonable value (like 0.3 or 0.5), but it can be adjusted. Setting it to 1.0 shows all hairs, while 0.0 hides them. It’s often used with lower values during grooming and raised to 1.0 for final checks. This input can be keyframed or dynamically adjusted. It does not affect the final render, only viewport performance, and can make heavy scenes more manageable.
Seed Input Socket
The Seed is a random value that affects the randomness in hair interpolation, such as the distribution of hair roots, orientation, and length variations. Changing the seed alters the random placement of hair while keeping other parameters the same. It doesn’t change the guide shapes or interpolation method, just the randomness within the defined pattern. This is useful to avoid clumping or identical hair distributions, especially for multiple characters. The seed is typically an integer and can be keyframed or adjusted to get the best visual result. It doesn’t impact performance but provides variation without changing other settings.
Understanding Outputs
The Interpolate Hair Curves preset provides several outputs that you can use for further processing or rendering. After interpolation, the node group outputs the new hair curves and some useful data about them:
Geometry Output Socket
The Geometry output contains the generated hair curves, including interpolated child hairs and possibly the original guides. It is used for further grooming or rendering steps, such as connecting to nodes like Clump Hair Curves or Set Hair Curve Profile. This output represents dense hair curves, where each curve corresponds to a hair strand with control points. The geometry can be treated as any curve in Blender, allowing material assignments, conversions to mesh, or further deformation. It is typically already attached to the surface, following the rest position. The Geometry output is the primary result and is used as input for the next stage of the hair node chain.
Guide Index Output Socket
The Guide Index output is an integer field that shows the index of the main guide curve for each generated hair strand. This output is crucial for nodes that require the relationship between children and guides, such as the Clump Hair Curves node, which uses the index to group hairs by their original guide. The values correspond to the guide indices in the input geometry (e.g., 0–9 for 10 guides). The Guide Index is used in downstream nodes like Clump or Braid Hair Curves for grouping, and can also be applied to custom setups, such as creating different materials for hairs from different guides. This metadata is essential for advanced grooming, ensuring consistent effects like clumping and curling.
Surface Normal Output Socket
The Surface Normal output provides the normal vector at each hair root on the surface mesh, representing the direction of the scalp at the hair attachment points. It is useful for shading (e.g., driving anisotropy direction or slightly offsetting hairs along the normal), and for geometry operations (e.g., orienting objects at hair roots or generating hair alignment).
This normal is computed when attaching the hair to the surface, especially if Follow Surface Normal is enabled. While it doesn’t affect appearance by itself, it can be used for tasks like instancing objects on hair roots or handling hair-surface collisions. It also aids in deformations, like binding hair to a moving surface. If converting curves to mesh ribbons, the normal helps prevent twisting. In summary, the Surface Normal output is useful for shading and deformation but is not always needed unless required by a subsequent node.
The typical workflow for using the Interpolate Hair Curves preset involves preparing guides, interpolating children, optionally deforming/attaching to an animated surface, further styling, setting thickness/profile, and outputting for rendering.

Faster Hair in Blender using PixelHair 3D Hair Asset Collection
PixelHair is a 3D hair asset collection offering pre-made, high-quality hairstyles ready to use in Blender projects. Developed by Yelzkizi, it provides an alternative to manually interpolating hair curves by offering a library of realistic hair assets like afros, braids, and dreads, which can be customized for characters. PixelHair assets save time by providing realistic hair with proper thickness, volume, and flow, eliminating the need to start from scratch. The assets are built using Blender’s particle hair system for compatibility and come with a fitted hair cap and pre-styled particles, which can be further customized in Particle Edit mode.
Yelzkizi also offers guides on modifying PixelHair assets to fit various characters. The collection is ideal for studios needing to create multiple characters quickly or indie creators seeking AAA-quality hair without spending weeks on grooming. Plans to integrate geometry-nodes-based hair into PixelHair will allow for even more flexible editing in future versions, combining the ease of pre-made assets with procedural control.
PixelHair is also integrated with Unreal Engine (UE5) and MetaHuman, allowing easy export of assets to Unreal for real-time use. These assets can be used in games, VR, or cinematics, benefiting from Unreal’s hair shader and physics. PixelHair’s assets are optimized for low-density hair caps and a shrinkwrap setup to fit characters in game engines. This integration allows for realistic hair in real-time applications, streamlining workflows for character artists.
Overall, PixelHair complements Blender’s geometry nodes hair system. It provides a fast and reliable solution for creating realistic hair while maintaining flexibility for further customization, making it invaluable for production environments where speed is crucial.
Frequently Asked Questions (FAQs) with Answers
To further clarify the usage of the Interpolate Hair Curves node (and related hair workflows), here are 10 common questions and detailed answers:
- Why is my Interpolate Hair Curves node not generating any hair (or only one strand)?
The Interpolate Hair Curves node may not work if the Surface geometry or UV Map is missing. Ensure the scalp mesh, UV map, and guide curves are correctly connected, and check that the density is not set to 0. - What’s the difference between using Generate Hair Curves and Interpolate Hair Curves? They both create hair.
Generate Hair Curves creates hair from scratch based on density, while Interpolate Hair Curves uses guide curves for more controlled styling. They can be combined for detailed grooming. - When should I use Duplicate Hair Curves instead of Interpolate Hair Curves (and vice versa)?
Duplicate Hair Curves is fast and simple, ideal for fur or grass. Interpolate Hair Curves blends guides for smoother, more natural hair. Use Duplicate for speed, and Interpolate for realism. - Why do I need a UV map on my surface for these hair nodes?
The UV map is crucial for anchoring hair roots to the surface, ensuring they stay fixed even when the mesh deforms. Without it, hair won’t attach properly. It’s also needed for mapping Mask Textures to control density. Always use a UV map to stabilize hair placement on the surface. - How can I control the density and placement of the interpolated hairs?
Control hair density with Density Value, Masks, and Texture Masks. Use guides for placement, Poisson Disk for even spacing, and Sculpt Mode for final adjustments. - Hair grooming is slow – how can I make the viewport performance faster while working with interpolated hair?
To improve performance with high hair counts, reduce the Viewport Amount, use Simplify settings, lower guide count, and turn off unnecessary options like Poisson Disk. These steps help keep previews smooth. - The character’s head is moving but the interpolated hair slides or doesn’t follow properly. How do I make the hair stick during animation?
Enable Surface Rest Position and use the Deform Curves on Surface node to ensure hair moves with the deformed surface. Check the modifier order and keep the UV map consistent to prevent hair from lagging or sliding. - What do Interpolation Guides and Distance to Guides really do? How do I choose good values?
Interpolation Guides controls how many guides influence each hair, and Distance to Guides sets their influence radius. Adjust these values to balance smoothness and coverage, with minor tweaks usually being enough for good distribution. - I’m seeing some interpolated hairs clipping through the mesh (going inside the head) or weirdly sticking out at sharp angles. How do I fix that?
To prevent hair clipping, enable Follow Surface Normal, adjust guides, or use the Attach Hair Curves to Surface node with an offset. Increase surface resolution or reduce interpolation guides if needed. For isolated issues, manual cleanup with Curve or Sculpt tools works. - What is the Guide Index output, and how do I use it for things like clumping or braiding?
The Guide Index links each hair to its guide curve, ensuring controlled clumping or braiding. It helps maintain natural hair behavior and can be used for visualization or material assignment.
Best Practices
Creating a realistic and efficient hair groom with the Interpolate Hair Curves preset involves more than just plugging in nodes. Here are some best practices to keep in mind for optimal results:
- Guide Foundation: Ensure proper placement and grooming of guide curves for desired hair flow. Fewer, well-placed guides work better than many random ones.
- Inputs: Always plug in Surface geometry/object and UV Map. If deformed, use Surface Rest Position and Deform Curves on Surface for stability.
- Density Masks: Use Density Mask and weight paint for control over hair thickness in specific areas.
- Viewport Amount: Set Viewport Amount low (0.1-0.25) during grooming for better performance, then increase it for final render.
- Follow Surface Normal: Keep Follow Surface Normal enabled for natural hair orientation, and use Attach Hair Curves to Surface if needed.
- Partitions for Complex Styles: Use Mesh Islands or vertex groups for complex styles like parted hair to keep sections separate.
- Other Hair Node Groups: Use Clump, Frizz, Curl, Smooth, and Profile nodes for realism, ensuring each step is subtle for a natural look.
- Hair Length and Segments: Guide length determines final hair length. Adjust control points and use Resample Curves for variation in smoothness or cost.
- Transformations and Scale: Ensure the character scale is 1:1 and transforms are applied before grooming to avoid issues.
- Test Render: Use different Seed values to avoid repeating patterns or artifacts in random distribution.
- Stay Updated: Keep up with Blender updates and resources, and reuse tuned node groups from the asset library.
By following these best practices – balancing procedural control with artistic input – you can achieve fast, realistic hair grooms that are optimized for both visual quality and performance. Hair creation can be challenging, but Blender’s tools combined with smart techniques make it significantly more manageable.
References & Additional Resources
- Blender Manual – Hair Geometry Nodes: Interpolate Hair Curves (Inputs, Outputs, usage) – Blender v3.5+ Documentationdocs.blender.org. (Official definitions of each input/output and how the node works within the new hair system.)
- Blender 3.5 Release Notes – New Hair System: Overview of the curves-based hair generation in Blender 3.5, introducing assets like Interpolate, Generate, and Duplicate Hair Curvesblender.org. (Details the purpose of each preset and notes on performance.)
- Blender Stack Exchange – Guide Index for Clumping: Discussion on using the Guide Index output of Interpolate Hair Curves to drive the Clump Hair Curves nodeblender.stackexchange.com. (Clarifies how child strands get linked to guides and how to use that for secondary effects.)
- RebusFarm Blog – Blender 3.5 Hair Assets: Summary of Blender’s hair node assets and their categoriesrebusfarm.netrebusfarm.net. (Reiterates when to use Interpolate vs Duplicate, etc., and emphasizes ease of use with built-in assets.)
Recommended
How to Download MetaHuman: The Ultimate Step-by-Step Guide to Accessing Digital Humans
How to Animate a Camera in Blender
Can you control a camera in Blender with game controllers?
How do I reset the camera position in Blender?
What Is the Purpose of the Camera View in Blender?
How do I focus the camera on an object in Blender?
How do I change the camera’s near and far clipping distances in Blender?
Can you animate multiple cameras in one Blender project?
How to Install and Set Up The View Keeper in Blender
The Ultimate Guide to Hair for Games: Techniques, Tools, and Trends