Page MenuHome

New hair object type
Confirmed, HighPublicTO DO

"Love" token, awarded by Brandon777."Love" token, awarded by Schamph."Love" token, awarded by Edmis."Love" token, awarded by leonumerique."Party Time" token, awarded by sam_vh."Love" token, awarded by Yegor."Love" token, awarded by chironamo."100" token, awarded by Dir-Surya."Like" token, awarded by verbal007."Love" token, awarded by juantxo."Love" token, awarded by BlackRainbow."Love" token, awarded by bintang."Like" token, awarded by TheRedWaxPolice."Love" token, awarded by d.viagi."Love" token, awarded by brilliant_ape."Love" token, awarded by Shimoon."Love" token, awarded by Bit."Love" token, awarded by CobraA."Love" token, awarded by xrg."Love" token, awarded by wo262."Love" token, awarded by lcs_cavalheiro."Like" token, awarded by duarteframos."Love" token, awarded by andruxa696."Like" token, awarded by Constantina32."Love" token, awarded by jmztn."Love" token, awarded by mistajuliax."Love" token, awarded by bnzs.
Authored By
Dalai Felinto (dfelinto)
Aug 21 2019, 3:44 PM


Status: Basic data type and rendering available in master when using WITH_NEW_OBJECT_TYPES=ON, but no modifiers or edit mode yet to make it actually useful.


Commissioner: @Daniel Bystedt (dbystedt)
Project leader: @Sebastián Barschkis (sebbas)
Project members: @Campbell Barton (campbellbarton) @Philipp Oeser (lichtwerk)


Big picture: A node and modifier based hair object to replace the existing system. No new functionalities at first.

Use cases:

  • Existing hair editing possibilities.


  • New Hair datablock (similar to Mesh) with hair curves and curve keys.
  • Hair objects would link to a mesh object to position hair on.
  • Edit mode like old particle edit mode
  • Modifiers (initial distribution, alembic cache read, child hairs, curls, physics, ...)

Engineer plan:

  • Rendered directly as hair by Cycles and Eevee.
  • Instancing objects along hair can be supported too, similar to instancing for verts/faces.
Work plan

Time estimate: ?

Milestone 1

  • New hair object data type
    • Add new datablock and object type
    • Custom data storage, custom data masks
    • Default hair radius and shaping parameters
    • Solve problem with not enough FILTER_ID bits
  • Mesh attachment (to deform hair along with mesh)
    • Decide on algorithm
    • Consider efficiency and GPU acceleration for deformation
  • Rendering
    • Cycles
      • Basic integration
      • UV, color, texture coordinate attributes
    • Eevee and workbench
      • Basic integration
      • Radius attribute (rather than fixed shape parameters)
  • Attribute support
    • UV
    • (Vertex) Color
    • Generated texture coordinates
    • Batch cache generation
  • Python API
    • Positions and radius
    • Attributes
  • Viewport drawing and selection
    • Selection engine integration
    • Display options (display random % of hair, ?)
  • Dependency graph copy-on-write integration
    • Refactor mesh runtime storage to be reusable by other objects types
    • Automatic instancing for objects without modifiers, like meshes
    • Sharing custom data arrays between original and evaluated when possible

Milestone 2

When it actually becomes useful and can replace particle hair.

  • Hair modifiers
    • Modifier stack
    • Distribution modifier
    • Shaping (curls, ..) modifier
    • Physics simulation modifier
    • Child hair modifier
    • Deform along with mesh modifier
    • Alembic cache reading modifier
  • Hair edit mode (adapt particle edit mode)
  • Conversion of old particle hair to new hair

Branch: new-object-types

Relevant links:


Event Timeline

Dalai Felinto (dfelinto) lowered the priority of this task from 90 to Normal.Aug 21 2019, 3:44 PM
Dalai Felinto (dfelinto) created this task.

I would be happy to give feedback to developers, since I'm doing a lot of grooming at work (both blender and other softwares).

Full google doc proposal (this proposal could be further developed)

same proposal on right click select

You could integrate HairNet in Blender 2.81


This creates a Hair from Curve

Demo: Creating Braid in Blender by Nazar Noschenko

If the particles Hair system will be reworked could we give more features for Scattering things around ?

This is how 95% of users will use the hair system for. And we need some IMPORTANT missing features. Like camera clipping, bounding box for preventing intersection and get clean border, distribute the particles by slope and altitude, a better link between a cycle/eevee material to the particle distribution, and many more really important features/flaw...I try to regroup everything Scatterinng related in this topic. I will do a proposal when I found everything.

Brecht Van Lommel (brecht) renamed this task from New hair system to New hair object type.Jan 17 2020, 4:48 PM
Brecht Van Lommel (brecht) updated the task description. (Show Details)
Dalai Felinto (dfelinto) triaged this task as High priority.Jan 28 2020, 12:06 PM
Dalai Felinto (dfelinto) updated the task description. (Show Details)