I'm developing a game where the game character is a catheter that is simulated as a linked rod (4 particles linked together) and it is in an environment with solid walls. The objective is to maneuver the catheter without penetrating the walls. I want to model the behaviour of the catheter accurately. What I want is, when the catheter hits the wall, it should bend and move, instead of going through the wall.
To achieve this objective, I implemented the PBD framework described here. It can simulate most of the motions I want except the one indicated in the figure below:
The problem is, when the catheter is bent and close to a surface and I try to rotate it (indicated by the red circular arrow in the right figure), rotation happens quite slowly. This is because it takes too many steps for the solver to converge and as a result, we lose the real-time performance of the simulation.
Now the question is, is this a limitation of the model (for instance only the position of the particle and orientation of the rod segment is modeled, not the orientation of individual particles) OR do I need to fine-tune my model further?