Haptics with Spring

Spring is a general framework for collaborative, real-time surgical simulation. Spring performs soft-tissue modeling, some limited rigid-body dynamics, and suture modeling. The Spring simulator interfaces to many different interaction devices and provides for multi-user, multi-instrument collaboration over the Internet in latency-dependent or latency-moderated modes. Many surgical and non-surgical virtual tools have been created and their interactions with tissue have been implemented. Collision detection is provided through an enhanced bounding-sphere algorithm. In addition, extra features such as voice input/output, real-time texture-mapped video input, stereo and head-mounted display support, and replicated display facilities are implemented.

Spring is designed as client-server system. While the server part is responsible for computationally intensive calculations, the client does Haptics I/O and data display on a screen or head mount display.

The Spring software is programmed in C++. The software is cross-platform compatible and runs on Unix (Sun Solaris, SGI Irix, and Linux) and Windows (98, NT, 2000). OpenGL is used for graphics. GLUT, GLUI, and MUI for the user interface. Spring supports parallel processing using the pthreads facility of POSIX. It supports many common file formats, including SMF, Wavefront OBJ, VRML, Mesh, and Cyberware formats.

Microsoft Visual C++ is used for development. The image below depicts the Spring Architecture. The main parts of the software are the sensor array (input/output with e.g. Phantom Haptics devices) and the object array (3D data modeling).

 

Screenshots

        

 

Acknowledgements

The Spring System has been designed and implemented by Kevin Montgomery from Stanford University. Visit the Stanford-NASA National Biocomputation Center for further information.