I've built a cable-driven flexible robotic arm using the SoftRobots plugin. Recently, I've been trying to improve its simulation performance using the SofaCUDA plugin. I've successfully compiled and installed SofaCUDA, but I've found that when using the PullingCable function to control the rope length during CUDA simulation, the nodes at the end of the rope change position first, followed by the other nodes moving slowly. I suspect this is because PullingCable (a function in cable.py within the SoftRobots plugin) doesn't have a corresponding CUDA version, resulting in significant data exchange between the CPU and GPU during simulation. (Perhaps my approach is incorrect? If so, please provide some suggestions.)
I hope to further extend more CPU-based functionalities to the GPU, including but not limited to CableConstraints, to improve the simulation results of complex flexible structures.