Hi Forum, I'm new here.
I have been trying for around 2 years (off and on) trying to be able to create a color curvature map for some scanned .stl files for analysis for a hobby project.
Basically i have been going around in circles trying every free or free trial program that could potentially do this, and every time not being able to do it.
Recently I had another attempt using cloudcompare, I didn't get much luck at doing it directly with the .stl mesh file, but when I imported it to cloudcompare as a .ply Point Cloud I managed to at least get some curvature maps happening, but across all axis.
Across all axis isn't much use to me for what I need to analyze, what I really need is just across the Y axis, I have found some information/instructions online about how to do it, but it all seems a bit vague and not ''Idiot proof'' enough for me, so far, what I have tried has not been able to achieve this curvature map along just one axis.
I am sure that with the right workflow formula it probably is relatively simple.
If someone could put some light on the subject of how to do it, it would be much appreciated and put an end to the 2 years of struggling with this.
Thanks in advance
Curvature color map just along one axis of pointcloud
-
Advance2026
- Posts: 6
- Joined: Fri Jan 23, 2026 12:49 pm
Re: Curvature color map just along one axis of pointcloud
Hum, I guess I see what you mean 'mathematically', but I don't see how you could achieve this with CloudCompare as is. You would necessarily have to patch the code at some point (unless I'm missing something obvious).
Daniel, CloudCompare admin
-
Advance2026
- Posts: 6
- Joined: Fri Jan 23, 2026 12:49 pm
Re: Curvature color map just along one axis of pointcloud
I did find some information/instructions about a possible way/ways of doing it, I could be that they are incorrect and it doesnt work, but if it does work I also have many holes in my knowledge to achieve it.
Also the plug-in that it mentions, the M3C2 Plug-in, I have tried to click on it just to try and see what it would do, it exists in the plug-in menu, but I cant select it if I click on it because it is not selectable presumably because i dont have the pointcloud curvature map configured or selected, or saved as the right file type- or something like that.
So, from what i read, it should be possible, but i could just be a few secuential clicks away from getting it to work.
the number 2 instruction I also couldnt get to work satisfactory, when i did this is just sliced away part of the object/pointcloud
I am going to paste here the instructions that I found below, but I they are just not quite ''idiot proof'' for a novice like myself.
In CloudCompare, generating a curvature map strictly along one specific axis (e.g., longitudinal curvature vs. cross-sectional) is not a single-click native feature, as curvature is typically calculated based on a local 3D neighborhood. However, you can achieve this effect by following these steps:
1. Pre-Processing the Mesh
Because curvature tools in CloudCompare primarily target point clouds, you must first convert your mesh to a high-density cloud:
Select your mesh in the DB Tree.
Go to Edit > Mesh > Sample Points. Increase the point count to ensure high resolution.
2. Isolate the Axis of Interest (2D/Profile Method)
If you need curvature specifically along a single axis (e.g., only along the X-axis), you should use the Cross Section tool to extract a profile:
Go to Tools > Segmentation > Cross Section.
Use the tool to slice the cloud along your desired axis (e.g., Z-axis to get a horizontal profile).
For a "map" of the entire surface along one axis, you can use the Repeat slice function within this tool to create multiple parallel profiles.
3. Compute Curvature
Once you have your sampled cloud or specific profiles:
Go to Tools > Other > Compute geometric features (or Tools > Statistics > Curvature in older versions).
Select the desired curvature type:
Mean Curvature: Average of principal curvatures.
Gaussian Curvature: Product of principal curvatures.
Normal Change Rate: A faster approximation of curvature.
Crucial Step: Set the Local neighborhood radius. This radius should be small enough to capture fine details but large enough to ignore sensor noise.
4. Projecting/Filtering Along an Axis
If you want the curvature values to only represent changes in one direction, you can use the M3C2 plugin:
The M3C2 plugin allows you to specify a fixed direction (e.g., "Vertical" or a custom X/Y/Z vector) for distance and change calculations.
This is often used to ignore variations in other directions (e.g., ignoring horizontal curves while measuring vertical gradient).
5. Visualization and Export
The result will be a new Scalar Field on your cloud.
Adjust the color scale in the Properties panel to highlight curvature intensity.
Use Edit > Scalar Fields > Filter by Value if you need to isolate specific high-curvature areas.
Export the data by selecting the cloud and clicking the Save icon to output as a .bin, .ply, or .csv (ASCII) for further analysis in Excel or R
Also the plug-in that it mentions, the M3C2 Plug-in, I have tried to click on it just to try and see what it would do, it exists in the plug-in menu, but I cant select it if I click on it because it is not selectable presumably because i dont have the pointcloud curvature map configured or selected, or saved as the right file type- or something like that.
So, from what i read, it should be possible, but i could just be a few secuential clicks away from getting it to work.
the number 2 instruction I also couldnt get to work satisfactory, when i did this is just sliced away part of the object/pointcloud
I am going to paste here the instructions that I found below, but I they are just not quite ''idiot proof'' for a novice like myself.
In CloudCompare, generating a curvature map strictly along one specific axis (e.g., longitudinal curvature vs. cross-sectional) is not a single-click native feature, as curvature is typically calculated based on a local 3D neighborhood. However, you can achieve this effect by following these steps:
1. Pre-Processing the Mesh
Because curvature tools in CloudCompare primarily target point clouds, you must first convert your mesh to a high-density cloud:
Select your mesh in the DB Tree.
Go to Edit > Mesh > Sample Points. Increase the point count to ensure high resolution.
2. Isolate the Axis of Interest (2D/Profile Method)
If you need curvature specifically along a single axis (e.g., only along the X-axis), you should use the Cross Section tool to extract a profile:
Go to Tools > Segmentation > Cross Section.
Use the tool to slice the cloud along your desired axis (e.g., Z-axis to get a horizontal profile).
For a "map" of the entire surface along one axis, you can use the Repeat slice function within this tool to create multiple parallel profiles.
3. Compute Curvature
Once you have your sampled cloud or specific profiles:
Go to Tools > Other > Compute geometric features (or Tools > Statistics > Curvature in older versions).
Select the desired curvature type:
Mean Curvature: Average of principal curvatures.
Gaussian Curvature: Product of principal curvatures.
Normal Change Rate: A faster approximation of curvature.
Crucial Step: Set the Local neighborhood radius. This radius should be small enough to capture fine details but large enough to ignore sensor noise.
4. Projecting/Filtering Along an Axis
If you want the curvature values to only represent changes in one direction, you can use the M3C2 plugin:
The M3C2 plugin allows you to specify a fixed direction (e.g., "Vertical" or a custom X/Y/Z vector) for distance and change calculations.
This is often used to ignore variations in other directions (e.g., ignoring horizontal curves while measuring vertical gradient).
5. Visualization and Export
The result will be a new Scalar Field on your cloud.
Adjust the color scale in the Properties panel to highlight curvature intensity.
Use Edit > Scalar Fields > Filter by Value if you need to isolate specific high-curvature areas.
Export the data by selecting the cloud and clicking the Save icon to output as a .bin, .ply, or .csv (ASCII) for further analysis in Excel or R
-
Advance2026
- Posts: 6
- Joined: Fri Jan 23, 2026 12:49 pm
Re: Curvature color map just along one axis of pointcloud
After hours and hours of searching on the internet about how to achieve a curvature color map over one axis of a mesh or point cloud, rather surprisingly it seems to be something that is incredibly difficult to do (especially for a non expert).
I am thinking that perhaps i have to adapt my expectations and think of a work-around.
After going around in circles more and more and watching youtube video after youtube video and reading countless posts and information I had the idea of now trying to get 2D cross sections and then try to do the curvature analysis on the 2D cross sections.
I am guessing that it would be splines and curvature combs to visualize the curvature, although if I can pull some numeric data of curvature radius of the cross sections that would be extremely useful.
Is cloudcompare able to do something like this?
I am thinking that perhaps i have to adapt my expectations and think of a work-around.
After going around in circles more and more and watching youtube video after youtube video and reading countless posts and information I had the idea of now trying to get 2D cross sections and then try to do the curvature analysis on the 2D cross sections.
I am guessing that it would be splines and curvature combs to visualize the curvature, although if I can pull some numeric data of curvature radius of the cross sections that would be extremely useful.
Is cloudcompare able to do something like this?
Re: Curvature color map just along one axis of pointcloud
So you can indeed perform cross sections (and repeated ones if you want a systematic approach - see https://www.cloudcompare.org/doc/wiki/i ... ss_Section).
But then, you will be computing the local curvature (with 'Compute geometric features' - see https://www.cloudcompare.org/doc/wiki/i ... c_features) on a more or less '2D' point cloud. Not sure how accurate/valid this will be. Worth a try probably... And you'll get a scalar field (one curvature estimate per point).
The last bit about M3C2 is a bit weird because M3C2 is a plugin to compute distances (https://www.cloudcompare.org/doc/wiki/i ... 2_(plugin)). So you would need to compare multiple clouds (slices?). Once again, I'm not sure what you'll achieve this way.
But then, you will be computing the local curvature (with 'Compute geometric features' - see https://www.cloudcompare.org/doc/wiki/i ... c_features) on a more or less '2D' point cloud. Not sure how accurate/valid this will be. Worth a try probably... And you'll get a scalar field (one curvature estimate per point).
The last bit about M3C2 is a bit weird because M3C2 is a plugin to compute distances (https://www.cloudcompare.org/doc/wiki/i ... 2_(plugin)). So you would need to compare multiple clouds (slices?). Once again, I'm not sure what you'll achieve this way.
Daniel, CloudCompare admin
-
Advance2026
- Posts: 6
- Joined: Fri Jan 23, 2026 12:49 pm
Re: Curvature color map just along one axis of pointcloud
Thanks Daniel for the response.
Yes, I looked into the M3C2 and I couldn't really see how it would work either, But was worth asking, just in case.
For the 2D cross section, it does need to be accurate, more so, to give me at least more than anything the areas of maximum curvature, and although more work I can stitch it all together manually if I have to, or even do a color by numbers type of color map manually if I can pull enough information from the cross sections.
So, it seems like in theory it could work, so I'll have to get started on it, and see what happens.
Thanks for the links, I'll have a good look at those before I come back asking more questions.
Thanks again for the help, really appreciate that you took time out of your day to respond.
Yes, I looked into the M3C2 and I couldn't really see how it would work either, But was worth asking, just in case.
For the 2D cross section, it does need to be accurate, more so, to give me at least more than anything the areas of maximum curvature, and although more work I can stitch it all together manually if I have to, or even do a color by numbers type of color map manually if I can pull enough information from the cross sections.
So, it seems like in theory it could work, so I'll have to get started on it, and see what happens.
Thanks for the links, I'll have a good look at those before I come back asking more questions.
Thanks again for the help, really appreciate that you took time out of your day to respond.
-
Advance2026
- Posts: 6
- Joined: Fri Jan 23, 2026 12:49 pm
Re: Curvature color map just along one axis of pointcloud
Making some progress!!!!
Although making the cross sections on cloudcompare I had some problems doing it, I'm not exactly sure why the instructions didn't work, I must have had something not quite right. One thing that I have learned from Mesh/Cad software is that if you are missing one tiny bit of knowledge whilst trying to do something it can make progress impossible.
Anyway I ended up using another program, and I managed to get some really good cross sections, I have to say that they look great, really smooth and accurate!
At the very least I'd be able to print them out at scale 1:1 and use that as a rough guide- i presume that wouldn't be terribly complicated.
Anyway I want to import these cross sections into cloudcompare for some curvature analysis,
A couple of quick questions,
what file format would be best for this?
For an imported cross section, is cloudcompare relatively straight forward for doing curvature combs on these cross sections for visual analysis?
Also is it possible to get a numerical value (radius curve) for these cross sections?
Although making the cross sections on cloudcompare I had some problems doing it, I'm not exactly sure why the instructions didn't work, I must have had something not quite right. One thing that I have learned from Mesh/Cad software is that if you are missing one tiny bit of knowledge whilst trying to do something it can make progress impossible.
Anyway I ended up using another program, and I managed to get some really good cross sections, I have to say that they look great, really smooth and accurate!
At the very least I'd be able to print them out at scale 1:1 and use that as a rough guide- i presume that wouldn't be terribly complicated.
Anyway I want to import these cross sections into cloudcompare for some curvature analysis,
A couple of quick questions,
what file format would be best for this?
For an imported cross section, is cloudcompare relatively straight forward for doing curvature combs on these cross sections for visual analysis?
Also is it possible to get a numerical value (radius curve) for these cross sections?
Re: Curvature color map just along one axis of pointcloud
Well, I don't really know myself!
And for the format, it depends on the slices you generate? Are they slices of point cloud or meshes? If it's the later, are they polylines or something else? If it's polylines, you could use SHP or DXF, but then I don't think CC will be able to compute any curvature directly on polylines (but you can sample points on the polylines). If it's clouds or meshes, you have plenty of choices.
And for the format, it depends on the slices you generate? Are they slices of point cloud or meshes? If it's the later, are they polylines or something else? If it's polylines, you could use SHP or DXF, but then I don't think CC will be able to compute any curvature directly on polylines (but you can sample points on the polylines). If it's clouds or meshes, you have plenty of choices.
Daniel, CloudCompare admin
-
Advance2026
- Posts: 6
- Joined: Fri Jan 23, 2026 12:49 pm
Re: Curvature color map just along one axis of pointcloud
I tried DXF but couldn't get anything going with it.
I was told somewhere else in order to do it I needed to convert the cross sections to sketches, so thats what I did.
Sometimes trying to get this done, I end up going around in so many circles with so many different apps/programs that I lose track of exactly what I have done.
I was told somewhere else in order to do it I needed to convert the cross sections to sketches, so thats what I did.
Sometimes trying to get this done, I end up going around in so many circles with so many different apps/programs that I lose track of exactly what I have done.