I have been working on a surgical physics simulation as described in the above vedio for months. This is called interventional surgery.The guidewire is nested in the catheter, and the surgeon manipulates the proximal end of the guidewire and catheter to move and twist them around the vessel, with the goal of getting the head of the guide wire to the lesion and then treating it. (You can not see the vessel in the vedio becasue it is invisible on purpose). This kind of simulation of long slender stiff rod with collision is a difficult problem, there are so many papers about it. I have tried Bullet/PhysicX/Obi Plugin of Unity/SOFA/ODE/SimBody, none of them worked until i found the Newton Dynamics!
There are several important physics features of the surgery:
1.The model of tools: The catheter and guidewire are easy to be bended and have strong torsion resistance and can not be stretched. I create many spheres and connected them with joints to simulate the them.
2.The playerinput: The surgeon can only pull/push/twist the proximal of catheter and guidewire.
3.The collision detection and handling: There are two kinds of coliision at first glance. Collision occurs between the guidewire/catheter and blood vessel, or between the guidewire and catheter.
(1)In the first case: The blood vessel is deformed periodically, which means we can create the exact mesh collider at any time. So that the blood can be seen as a rigidbody rather than a softbody.
(2)In the second case: The nest of the catheter and the guidewire should not be treated as a collision problem otherwise it will be so complicated and time consuming! As an alternative, for example, we can force the nodes of guidewire to move along the catheter whenever they are inside the catheter, and use real physics to controll the nodes when are outside the end of the catheter. The inside/outside can be determined by move distance which i think is not a difficult problem.
So far, I have been using the Unity plugin of Newton Dynamics. And I have implemented one guidewire move and twist in a complex blood vessel with no defromed(The deform is just an animation actually).It works quite well!
But there also several problems, it would be appreciated if you can help me:
1.The Unity plugin is not very perfect for now and it seems to have not being maintained since a long time ago. There are several features needed to compelete the project:
(1) Store and load the mesh collider info at running time.
(2) Dynamically enable and disable joints.
(3) Move the base sphere of the entire guidewire totally by user, in another word, the physics behavior of the base spere will not be affected by other newtonbodies.
(4)to be continued.
2. Whar do you think of the whole thing? Is it possible to be implemented with Newton Dynamics?