# Possible error with the Principal Curvature component?

See demo files attached, and read the panel above the slider.
It looks like the MIN principal curvature is sometimes larger than the MAX principal curvature value.This is either an error or I’m going by a different definition of the principal curvatures.

(using Rhino 6)

Thanks!

principal_curvature_demo.3dm (44.5 KB) principal_curvature_demo.gh (15.2 KB)

I know that @GregArden has been working on this for V7.
Maybe he can tell you more.

Sounds good!
Im not sure exactly how the component is computing the values, but I think all that needs to be done is:

if G, and K are the first and second fundamental forms, respectively, then use the quadratic formula to solve for the eigenvalues of K - lmbda * G. The min principal curvature will correspond to the “minus” root, and the max principal curvature will coorespond to the “plus” root in the quadratic formula.

Mike,
Assuming the grasshoppper component works the same as the Curvature command in Rhino. The maximum is the principal curvature with the largest absolute value. This makes the ordering independent of the orientation of the surface. That is the maximum principal curvature is the direction in which the surface curves the most, regardless of weather it is curving “up” toward the normal or “down” away from the normal.

Is this what you are seeing?

Greg, thank you for the clarification. However, I am not seeing that (see attached screenshot from the demo files i uploaded). C1 is defined to be the minimum principal curvature, and C2 is defined to be the maximum principal curvature.

Looks to me like the grasshopper component is returning
C^1 - Principal curvature with maximum absolute value
C^2 - Principal curvature with minimum absolute value
K^1 - Direction corresponding to C^1
K^2 - Direction corresponding to C^2

Contrary to the documentation of the component.

The RhinoCommon interface is probably the source of this confusion since it provides no indication about what it’s doing

Please let me know if you agree with my conclusions.

Yes, I agree, Thanks!

I fixed the documentation in C++ SDK and Rhino Common and made a bug report to get the grasshopper documentation fixed.
RH-63134 Curvature Component outputs don’t match description

Thanks for your help Mike J