Skip to content
Snippets Groups Projects
Forked from iMSTK / iMSTK
2745 commits behind the upstream repository.

iMSTK - Interactive Medical Simulation Toolkit

About

Overview

iMSTK is a C++ based free & open-source toolkit that aids rapid prototyping of real-time multi-modal surgical simulation scenarios. Surgical simulation scenarios involve algorithms from diverse areas such as haptics, advanced rendering, computational geometry, computational mechanics, virtual reality and parallel computing. iMSTK employs a highly modular and extensible design to enable the use of libraries and codes from these areas in a given application thereby reducing the development time.

Participants

Supported by:

Developed at:

Licensing

Coming soon

Resources

Documentation

Coming soon

Mailing Lists

The iMSTK Users mailing list is the principal means of communication among developers and users: imstk-users@imstk.org

  • subscribe HERE
  • find mailman archive HERE

The iMSTK Developers mailing list is for developers where design and implementation issues are discussed: imstk-developers@imstk.org

  • subscribe HERE
  • find mailman archive HERE

Issue-tracker

Designed more specifically for developers, the issue tracker allows developers to list and discuss issues & enhancements:

https://gitlab.kitware.com/iMSTK/iMSTK/issues

Assign labels to the issues. The description of each label can be found HERE.

bug compilation critical enhancement optimization clean up refactor testcase visualization mechanics device documentation support discussion

Prerequisites

  • Git
  • CMake 3.9 or higher
On Linux:
sudo apt-get install build-essentials libgl1-mesa-dev libxt-dev libusb-1.0-0-dev

Getting started with iMSTK

1. Getting the source code

To be able to contribute back to the iMSTK project, the preferred way is to use Git for code version control. You can use the following command in the terminal for Linux/MacOSx, or in Git Bash for Windows.

git clone git@gitlab.kitware.com:iMSTK/iMSTK.git

2. Setting up your SSH key

The build process will check out external dependency sources with the SSH protocol to avoid manually entering credentials during the build process. To allow this, make sure you set up your ssh key in your profile HERE. You can find documentation on how to generate and retrieve your public ssh key HERE.

3. Building iMSTK

We use CMake to configure the project on every platform. See how to run it HERE.

  • On Linux/MacOSx

Type the following commands from the same location you cloned the code. This will configure the build in a directory adjacent to the source directory. To easily change some configuration variables like CMAKE_BUILD_TYPE, use ccmake instead of cmake.

mkdir iMSTK-build
cd iMSTK-build
cmake ../iMSTK #/path/to/source/directory
make -j4 #to build using 4 cores

You can also use Ninja for a faster build instead of Unix Makefiles. To do so, configure the cmake project with -GNinja:

cmake -GNinja ../iMSTK
ninja

This will checkout, build and link all iMSTK dependencies. When making changes to iMSTK base source code, you can then build from the Innerbuild directory.

  • On Windows

Run CMake-GUI and follow the directions described HERE. You will have to choose which version of Visual Studio you'd like to use when configuring the project, make sure to select Microsoft Visual Studio C++ 12 2013. CMake will generate a iMSTK.sln solution file for Visual Studio at the top level. Open this file and build all targets, which will checkout, build and link all iMSTK dependencies. When making changes to iMSTK base source code, you can then build from the iMSTK.sln solution file located in the Innerbuild directory.

/!\ MVSC 2015 is not yet supported as the dependency libusb 1.0.20 does not support it yet. We will work on supporting MVSC in the near future when libusb 1.0.21 is released.

  • Phantom Omni Support

To support the Geomagic Touch (formerly Sensable Phantom Omni) haptic device, follow the steps below:

  1. Install the OpenHaptics SDK as well as the device drivers:
  2. Reboot your system.
  3. Configure your CMake project with the variable iMSTK_USE_OMNI set to ON.
  4. After configuration, the CMake variable OPENHAPTICS_ROOT_DIR should be set to the OpenHaptics path on your system.
  • Vulkan Renderer

To use the Vulkan renderer, follow these steps:

  • Download the VulkanSDK.
  • Download your GPU vendor's latest drivers.
  • Enable the iMSTK_USE_Vulkan option in CMake.

Using iMSTK in your application

Coming soon