The program published by Hirose, the inventor of the BCPD algorithm, deforms the point cloud based on the local and global shapes.
https://github.com/ohirose/bcpd
However, probreg's BCPD (bcpd_nonrigid.py) seems to just fit the point cloud regardless of the shape.
Is this an initial value issue? Or is it an algorithmic problem?