1
\$\begingroup\$

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:

rod does not straighten when rotated away from the wall

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?

\$\endgroup\$
4
  • 1
    \$\begingroup\$ You may also be interested in this GDC talk about implementing medical visualization shader effects. \$\endgroup\$
    – DMGregory
    Commented Jul 11, 2022 at 11:13
  • 1
    \$\begingroup\$ Can you briefly summarize the technique you're using? Not every user will download a multi-megabyte PDF academic paper and read it to the end just to figure out whether they can contribute. If you include a code sample or concise description of the algorithm in the body of your question, rather than requiring an extra click, you increase the number of readers who will be able to understand your problem quickly, helping you attract better answers, faster. \$\endgroup\$
    – DMGregory
    Commented Jul 30, 2022 at 11:36
  • 1
    \$\begingroup\$ Also, it looks to me like your problem is really "how to rotate a chain of linked rods without penetrating a surface" and the fact that the chain represents a catheter or the surface represents an organ is somewhat incidental. Rephrasing your question in these terms can help you attract clicks from anyone with a knowledge of physics and geometry, not only users who are experts in medical simulation (a much smaller pool). \$\endgroup\$
    – DMGregory
    Commented Jul 30, 2022 at 17:16
  • \$\begingroup\$ @DMGregory Thanks again for the comments. I updated the question and will add a description of the algorithm soon. \$\endgroup\$
    – Optimus
    Commented Jul 30, 2022 at 20:39

0

You must log in to answer this question.

Browse other questions tagged .