Release Notes for Iso2mesh 2017 (v1.8)

code name: Deviled Egg, released on January 16, 2017

1. Introduction
2. About this release
3. What's new compared to 1.7.9
4. System requirement
5. Known issues
6. Acknowledgement

1. Introduction

Iso2mesh is a free, powerful, yet easy-to-use 3D mesh generator for Matlab and GNU/Octave. It is particularly suitable for creating high-quality surface and tetrahedral meshes from 3D medical imaging data, including binary, segmented or gray-scale volumetric images. Iso2mesh is cross-platform, quantitative, versatile, and fully optimized for better speed and low-memory requirement.

Iso2mesh toolbox contains over 130 modular Matlab functions, covering 3D volumetric image pre-processing (hole-filling, thinning and thickening), surface mesh modeling (extraction, remeshing, repairing, and smoothing), volumetric mesh creation, plotting and import/export for a range of mesh file formats. For some of the core functions, iso2mesh calls the self-contained meshing utilities built upon CGAL and tetgen to perform Delaunay tetrahedralization, a process known for producing high-quality, self-intersection-free surfaces and volumetric meshes.

2. About this release

Iso2mesh 2017 is a maintenance release towards the next generation iso2mesh, i.e. the "2.0" milestone. Compared to the previous stable release (v1.7.9), a number of key features were refined, particularly, the surface boolean operations. It also gains 6 new functions and a list of bug fixes.

3. What's new compared to 1.7.9

Compared to the version 1.7.9 released in Sep. 2015, the v1.8 release gained the following features:

New functions:

  1. new function: insurface for point-in-surface test
  2. new function: fillsurf for tesselating a closed surface
  3. new function: surfvolume for calculating the volume of an enclosed surface
  4. new function: innersurf/outersurf: interior and exterior parts of a surface

Key improvement:

  1. robust surface boolean operator based on Cork
  2. surf2vol and s2v now rasterize labeled surfaces and tetrahedral mesh
  3. plotmesh supports element-based colormap
  4. JSONlab updates to 1.5 Nominus alpha
  5. update tetgen 1.5 to 1.5.1

Bug fixes:

  1. fix half-voxel offset bug in cgalmesher
  2. fix uniqedges edgemap output bug
  3. disable binary compression for Mac OS to avoid crashes

Additional improvement

  1. meshcylinders supports a series of segments, also returns PLC
  2. surfedge/volface return tet element id for the face triangles
  3. s2v outputs mesh-to-voxel transformation matrix
  4. display binary utility download URL when missing
  5. faceneighbor returns row- or column-major facelist

The detailed change logs can be found in the ChangeLog and SVN commit history pages.

4. System requirement

To install the iso2mesh version 1.7.9, you need

  1. at least 40MB free disk space for the all-in-one package, and 15MB for platform-specific packages
  2. a computer running Windows 95, XP, Vista and 7 (32/64bit), or GNU Linux (32/64bit) or Mac OS (Intel 32/64bit)
  3. a working directory where you have write-permission to save intermediate outputs
  4. Matlab 7.0+ or GNU Octave 3.0+
  5. for efficient mesh processing, 1GB or more memory is recommended

To use fillhole3d or run some of the demo scripts, you need to install the image processing toolbox for Matlab or octave-image toolbox for Octave.

5. Known issues

  1. surfboolean was significantly improved, but can not process co-planar surfaces
  2. when using the cgalpoly option with surf2mesh, the input surface nodes are not preserved in the output mesh
  3. automatically detecting face vs elem in plotmesh is not 100% robust
  4. iso2mesh can not automatically process surfaces that intersect each other. One can use remeshsurf to repair a single self-intersecting mesh, but more than 2 such surfaces can be a trouble
  5. if your mesh contains multiple disjointed components, iso2mesh (cgalsurf) may sometimes miss a few, you may add the volumetric image by 1 and remesh the domain

6. Acknowledgement

We deeply appreciate the contribution from the CGAL team, which has done a marvelous work for developing state-of-the-art image-based mesh generation utilities. We also want to thank Hang Si for his great work for writing tetgen, which is heavily involved in iso2mesh's meshing work-flow. Thanks also goes to Marco Attene, Mirko Windhoff, and Axel Thielscher for developing the "meshfix" utility, and to Gilbert Bernstein for his surface boolean utility Cork.

For those of you who has used iso2mesh in your work, the author of this toolbox appreciates if you can cite the following paper in your publication, this will help tremendously for the future development of this software:

Qianqian Fang and David Boas, "Tetrahedral mesh generation from volumetric binary and gray-scale images," Proceedings of IEEE International Symposium on Biomedical Imaging 2009, pp. 1142-1145, 2009

Powered by Habitat