Skip to content

Hair System

Sculpt Mode

The new curves object type has a sculpt mode meant mostly for hair grooming

Surface Attachment

  • Curves can be attached to a mesh surface with UV coordinates and a UV map (899ec8b6b8, 12722bd354).
    • Operators are available in sculpt mode to snap curves to the nearest or deformed mesh surface (50869b408b).
    • Note: Many tools require a UV map to function. The quality of the map does not matter, but it must not have overlapping faces.
  • Add Empty Hair in the add menu creates curves with the active object as a surface and its active UV map for attachment (434521a9e2, 2232855b50).


  • The curves object supports the geometry nodes modifier, which can be applied. All existing curve nodes are supported (96bdd65e74).
    • A new geometry node deforms curves based on the deformation of the surface mesh they are attached to (05b38ecc78).
      • Note: The node will be generalized in the future by exposing more inputs or turning it into a node group.


  • Curves are rendered like hair particles, with support for Workbench, EEVEE, and Cycles.
  • The object mode selection outline works for curves objects (a8f7d41d38).
  • Curves can be converted to and from a hair particle system, and from the old curve type (94a54ab554, 3656e66ac2, edc92f779e).
  • Note: Rendering the new curves object is not fully supported yet. For example, curves are always rendered as Catmull Rom curves. More information can be found here.

Geometry Nodes

Performance Improvements

  • Curve nodes have been ported to the new curves type, with performance improvements anywhere from 3x to over 10x.
    • The Set Spline Type node can also skip processing when all curves have the correct type already (9e393fc2f1).
    • Fillet Curve (2551cf9087).
    • The Subdivide Curve node supports Catmull Rom curves now as well (9435ee8c65).
  • The Separate XYZ and Separate Color nodes can be over 20% faster when not all outputs are used (b8bd304bd4, 0473462241).
  • The UV Sphere primitive is parallelized, with a 3.6x improvement observed for high resolutions (7808ee9bd7).
  • Evaluating the input field in the Capture Attribute is skipped if the output is not needed (c980ed27f0).


  • The Interpolate Domain node allows evaluating a field on a different domain inside of another field, avoiding the need for a separate "Capture Attribute" node (ba1e97f1c6, ea4b1d027d).


  • The UV Unwrap and Pack UV Islands nodes open the possibility of creating and adjusting UV maps directly inside of geometry nodes (4593fb52cf).
  • The Mesh To Volume node acts like the existing modifier of the same name (1516f7dcde, 0ea282f746).
  • Three new nodes can be used for path-finding across mesh edges.
    • The Shortest Edge Paths node finds the best path along edges from every vertex to a set of end vertices (c8ae1fce60).
    • The Edge Paths to Curves node generates a separate curve for every edge path from a set of start vertices. The path information usually generated by the "Shortest Edge Paths" node (c8ae1fce60).
    • The Edge Paths to Selection node generates an edge selection that includes every edge that is part of an edge path (c8ae1fce60).
  • The Mesh Boolean node now has an output field that gives just the intersecting edges (e2975cb701).


  • New Instance Scale and Instance Rotation nodes provide access to instance transformations (3a57f5a9cf, 14fc89f38f).

Primitive Nodes

  • The Volume Cube primitive node allows sampling a field in a dense bounding box to create an arbitrary volume grid (838c4a97f).
  • The Points node creates any number of point cloud points, with position and radius defined by fields (9a0a4b0c0d).


  • Effector forces on rigid bodies are independent of simulation substeps again (f4d8382c86).

This has been a regression since 2.91, so the fix may affect user files with combinations of effectors and rigid bodies. Forces can be scaled down inversely to substeps to maintain the effect. If the scene uses 10 substeps for rigid body simulation (the default), effector force should be scaled by 0.1.