Mesh-based Monte Carlo (MMC)
Monte Carlo photon migration in complex shapes using volumetric meshes
- Mesh-based Monte Carlo, or MMC, is a Monte Carlo (MC) solver for photon migration in 3D turbid media. Different from existing MC software designed for layered (such as MCML) or voxel-based media (such as MCX or tMCimg), MMC can represent a complex domain using a volumetric mesh. This not only greatly improves the accuracy of the solutions when modeling objects with curved/complex boundaries, but also gives an efficient way to sample the problem domain and uses less memory. The current version of MMC supports multi-threading and SIMD features on modern multi-core CPUs.
- MMC is an open-source software developed by Qianqian Fang at the Optics Division, Martinos Center for Biomedical Imaging, Massachusetts General Hospital (Harvard Medical School).
- Details of this software can be found in the following paper:
Additional free software and data
- [2014/01/05] MMC 0.9.5 (code name: Wasabi Peas) is finally released! This release is a result of over 2 years' continuous improvement of the MMC software (62 files changed, 3399 new lines and 363 lines of deletions). A number of important new features are added, including the additions of MMCLAB, perturbation MC support, fast Jacobian calculation etc. Details can be found in the MMC/ChangeLog. Please download the new version of MMC & MMCLAB from this page.
- [2012/09/27] A new paper entitled "Accelerating mesh-based Monte Carlo method on modern CPU architectures" by Fang & Kaeli was accepted for BOE. In this work, we compared contemporary ray-tracing techniques, aiming for faster and more accurate Monte Carlo modeling on modern CPU processors. The described techniques have been incorporated in the MMC v0.8 and newer releases. Download PDF here.
- [2012/08/27] A new paper entitled "Mesh-based Monte Carlo method in time-domain widefield fluorescence molecular tomography" by Chen, Fang & Intes was accepted for JBO. In this work, the MMC software was extended to support wide-field illumination. In addition, MPI-based parallel computing for distributed systems was also added. The widefield branch of the MMC code is currently developed in the Git repo. This branch will be heading the next milestone release, version 1.0, for MMC.
- [2012/08/20] MMCLAB, an easy-to-use Matlab/Octave toolbox with full MMC features, is announced for testers. Learn more from here.
- [2012/08/10] The original MMC paper moved to the top in the BOE Top Download list.
- [2012/01/20] A JSON file loading bug was reported and fixed. Only windows users are affected. Please update your Windows binaries to 0.9.1.
- [2011/12/20] MMC v0.9.0 has arrived with many bug fixes and new features! Thanks to a patch contributed by Dr. Stefan Carp, MMC can record momentum transfer for detected photons and makes itself useful in diffuse correlation spectroscopy (DCS) studies. Please browse the Release Notes and ChangeLogs pages for more details.
- [2011/06/17] We are pleased to announce a major update to MMC, i.e. version 0.8.0. In this milestone release, we added a number of important features, including saving partial-path-lengths and SSE4 support. Several critical bugs were fixed. Please read the Release Notes and full ChangeLogs for more details. Please consider updating to this release for better accuracy and efficiency. Download v0.8.0 from this link.
- [2011/03/31] We release a new mouse atlas FEM mesh based on the popular Digimouse atlas dataset. The new mesh contains 30% less nodes but with improved mesh quality and much balanced element sizes. Mesh generation script and optical properties of 21 tissue types are provided.
- [2011/02/05] A new digital brain atlas FEM mesh is released into the public domain. The new mesh features more anatomically accurate gray/white-matter and CSF tissue boundaries, and among others. The detailed mesh generation process, including the matlab script, is described in the Release Note.
- [2010/12/15] A new version of MMC, v0.4.0 (codenamed "Pecan Pie"), has just been released. See the release note and ChangeLog. The default binary of the new code is roughly 2x faster than the previous release. It also features a new random number generator and initial Doxygen support. An Android binary is also provided to demonstrate the portability.
- [2010/08/29] The first release of MMC was announced. MMC supports more accurate tissue boundaries, and multi-threaded parallel computing. Please find the release notes and the original paper to learn more.
- [2010/07/15] A paper on a mesh-based Monte Carlo algorithm was accepted by Biomedical Optics Express and published online (PDF,HTML) today.