These results have been submitted for publication to MICCAI 2003.
Our 2D approach can be generalized to 3D. Modeling boils down two core problems: distributing friction forces along the needle. This is done by selecting a set of faces from the mesh, and projecting those onto a cylindrical needle. Friction is proportional to the projected area. Schematically, this is represented in the picture on the right.
The meshing process must also be generalized to 3D. Luckily, the
algorithm has already been described elsewhere, and with the flexible
simplex data structure that we developed, implementing it was a
breeze. Refinement around a point is demonstrated in the following
Implementing boils down to separating modules for meshing, deformation and visualization, and rewriting the 2D inserter to use these modules. The current implementation shares these modules between the 2D and 3D deformation engine.
The implementation seems to be effective, and indeed has a slowdown of approximately 100 relative to the 2D implementation, as predicted in my thesis. The following two screenshots show an insertion into linear material (left, refinement level 12, needle radius 1 mm), and nonlinear material (right, neohookean material, refinement level 20, needle radius 1 mm). The simulation pictured on the right took 1300 seconds to compute (P3 1Ghz, double precision).
An animation of the linear insertion is available here.