Source Code

Stable versions of the code as well as development version on git are available as indicated below. For license info and citations see here .

3D structured grids

The source code is maintained in this GIT repository . The source code comprises of two modules. (click to expand)

mscomplex3d: command line tool.

This is written purely in c++.

pyms3d: python loadable module.

This module offers the most flexibility as one can further filter and process the Morse-Smale complex to carry out analysis. This will probably be the most useful module due to its flexibility.

There is a slight learning curve. However, if you are familiar with the Morse-Smale complex formalism as well the notion of topological persistence and how it relates to Morse-Smale complexes, then using this module is straight forward. See here for usage tutorials.

2D triangle meshes

The source code is maintained in a GIT repository on github.com . The source code comprises of three modules. (click to expand)

mscomplex-tri-cl-tool: command line tool.

This is written purely in c++ and is a bit cumbersome to use. Its usage is documented here.

pymstri: python loadable module.

This is similar to the pyms3d module above. See here for usage tutorial and sample scripts for a few rudimentary tasks.

mscomplex-tri-viewer: visualization tool.

This module offers the OpenGL based viewer that is both interactive and scriptable. The scripting capablity makes it quite powerful. Furthermore, it uses GPU shaders to achieve very high quality images. It is primarily useful for that purpose. However, it is based on PythonQt and is thus tied to its framework. It is thus a bit confusing and not so direct to learn initially. Its usage is documented here.

Compiling the code

Using gcc/g++ on Linux/Unix

The code was developed in linux (ubuntu 12.04). It was compiled with gcc 4.6.3. The software requirements of each module are easily available in most modern Linux distributions. In ubuntu 13.10, the dependancies are installable via the apt-get command. We recommend installing the python module. Check out some sample scripts here.

3D Structured grids

(click to expand)

Building mscomplex3d

The main tool needs Boost 1.48, Cmake 2.8.8, OpenCL 1.1, and. OpenMP. Boost and CMake are usually available in as standard linux software. OpenMP is ususally ships with the compiler suite. OpenCL is often the most tricky to install. An excellent guide is available on http://wiki.tiker.net/OpenCLHowTo . To build the code execute the following in a bash shell
$ tar -xzvf mscomplex-3d-v1.0.tar.gz
$ mkdir build install
$ cd build
$ cmake ../mscomplex-3d/ \
> -DMSCOMPLEX_3D_INSTALL_DIR=../install 
$ make
$ make install
A binary executable named mscomplex3d must be present in the install directory.

Building pyms3d

Apart from the requirements of mscomplex3d(above),the python module needs Python 2.7+. To build the python module repeat the commands for mscomplex3d with an additional parameter to the cmake command as follows
 $ cmake ../mscomplex-tri/ -DBUILD_PYMS3D=1
Then execute
 $ make install
A python module named pyms3d.so must be present in the install directory.

2D triangle meshes

(click to expand)

Building mscomplex-tri-cl-tool

The main tool needs Boost 1.48, Cmake 2.8.8, and Eigen3. To build the code execute the following in a bash shell
$ tar -xzvf mscomplex-tri-v1.0.tar.gz
$ mkdir build install
$ cd build
$ cmake ../mscomplex-tri/ \
> -DMSCOMPLEX_TRI_INSTALL_DIR=../install 
$ make
$ make install
A binary executable named mscomplex-tri-cl-tool must be present in the install directory.

Building pymstri

Apart from the requirements of mscomplex-tri-cl-tool(above),the python module needs Python 2.7+. To build the python module repeat the commands for mscomplex-tri-cl-tool with an additional parameter to the cmake command as follows
 $ cmake ../mscomplex-tri/ -DBUILD_PYMSTRI=1
Then execute
 $ make install
A python module named pymstri.so must be present in the install directory.

Building mscomplex-tri-viewer

Apart from the requirements of mscomplex-tri-cl-tool(above),the viewer needs Qt4, QGLViewer, PythonQt, and glew. To build the viewer repeat the commands for mscomplex-tri-cl-tool with an additional parameter to the cmake command as follows
 $ cmake ../mscomplex-tri/ -DBUILD_VIEWER=1
Then execute
 $ make install
A binary executable named mscomplex-tri-viewer must be present in the install directory.

About the Source Code

The source codes for this project is released under the GNU LGPL. The following papers describe the algorithms implemented in the software. Please do cite them if you find the software useful.