Gaussian Curvature Evaluation. Struggling!

Hello everyone,

I am trying to draw a Gaussian curvature map using the 3D-scanned peanut-shaped image. However, I can’t generate a correct curvature image for some reason.

I presume that curvature is calculated based on each small isocurve/surface (total #=2710) or something like that, instead of a global geometry.

Would you be able to help me solve this issue?

Thank you! (4.1 MB)

I guess adjusting the Gaussian Range numbers might get you a more ‘overall’ display–try 1 / -1?–but I guess the question is what are you expecting to get? The rippiles in the individual surfaces have relatively more curve to them than the overall shape. Object might need to be reverse-engineered as simpler smoother shapes.

Hi JimCarruthers,

All the Gaussian curvature map is very discretized, instead of giving a very smooth map. I can picture that between two half spheres there should be a blue-colored area which indicates negative Gaussian curvature to indicate saddle points, and on both spheres, I should see positive Gaussian curvature.

Do you happen to know how to make the object to show simpler smoother shapes? I would like to patch/merge all the surfaces into a single one.

Hello - what happens if you click on ‘Auto range’ (hidden in your screen shot)?


Well if you set the curvature values to something around 1 and -1 you see what you’re looking for, just with a bunch of ‘noise’ from the individual patches. Do you need it smoother than that? Just merging the surfaces isn’t going to work, you need to rebuild the shape. For that I would probably start with a Revolve, then doing some point-editing to adjust it to fit the input better.

@pascal Autorange seems to set the value to much extreme.


This generally captures what I expect. Although I presume that the two spheres should show some different colors to indicate slightly higher(or lower) positive curvature by reflecting boundary conditions, instead of the value of ~1 which is a perfect sphere.

I definitely need to smooth them out. Too much noise due to too many discretized surfaces. I am wondering what results the revolving step would give the object.

Hello - Keep in mind that Gaussian display is dependent on the units in the file as well But as a test, you might select one surface and look closely at it - it may simply not be very smooth - can you post a part of your file?



@pascal Thank you very much for your comment. the compressed file is included in my main post. (

Sorry- I see it now.
@romanismi - the individual surfaces are indeed very lumpy!


@pascal Couldn’t agree more! All the surfaces are created from 3D scanning of the object with the resolution of 1mm.

Hello - I don’t know if this is close enough to be useful but it might -
-Two spheres, fit to points from a lot of points extracted (ExtractPt) from the surfaces.

  • a line connecting the centers of the spheres
  • a section curve
  • a new clean curve drawn (quickly, here) on top of the section
  • a revolved surface from that curve on the axis between the sphere centers.

Surface 1_maybe.3dm (105.5 KB)

Even if that is only approximately correct, you can see the vast difference in ‘Auto Range’ of curvatures


@romanismi - here it is as IGES - Surface 1_maybe.igs (196.2 KB)



Thank you very much, Pascal. I am trying to download Rhino 6 to open the file since I can’t read it. I am waiting for an email to download the program.

Would you mind if you upload a screenshot of the image?

@pascal, Wow! I am genuinely impressed by the quality of your work…
I think you have created a closed structure by doing the series of task. I am wondering if I can cut that off by half to have a similar structure like the original and draw a curvature map.

I have two more files. If your time allows and the processing is not too much of an hassle, would it be okay to send you two other files? I am still waiting for the download link…

Hello - I’d much rather ‘teach you how to fish’ if at all possible.


@pascal That really makes sense. Although I am not specialized in this program, it would be better to learn how to process the image in case I need to work on those 3D scanned images again. May I mention you when I hit some issues while following your instruction?

Hello - sure,of course - ask questions as you need to, I’m happy to help if I can.

@romanismi - also, it is interesting that my two estimated spheres look like they may, in some original, be meant to be tangent to one another -


which might point towards a more ‘ananytical’ reverse engineering of the theoretical shape…


@pascal Thanks. Quick question, you used the revolving function to create 3D structures from curves along the axis. However, I suspect that this wouldn’t be applicable to this non-symmetric system. Learning how to process this image will be a lot more challenging?

Hello - my guess is the underlying shape is the same or similar and that you’d make that and then trim with curves shaped like those three-point stars - getting the curves onto the surface accurately will be a challenge but not impossible, there are tools in Rhino to help.



This is the original SolidWorks file. And I used the design to fabricate those membranes in the lab.

The discrepancy between the model and the 3D scanned image may rise from the fact that the former is 2D and the 3D scanned image is 3D as well as a real-life sample with some boundary conditions under volumic deformation.



I am afraid that I cannot reveal details of this project until submission but the gist of your interpretations is correct. Then I should be more careful about post-processing the discretized membrane image. I am concerned that revolving the surface might generate an overly simplified surface.

However for the continuous membrane, the image created by revolving should be sufficient.

(I did not know that there is a max. number of threads I can write on a daily basis for a new user…)