Page MenuHome

Mesh Bevel Node
Confirmed, NormalPublicDESIGN


  • Input weights and vertex group are replaced by a single attribute input on either the point or edge domain. The expected type would be float, with a range depending on the "Width Type" drop-down.
  • The custom profile is moved to a separate node that creates a curve geometry based on the widget data, the bevel code accepts actual curve data for the profile. This has the benefit of convenience and flexibility, which was much harder to do in the context of a modifier.
  • The node creates a boolean attribute with values set to true on the newly created attribute, which will allow operations only on the newly created geometry.
Related Nodes
Replaces the "Angle" limit method
Related to T86243. A quick way to create a custom curve profile
Further Questions
  • Is the name of the newly created boolean attribute exposed, or is the name just a default name?
  • How does D6386 fit into this design? Maybe constant radius bevel should really be a separate node?

Changes to bevel code itself will be necessary to implement this design.
A few of the changes I know will be necessary at this point are:

  • The bevel node would need to sample a curve for the custom profile rather than a CurveProfile. A first version could not support custom profiles (before curves are supported in geometry nodes).
  • Passing the influence data to BMesh may require some thought. Since it may be interpolated or converted by the attribute API, it may need to be passed as an array of values.
  • The bevel code's handling of selecting edges to bevel would need to be improved for the generalized "Amount" input.

Event Timeline

Hans Goudey (HooglyBoogly) changed the task status from Needs Triage to Confirmed.Tue, Mar 23, 3:37 AM
Hans Goudey (HooglyBoogly) created this task.

small humble suggestion: instead of buttons for 'vertex/edge' make it enum (i think it will be more future proof, when geometry nodes will support enums for node input/socket)....

I don't think there will be more than those two options on the enum any time soon, and it can always be changed in the future, so I'd rather keep it as an expanded enum.