On behalf of the iMSTK community, we are pleased to announce the release of iMSTK version 6.0. The Interactive Medical Simulation Toolkit (iMSTK) is an open-source toolkit that allows faster prototyping of surgical simulators and skill trainers. iMSTK features advanced high-performance libraries for physics simulation, haptics, advanced rendering/visualization, user hardware interfacing, geometric processing, collision detection, contact modeling, and numerical solvers.

Version 6.0 includes:

Computational Modeling Improvements

  • Suturing: An initial approach to suturing has been outlined. This implements the needle and thread interactions with deformable tissues required during suturing.
Suture needle passing through a test tissue. Thread follows.
  • Stitch Constraints: PbdObjectStitching was introduced to allow the addition of interelement constraints which hold two parts of tissues together. This is useful during suturing to approximate knots.
Stitch constraints between red points added/removed quickly at runtime to hold tissue together.
  • Generalized Picking: A general approach for picking was added for all our geometry types allowing selection of vertices, cells, or points on cells by rays and other selection criteria
  • Grasping: An expanded PbdObjectGrasping was introduced to allow grasping of tissues. This implements both thin (right) and volumetric grasping (left) using our picking API. One can perform cell grasping, per vertex grasping, or point on element grasping.
  • Continuous Collision Detection (CCD): A LineMesh to LineMesh continuous collision detection method (LineMeshToLineMeshCCD) was implemented laying some groundwork for CCD in iMSTK. This enables collisions between infinitesimally thin threads. Ideal for suturing.
Demonstrating thread self collision.
  • Clearcoat Model: Our VTK rendering backend was updated to the previously released 9.1. Useful for iMSTK is the clearcoat model allowing us to achieve wet tissue looks.
Clearcoat model applied inside a colon.

Build Improvements

  • More build flags introduced to support reduced builds such as a no render build which avoids GL linkage.
  • Build updates to support setting custom git repositories for iMSTK dependencies.


  • Improved collision detection tests.
  • Expanded VisualTest allowing for interactive debugging/interruption of automated tests.
  • Provided base set of Pbd and Rigid body simulation tests to catch simulation instabilities during integration.

Bug Fixes

  • Fixed an issue with capsule signed distance & bounding box functions.
  • Fixed crash with cyclic task graphs caused by some interactions.
  • Fixed segment barycentric coordinates and edge-edge closest point computation.
  • Fixed spurious failure when closing a window in Linux.
  • Fixed crash when trying to use a texture with non PBR shaded geometry.

See the release notes for a full look at the improvements, changelog, and contributors. Special thanks to Hong Li from RPI for his contribution in this release.

Future Work

In the coming months, we are working to improve and extend iMSTK:

  • Suturing and Needle Interfaces
  • Soft vs Rigid Body PBD

Watch for the first release of the iMSTK Unity Asset in the coming weeks. This will support easy integration of iMSTK with Unity applications.

For more information on our efforts and our users, visit our website or sign up for our discourse/forums. If you are using or would like to use iMSTK, please email us at kitware@kitware.com and we would be happy to discuss your needs and experience.


The research reported in this publication was supported, in part, by the following grants from the National Institutes of Health R44DK115332, R44DE027595, R01EB02547, and R01EB031808.

Leave a Reply