// the find
neka-nat/cupoch
Robotics with GPU computing
Cupoch is a C++ and Python library that runs point cloud, triangle mesh, voxel and occupancy-grid operations on CUDA GPUs. It is forked from Open3D and covers the parts a robot stack tends to need: registration, distance transforms, voxel collision checks and graph path finding. It is aimed at robotics and perception engineers who have an NVIDIA GPU on the robot or in the lab and need these operations inside a real-time loop.
The registration set is broad for a GPU library: ICP, Generalized ICP, colored point cloud registration, Fast Global Registration and FilterReg all work on the same point cloud type, so you can swap methods and compare them on the same data. DLPack interop with PyTorch and CuPy means a pipeline that already holds tensors on the GPU does not have to round-trip through the host. The HIP build is documented honestly: the README lists the modules that are skipped on ROCm (libSGM stereo, ScalableTSDFVolume) and says why, which is more useful than a vague partial-support line. The source tree follows Open3D's layout under geometry, io and registration, so anyone who has used Open3D will find the structure familiar.
The speedup chart is one GTX 1070 against an i7-7700HQ with OMP_NUM_THREAD=1, and the README gives no numbers. It does not show the speedup against a current multi-threaded CPU, which is the baseline most people would actually compare against. The setup docs are stale in places: the ROS demo names ROS Melodic and Python 2.7, the Jetson section pins a 2020-era CMake, and the only stated target is Ubuntu 24.04 with CUDA 12.9, so anything else means chasing versions yourself. The feature list is flat. Only KNN is marked WIP, and nothing says which modules are exercised by tests and which exist only as examples. The CI badges show the build passes on Ubuntu and Windows, not that the algorithms are correct. With no CPU path described, any code written against it needs a CUDA or ROCm device just to run.