Page 1 of 1

functionality enhancement suggestions

Posted: Tue Jul 02, 2013 10:15 am
by andrewo
Hi Daniel,

Cloud Compare is an excellent software application. I have been using it for about a year now but still consider myself to be a novice but thanks to those kind folk that put up the English translation for the documentation I have made a lot of progress. I think it has applications beyond the original idea which is why I'm respectfully contributing this list of ideas.

First some background...I am an Engineering Surveyor and I have dealt a lot with 3-D data, including point clouds from laser scanners, aerial LIDAR and similar. In fact, there are 3-D coordinates in everything I do.

Some enhancements ideas:

*Small Clouds: I consider a cloud to be 2 or more data points. Small clouds don't behave well in Cloud compare. RANSAC, Connected Components and some other functions either crash the app or hang or go off in an endless loop when this is the case.

*Selected Sets: It would be nice to be able to work with a selected set rather than having to segment the cloud. What you need here is some database functionality. Since CloudCompare is an analysis tool, it could benefit from conceptual thinking from the GIS world. Filtering scalar fields is a good start - I use that a lot. Being able to do some simple SQL to grab points into a set would be very helpful. This ties in with my comment on attributes below.

* Point ID: It would be nice if Ascii import could import the "labels: for points. I don't expect to be able to render labels for a large cloud - that would be silly. They can be accessed in point collection, but I'd like to be able to use my own labels as they occur rather than think my way through a zero based collection based on point order. They need to be alpha-numeric. This relates to the selected sets comment above.

* 3-d Line: There is a lot of functionality for planes, spheres etc, but there is no line primitive.There are case where I would like to be able to model a line of best fit on observed points and compare that to another edge. For example, I have a current task to compare columns in a structure and we are measuring multiple points on the edge of steel members. It would be good to implement a number of objects: segment (two point), string (>2 points) etc. The mirror to this in the primitive space would be objects such as lemniscates, cubic spirals, helixes etc.

*Attributes and strings: It would be nice to be able to connect common points in a cloud according to alpha and/or numeric values in the cloud. This is common in surveying software where we code a point by an alpha/numeric code to indicate a feature type such as "edge of footpath". We would code the data with the edge as alpha and give it a string number. Then when the software encounters the data it builds lines according to the order they are in the file and the string number. Additional codes can be used to start and end strings or do more complex things.

* Data Entry: It would be nice to be able to key the data for a point or points, to simply add few point to the cloud. A case where this would be advantageous is to enable to user to add in additional control data rather than having to suck in another ascii file. Alternatively in a small cloud, you may wish to edit the coordinates of a point

* Alignments: Nice functionality but...it would be nice if a report was produced that explained the scale, rotation and translation, mentioned the residuals, and did some statistical tests to help the user determine if it was a valid transformation.

* Transformations: It would be nice to be able to apply conformal and affine transformations. The current matrix system requires complex calculation outside the software to compute the 4x4 matrix from known parameters. It would be nice to apply scale,omega,kappa,phi,tx,ty,tz directly.

As I said, I think its a fantastic application and these are only enhancement suggestions.

Best regards,

Andrew O'Dempsey

Re: functionality enhancement suggestions

Posted: Tue Jul 09, 2013 7:57 am
by daniel
Impressive !

I'll add your suggestions to the TODO list.

For the small clouds issue, don't hesitate to make a precise report each time you encounter the problem. As we almost never "play" with small clouds, it's very likely that such problems occur from time to time. Moreover it's generally very easy to fix.

For the alignment tool, some pieces of information are already displayed in the Console (resulting RMS and transformation mainly).

And regarding the "selected sets" and "alpha" coding of points, we already thought of adding such mechanisms in the past. But as memory consumption and speed are major concerns for CC (which was designed to work with millions of points right from the beginning) we haven't found any acceptable solution yet.

Best regards,