Page MenuHome

Geometry Nodes: Curve Support Implementation
Confirmed, NormalPublicTO DO

Authored By
Hans Goudey (HooglyBoogly)
Tue, Apr 6, 7:17 PM
"Love" token, awarded by damian."Like" token, awarded by GeorgiaPacific."Love" token, awarded by lone_noel."Love" token, awarded by someuser."Love" token, awarded by victorlouis."Love" token, awarded by Erindale."Love" token, awarded by TimBrown.


Currently I'm just treating this as a personal project, but I thought it would be nice to have some public place to track progress.

Initial Design:

  • Basic design for data structures
  • Conversion from DNA Curve struct
    • Bezier
    • NURBS
    • Poly
  • Spline attributes
    • Cyclic
    • Length
    • Resolution
  • Spline evaluation
    • Position calculation
      • Bezier
      • NURBS
      • Poly
    • Tangents
    • Normals
      • Z-up method
      • Minimum twist method
      • Tangent method
    • Evaluate control point indices and interpolation factors
  • "Extrude Profile" node AKA Curve to Mesh Node
    • Extrude single vertex
    • Extrude another spline
    • Set edge sharp flag based on sharp control points
    • Use evaluated spline radius sort of working
    • Fill Caps option
  • Sample Curve node
  • Trim Curve node
  • Curve profile primitive node
    • Conversion from CurveProfile to DCurve
    • Add a "Cyclic" option
    • Option to draw without fill unless cyclic
  • Point attributes
    • Position
    • Bezier Handles
    • Radius
    • Tilt
  • Curve Deform node
  • Add Point node
  • Change Direction node
  • Curve modifier stack changes

I've limited this list to what I think the design is clear about. Other features may take a bit more design work before implementation.
The WIP changes are in the geometry-nodes-curve-support branch.

Event Timeline

Hans Goudey (HooglyBoogly) changed the task status from Needs Triage to Confirmed.Tue, Apr 6, 7:17 PM
Hans Goudey (HooglyBoogly) created this task.
Hans Goudey (HooglyBoogly) renamed this task from Curve Support Implementation to Geometry Nodes: Curve Support Implementation.Tue, Apr 6, 7:20 PM
Hans Goudey (HooglyBoogly) updated the task description. (Show Details)
Hans Goudey (HooglyBoogly) updated the task description. (Show Details)

One thing that I would love to see included in the curve support is the option for natural parameterisation of specifically beziers. This lets you get even spacing along the curve which is a huge bonus when using curves for modelling tasks like positioning lamp posts or pillars or flights of stairs etc.