Surface and Curve Eval: Some Inverted Normals?


Hello World,
I have a little problem in Grasshopper. Let’s say I have a sphere surface or a spline curve drawn in the viewport. I then pipe these objects in EvaluateSurface or EvaluateCurve to get a point and normal at a given parameter location t or uv. In both cases, I do get points on the curve and the surface, but the normal don’t point consistently in the same direction. For the surface, for example, some point inwards, some outwards. For the curve, there is an analogous problem. What do I need to do to make sure I get consistent normal across a surface / curve?

Thanks a lot for any help…



Could you post the surface and curve that give you the problem?

Surface normal direction is determined by the cross product of U and V parameter directions. Since they should be consistent along the surface, the normal direction should too.

For the curve: did you mean tangent vector? There is no normal vector for a curve. Only a tangent. But that should be the same.

Final thought: Maybe you have a curve folded in on itself. that can happen when you join overlapping curves.


It sounds like what you are describing is a degenerate curve or surface. There are several ways curves and surfaces become degenerate. For instance, one way is stacked control points.

There has been a long standing request to have Rhino identify degenerate geometry as “bad objects” so that they can be found with the check command.