Free Electron Documented Operators
Common Operator Info
FE SurfaceNormalOp


Adds or replaces normals and/or tangents on the points and/or primitives.


The Input Surface is subject to these changes. An optional Driver Surface can be provided to stabilize the otherwise arbitrary first normal for curve primitives. Currently, the driver's du value is used to align the root normal. As such, a driver must have UV values in order to be useful.

Reference versions of the first two inputs can be specified to help stabilize the normals applied to the root points on curves. If all four inputs are specified, the presumably unanimated Input Reference and Driver Reference are used to find the coordinates on the surface nearest to each root point. These coordinates are then used to find the du values on the presumably animated Driver Surface.


A Point Group can be specified to isolate the effects to the points of a group.

The new data can be created for Point Normals and/or Primitive Normals.

Selecting Custom Point Normal will write to point normals to an alternate Attribute. Selecting Custom Primitive Normal will write primitive normals to an alternate Attribute. Selecting Custom Point Tangent will write point tangents to an alternate Attribute.

If no other method produces a starting normal for each curve, the Default Normal will be used

Activating Add Point Normals and/or Add Point Tangent will compute the appropriate data and add the corresponding point attributes to the output. Likewise, Add Primitive Normals will add one normal per primitive.

For curves, if no driver surface is provided, using Follow Bend will try to generate normals pointing outward from the general bend of each curve.

For curves, using Ortho ensures that the normal for each point is perpendicular to the segment connecting that point and the next point (except the last point on the curve which uses the prior segment).

For curves, a Random Spin will add additional rotation to the starting normal of each curve.

For curves, Lock Roots will retain the existing normal for the first point in each input curve, if found.


tested in Houdini

Web page, Copyright 2008-2021, Free Electron Organization