On behalf of the iMSTK community, we are pleased to announce the release of iMSTK version 7.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.

You can download the sources on Gitlab, in case there are any questions we have documentation available and we will try and support you on our discourse channel

Imstk 7.0 New Features 

PBD Rigid Model: We deprecated the old RigidModel and implemented a PBD based one. Enabling full two way interactions between our rigids and deformable objects. The new PBD rigid implementation also allows for grasping and manipulation of rigid objects with two way haptic feedback.

Two way interaction of a rigid needle with two haptic inputs

Validation and Verification Suite (V&V): To enable a verification of the engines physical behavior and allow the integration of this into our continuous integration systems we created a suite of tools to script, run and verify simulation behavior. We wrote about this in a previous blog post. The new V&V suite leverages standard engineering test cases (tension, compression, and shear) to validate deformation behavior. We also introduced and improved instrumentation of the engine to support the V&V process.

Deformable under tension, compression and shear

Component Architecture: To make iMSTK more extensible we implemented an object component framework that allows a better composition of simulation objects and improves extensibility. This is still a work in progress as there are still parts of iMSTK that aren’t utilizing this new architecture

Connective Tissue: We created a component that could connect two pieces of deformable tissue with each other to represent connective tissue based on line meshes. Additionally we implemented tearing and burning to support laparoscopic procedures on connective tissue.

Line mesh representing connective tissue being torn
Line mesh representing connective tissue being “burned”

Anisotropic Strain Constraint (aka FEM): We’re enabling users to set up objects with strain energy constraints in an anisotropic manner. The constraint parameters can vary over the object allowing for a wider range of object behavior.

Haptic Suturing: By updating the suturing implementation to the new PBD architecture we are now able to render haptic forces to the user during suturing as well as pull the tissue together using the suture thread. 

Interaction representing stitching, with thread attached to needle, handling of thread and needle inside of tissue

Other improvements and bug fixes:

  • Additional collision detection (CD)  algorithms and bug fixes in CD and collision response
  • Better support for drawing text and graphs during simulation
  • Improvements to the C# wrapper for better support of iMSTK-Unity
  • Haply Device Support

Future work:

Next work items will focus on integration with Unity and better support of grasping with multi part tools


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