I am attempting to analyze 3D CAD models (STP/STL) for voids and similar enclosed empty spaces. For this task, I have been using Vedo to convert STL to 3D point clouds, and was trying to run Ripser with maxdim=2. I used a 3D pointcloud input of shape (7076, 3), of type float32. This resulted in a fatal error:
start = time()
dgms = ripser(obj_pts, maxdim=2)
print("--- %s seconds ---" % (time() - start))
Fatal Python error: Aborted
Main thread:
Current thread 0x00008e74 (most recent call first):
File "C:Users<username>Anaconda3envs<env>libsite-packagesripserripser.py", line 321 in ripser
File "C:Users<username>AppDataLocalTempipykernel_97161004169720.py", line 2 in <module>
Restarting kernel...
This does not happen in the default setting, maxdim=1; the output from there is the expected output. Of course, as I am looking for 3D voids, not 2D ones, I rather need the maxdim=2 option working. Any help understanding and resolving this error would be appreciated.
Alternately — I’m very new to TDA, and am not wholly certain that Ripser is the best choice for 3D void detection in point clouds. If someone knows of a better alternative, I will happily listen.