Real time surgical simulation using deformable meshes

A large number of surgeries nowadays are performed using surgical robots, which allow for high precision incisions with minimal error. Traditionally, animals and cadavers have been used for training purposes. However, these are expensive resources and are not available in all facilities. Furthermore, animal testing has met with opposition from animal rights groups and so, many have turned towards virtual surgical simulations. Virtual simulations allow surgeons to gain experience using robotic surgery equipment at minimal cost and with almost instantaneous feedback allowing for a realistic experience. One issue with virtual simulations, however, is updating the models accurately to model how tissue would react in real life.

For our purposes, we are using Maya models for the organs. Maya is a modeling software that can be used to generate high quality 3D models. The models' structure can be tessellated using triangles and the surface material can be shaded using custom textures. The models are being developed by 3D modeling students. The surgical simulator will have 2 main components: a rendering engine to display all the objects such as the organs and the surgical instruments as well as the operating environment, and a physics engine which will be used to model the interaction between the surgical instruments and the organs.

The rendering engine we are using is called OGRE (Object-oriented Graphics Rendering Engine). OGRE is a very popular graphics engine that is used for rendering real-time 3D graphics efficiently. OGRE is based on C++ (which is the choice language in computer graphics due to its speed) and has an exporter which allows Maya models to be exported to OGRE's proprietary '.mesh' format. It sports a variety of features such as: material/shader support, meshes support, animation support, flexible scene management and various special effects.

As far as soft body physics required for the organ-surgical tool interaction goes, the Bullet physics engine is being used. Bullet is one of the more popular free physics engines out there. Soft body physics simulation is still an emerging field, mainly due to its intrinsic complexity and the required computational intensity. Rigid body physics is fairly simple as compared to soft body physics. The two major differences lie in collision detection and resultant force and deformation calculation. Collision detection between rigid bodies is more or less simple as rigid bodies generally have regularly shaped collision volumes (boxes, spheres, cylinders, etc.) and checking for intersections between such volumes is trivial. For soft bodies on the other hand, regularly shaped collision volumes will not suffice as soft bodies are deformable hence a more tight fitting collision volume is required, i.e. the mesh itself. Rigid bodies do not undergo deformations hence once a collision has occurred only the resulting forces need to be computed, but in the case of soft bodies, in addition to the resulting forces the deformation that the soft body undergoes as a result of these forces also needs to be computed. All these factors add to the computational overhead considerably. Hence the inherent challenge lies in not only computing the soft body deformations accurately, but also reproducing the results in real-time.