Skip to content

RangamaniLabUCSD/gamer

 
 

Repository files navigation

Geometry-preserving Adaptive MeshER

DOI PyPI Master Build Status Build status Documentation Status

GAMer is a surface mesh improvement library developed to condition surface meshes derived from noisy biological imaging data. Using Tetgen, GAMer can generate tetrahedral meshes suitable for finite elements simulations of reaction-diffusion systems among others. GAMer has the following main features:

  • Surface mesh improvement and decimation algorithms
  • Boundary marking and other features
  • Estimation of surface curvatures
  • Generation of mesh surfaces around biological molecules

Technical Features:

  • Code is implemented in C++ and supports Python using a pybind11 wrapper (pygamer).
  • Cross system compilation using CMake and runs on Linux (64 bit), Windows (32 or 64 bit) or MacOS (64 bit).
  • Blender addon which enables easy access to GAMer features using the pygamer API.
  • Uses the Colored Abstract Simplicial Complex data (CASC structure as the flexible underlying representation of surface and tetrahedral meshes.
  • Code is hosted by GitHub under the Lesser GNU public license (LGPLv2). Please post issues or reports there.

Acknowledging your use of GAMer

Thanks for using GAMer! The developers would love to hear how you are using the tool. Please send us an email or post on GitHub letting us know.

Please cite the above Zenodo DOI to acknowledge the software version and cite the following paper:
Lee, C. T.; Laughlin, J. G.; Angliviel de La Beaumelle, N.; Amaro, R.; McCammon, J. A.; Ramamoorthi, R.; Holst, M. J.; Rangamani, P. GAMer 2: A System for 3D Mesh Processing of Cellular Electron Micrographs. bioRxiv 2019, 534479.

Installation

The following instructions are to build the base GAMer library. If you wish to additionally compile the Blender GAMer addon, GAMer documentation, or other features please refer to the Additional Options section prior to building.

First, download a copy of the source from releases or clone the master branch.

git clone https://github.com/ctlee/gamer.git
cd gamer

Linux and Mac:

mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX:PATH=/usr -DGAMER_TESTS=on -DCMAKE_BUILD_TYPE=Release ..
make

For Windows, we support building using Microsoft Visual Studio (MSVS) through the use of CMake generators:

mkdir build64
cd build64
cmake -DBUILD_BLENDGAMER=TRUE -G "Visual Studio 15 2017 Win64" -A x64 ..
cmake --build . --config Release

For a complete guide to installation, including configuration of PyGAMer and BlendGAMer please checkout the online installation documentation.

External libraries bundled/downloaded with/by GAMer

  • GAMer uses Tetgen to generate tetrahedralizations.

  • GAMer uses Eigen to compute eigenvalues/eigenvectors of the Local Structure Tensor.

  • GAMer uses casc as the underlying simplicial complex data structure.

  • GAMer uses GoogleTest to handle testing.

  • GAMer uses Pybind11

  • Mesh checks in the GAMer Blender addon are inspired or borrowed from 3D Print Toolbox by Campbell Barton and Meshalyzer from CellBlender.

  • Triangle is also bundled with GAMer but not currently used.

Development Build Status

Development Build Status Build status Documentation Status

Packages

No packages published

Languages

  • C++ 65.5%
  • C 26.5%
  • Python 4.7%
  • CMake 3.1%
  • Makefile 0.2%