Cockroach - PointCloud Processing for Rhino

The normal estimation. Then you will need to clean up mesh by removing faces that are approximated.

Sorry to bother you, but I still don’t understand completely. Is the normal estimation the one in the screenshot? Or am I missing something? I set all off them to false. and it’s the same result as before.
And to remove the face, I can’t use cockroach, right?

The normal estimation is good, but now you need to remove faces from clouds like this because your clouds are incomplete. The D Output gives the mesh vertex values.

Sample File.gh (121.8 KB)

2 Likes

Now I understand. Thank you very much!!! Appreciate it a lot!

@Petras_Vestartas Thank you for the plugin!
I am trying to use Mesh Skeleton on this mesh:
Mesh_Skeleton_Test.gh (353.3 KB)
But instead of a centerline I seem to be getting a network of mesh edges:


Result in red above, original mesh in black below.
What am I doing wrong?

You need to use the skeleton component from Cockroach plugin.
Also remesh the mesh because skeleton components works by contracting initial mesh.

The implementation comes from here, and it is the most simple method I used:
https://doc.cgal.org/latest/Surface_mesh_skeletonization/index.html

Mesh_Skeleton_Test.gh (360.7 KB)

2 Likes

Thank you! My bad, had only installed the Rhino plugin. I used Triangulate and it worked.
The Triremesh component you are using is v. 7 only?

True. actually this works directly without remeshing:

1 Like

Re: skeletonization algorithm. Did you consider wrapping the VMTK centerline skeletonization method? Is it slower than the CGAL method?

It does seems like CGAl one by contracting mesh by smoothing.
Do you see a source code of the VMTK since the github repo is down?

VMTK Centerline uses inscribed spheres. Here should be the source files.

2 Likes

Thanks I see that there are sources in C++, that I can use. Good stuff, lets see how easy it will be to compile.

Hi Petras, thanks for your great work on Cockroach. I can see on Github that it may be refactored/rewritten at some stage. I don’t know if this is the best place, but I had a few points of feedback;

  • Previews in Display modes other than ‘wireframe’ appear black.
  • There’s no easy way to adjust the point size of Pointcloud previews (I don’t want to adjust colour, but it would be helpful to be able to adjust point size).

Apart from that, I’m really impressed with it’s performance for point clouds in the GB size range.

2 Likes

I rented a BLK 360 G2 for a few days and made some tests -

This is AMAZING !

5 Likes

Hi @Patt,

Thank you for your notice. You can also open on github in the future.

We will add it to our to do list.

Best,
Petras

1 Like

Hi Andreas
Wow, very nice mesh !
What settings did you use in Cockroach ?

I pretty much just followed Petras example above,

Downsample: -1 (none)
Normal Neighbors: 10
Poisson Depth: 12
Iso value: 9

I think I have to do a few more experiments, since I still do not have a clear Idea what each setting is actually doing and how it impacts the quality / calculation time.

Hi Andreas,
Thank you for those figures, I just tried it on some scan data from a FaroS70 and it works beautifully.
Regards,
Mike.

A colleague told me that he faces issues / some edge cases with Cockroach Mesh Boolean operations from time to time.
I found this interesting section in a kind of old part of the documentation of cgal:


Introduction (cgal.org)

My uneducated guess is, that it might be worth trying to a more precise implementation and then check again if these rare issues still occurr.

@Petras_Vestartas
Do you think that using a more exact implementation (if available for the mesh boolean) could help with that?
Would it be possible to expose different implementions for a problem in the grasshopper plugin?

Hi Martin,

Thanks for the notice, I face it too from time to time, specially for coincident edges, vertices, faces…
I am also aware of inexact and exact representations.

The issues most often happens when transferring vertices coordinations from C# rhino to C++. The floating point errors probably occurs there too. I guess one good workaround would be to round all coordinates in order to snap vertices, but this needs to be done on both sides C++ side.

At the current moment I need to work for other things, but at least it would be great if you upload data-sets that fail.

1 Like