Release Notes for Iso2mesh Version 1.0

code name: Mapo Tofu, released on Feb. 27, 2011

1. Introduction
2. About this release
3. What's new compared to 0.9.9 (aka 1.0-RC1)
4. What's new compared to 0.9.8 (aka 1.0-beta)
5. System requirement
6. Known issues
7. What's next
8. Acknowledgement

1. Introduction

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

Iso2mesh toolbox contains over 90 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 v1.0, codenamed "Mapo Tofu", is the most important release in the 3-and-half-year development history of this toolbox. Iso2mesh has grown from a miniature 10-file package to nearly 100 units supporting GNU Linux, Windows and Mac OSX. In the past two years, it has received over 5000 accumulative downloads, 11200 visitors (unique IP), nearly 700 registered users from all over the world and more than 18 citations in scientific journals, proceedings and book chapters.

This iso2mesh v1.0 release is considered to be stable and is capable of fast, robust and automated data analysis. All core features and examples had been tested on the supported platforms for both Matlab (7+) and Octave (3.2+). For Octave users, it is recommended to enable the "fltk" graphics backend to gain efficient mesh plotting capability.

3. What's new compared to 0.9.9 (aka 1.0-RC1)

The final release of v1.0 gains the followings compared to v0.9.9 released about a month ago:

  1. a fast ray-tracing function based on Havel&Herout 2010 paper
  2. robust and fast surface interior point determination using the ray-tracing function
  3. the above changes made iso2mesh more memory efficient (1G free memory is mostly sufficient)
  4. automatically analyze and label isolated mesh components when opt.autoregion is set to 1
  5. mesh quality measure using the Joe-Liu metric
  6. added 7 new functions, including meshquality, meshedge, surfplane, surfseeds and surfinterior
  7. added README file for the external tools and updated all documentations
  8. properly seeding the mesh plotting functions to produce consistent color sequence
  9. users can use ISO2MESH_INITSIZE to set the initial point cloud size for cgalsurf

In addition, the 1.0 release has fixed a number of bugs to let plotmesh correctly handle plotting styles and hold-state, to eliminate warnings when running with octave, and to allow mergemesh to handle more than 2 inputs.

4. What's new compared to 0.9.8 (aka 1.0-beta)

The final release of v1.0 has significantly advanced beyond the beta release v0.9.8 released in July 2010. The key new features include:

  1. properly seeding the CGAL utilities so the meshing process is reproducible
  2. avoid hanging when processing geometries with non-manifold structures
  3. significant speed up for running on octave
  4. dedicated commands to mesh geometry primitives such as a box, a sphere or ellipsoid
  5. completed support for Intel-based Mac OSX, dropped support for PowerPC-based OSX
  6. compress all binaries with UPX to make the toolbox more compact
  7. added a new demo, hello-world, for mesh density control
  8. added 9 new functions, including s2v, mergemesh, iso2meshver, mesha{box,sphere,ellip}, savemedit etc

In addition, we now package the software for each supported platforms, along with the traditional all-in-one package. The Windows package is amazingly as small as 1.9 MB.

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

5. System requirement

To install the iso2mesh version 1, you need

  1. at least 12MB free disk space for the all-in-one package, and 4~6MB for platform-specific packages
  2. a computer running Windows 95, XP, Vista and 7 (32/64bit), or GNU Linux (32/64bit) or Mac OSX (Intel)
  3. a working directory where you have write-permission
  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 image toolbox for Octave.

6. Known issues

  1. to set opt.autoregion=1 can make the meshing 3x to 5x slower due to use of finddisconnsurf
  2. automatically detect face vs elem in plotmesh is not 100% robust
  3. cgalpoly utility is not stable for large meshes and may crash
  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 can try different RNG seeds

7. What's next

Iso2mesh v1.0 marks the maturity of this software, but it is not the end of the development. It represents the beginning of a new development cycle, with specific focuses on improved user experience and highly robust meshing pipelines.

In the next major release, we aim to explore

  1. a stand-alone GUI (graphics user interface)
  2. parallel computing
  3. robust surface intersection test and repairing
  4. mesh optimization and adaptation
  5. online mesh repository for the research community
  6. and more ... we would also like to hear from you on any features that you are interested.

We have plans to apply for funding support to continue improving this software in the future. Your support, either by timely feedback on your experience with iso2mesh, or letters supporting our future research plan as part of the proposals are highly appreciated. We will approach you in a future time when a proposal is prepared.

We are also looking forward to the collaboration opportunities with you to explore interesting projects where this software can help. Please feel free to email me (fangq at to discuss on these options at any time.

8. Acknowledgement

We deeply appreciate the contribution from the CGAL team, who has done a marvelous work to develop 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.

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