What's New

(this site is currently under construction, new resources and links are being added constantly)

[August 28, 2015] Joining Northeastern University Bioengineering Department

I am moving from MGH to Northeastern University starting September 1st. I will become a faculty member in the newly founded Bioengineering department in the College of Engineering, and start a new computational imaging lab there. I am very excited because of the opportunities for expanding my research and mentoring/teaching students. The rapid growth of the University provides a growing interdisciplinary environment for me to establish new collaborations and attract bright students. I am sure it will be an exciting new adventure and a lot of fun!

As part of this new opportunity, I am looking for strong candidates to fill two postdoc openings in my new lab - one for candidates with strong optics/data analysis background, the other for candidates with computational physics and GPU-programming background. The full job descriptions can be read online at

In addition to working on NIH/USAID funded projects, this two postdoc associates will help me creating my lab, as well as mentoring PhD students. If you are interested, please apply online or directly email me (q.fang at neu.edu) your cover letter+CV+3 references. Feel free to share this link to anyone who might be interested.

[August 11, 2015] New paper on multi-modal breast imaging using independently acquired optical and x-ray images

Our new paper entitled "Characterizing breast lesions through robust multimodal data fusion using independent diffuse optical and x-ray breast imaging" was published online today on JBO Letters (with Open Access). In this paper, we proposed and clinically validated a flexible structure-function data fusion approach that can combines independent optical and (2D) mammographic scans of breasts. We show that this approach can achieve comparable performance to our co-registered optical/x-ray system, despite the anticipated negative impact from the registration errors.

[July 24, 2015] Non-contact mobile oximeter featured in PATH's Innovation Countdown 2030 report

I spent the past few days in Washington DC for this year's DevelopmentXChange conference. Congratulations to all the Saving Lives at Birth (SL@B) Round 5 nominees! great fun ahead!

I was also extremely excited after receiving an email from PATH:

"We’re pleased to inform you that the non-contact mobile oximeter has been nominated by independent experts as a leading innovation in the maternal, child, and newborn health category as part of Reimagining Global Health, the inaugural report of the Innovation Countdown 2030 initiative. Innovation Countdown 2030 is a PATH-led initiative to identify and showcase lifesaving innovations with great promise to transform global health by 2030 and to help accelerate progress toward the new health targets proposed in the United Nations Sustainable Development Goals."

"PATH’s Innovation Countdown 2030 received over 500 lifesaving ideas from 50 countries. Experts say these were the top 30, with remarkable potential to save lives faster. http://ic2030.org/ #IC2030"

The full Innovation Countdown 2030 report can be downloaded here. It is certainly a pleasure to be mentioned in this report, on the hand, will definitely work hard to get the idea to work. In the meantime, I wish more people to join this endeavor, giving those kids a chance to survive, and make our world a better place!

[July 6, 2015] DigiBreast - A Complex Digital Breast Phantom with 3D Tissue Compositions

As part of our recent BOE paper, we'd like to share a 3D digital breast phantom to the community to allow others to test and validate new imaging algorithms and optimize measurement configurations for a compressed breast. We call it DigiBreast. One unique aspect of the DigiBreast is the clinically derived 3D tissue volume fraction maps (for adipose and fibroglandular tissues). Using a compostional model to represent a breast anatomy is much more realistic compared to the conventional piece-wise-constant segmented anatomies, because the former preserves the fine spatial details in the structural images.

We anticipate this digital phantom to be useful for many breast-imaging related research, especially those involving model-based image reconstructions. Potential utilities include, but not limited to, simulations of breast deformation, 2D and 3D x-ray breast imaging, and functional imaging of a compressed breast using tomographic optical, microwave, thermal and electrical impedance methods.

The digital breast phantom data (in matlab .mat format, as well as in JSON/UBJSON format) can be downloaded after registration.

I'd like to thank Dr. Mats Lundquvist and his team from Philips Healthcare for the contributions to this dataset.

[June 26, 2015] Fun project from a student

Dora Inácio is an exchange student from Univ. of Lisbon, Portugal, working with me on a breast imaging project over the past 8 months. I just learned from her that she and her friends are running a cool open-source project using a wearable device to do gesture-based control. The project is called "Gesto". They now have a start-up and are looking for crowdfunding on a Kickstarter-like platform (CorwdSupply). Check out the videos on their websites. It looks pretty cool.

[June 5, 2015] New paper on systematic characterization of structure-guided DOT

We have a new paper(PDF,HTML) published today on the Biomed. Optics Express. In this paper, we reported a comprehensive characterization of our compositional-prior guided DOT reconstruction algorithm (among a few other things - a realistic complex digital breast phantom, how to use tumor priors, how to convert a structure image into tissue compositions, enhancing tumor contrast using mesh refinement, etc). The main findings are quite interesting. We found that using a compositional-prior can reduce HbT estimation error by about 50% (we knew it was better, but now we know by how much). We also found that using correct tumor location as priors can give 1.5x to 4x more contrast to the tumor than without; this translates to roughly 1.5-4 fold reduction in minimum detectable tumor size. The algorithm is also quite robust on false priors: when you tell the algorithm to look for a tumor in the wrong location, it simply rejects it, and falls back to normal tissue priors (because DOT data does not support this idea). Checkout this paper if you are interested. Love to hear what you think.

Also, the developed digital breast phantom - we'd like to call it "DigiBreast" - will be ready for download in the next week or so. We expect this to be a useful benchmark when testing new DOT algorithms, because it is a more realistic test comparing to uniform or segmented breast models used in literature. So, stay tuned.

[April 24, 2015] JSONLab is selected for MATLAB Central "Pick of the Week"

JSONLab is selected for MATLAB Central "Pick of the Week". See this nice report from Jiro Doke. Its monthly download now exceeds 500 from MATLAB File Exchange site, with additional downloads from sourceforge.

[September 25, 2014] Open-source software updates

Over the past month, three open-source software packages received updates. Here is a combined release summary:

MCX
MCX 0.9.7-2 was just released two days ago. I recommend every MCX user to make the upgrade, even you are using a previously "stable" version. There are several bugs were found and fixed. Thanks given to Kim Shultz and David Gasperino for the patches!
JSONlab
JSONlab 1.0 RC1 (release candidate) is now official. It too has several important bug fixes, better UBJSON support and Octave compatibility. Download the latest JSONlab toolbox from here. I'd like to thank Craig Pomeroy and Ismail Badawi for the helpful bug reports!
Habitat Wiki
Probably you've noticed the similarities between the websites for iso2mesh, MCX, MMC, BLIT, WenQuanYi Project etc. They were all built from an open-source wiki engine I developed (based on prior works), called "Habitat". Over the past 10 years, it gradually evolved based on my needs. Now I target it as a light-weight, flexible, easy-to-use wiki platform for small projects. I just uploaded Habitat v0.5, containing improved CSS styling and robustness. Feel free to play with it and see if you can make use of it.

[August 1, 2014] Saving Lives at Birth!

The Saving Lives at Birth Program announced this year's awardees at the DevelopmentXChange forum earlier today. My proposal for developing mobile-phone based oximeter was luckily nominated as one of the 24 seed grants. My collaborator, Pat, and I also won another seed grant for mobile phone based thermal imaging. We were thrilled! I can't wait to start the projects! Congrats to all awardees and finalists! and thanks for USAID, Gates Foundation, GCC and other sponsors.

On the flip-side, I almost missed my 5 PM flight back to Boston. The results were announced around 3:10PM, then group photo. I had to beg everyone at the security line to let me go first; fortunately, they were all very kind.

[May 8, 2014] Help needed for continuing the MCX/MMC projects!

With insufficient funding support, the further maintenance and development of MCX/MMC software are in jeopardy. Please help me for an NIH grant application by sharing your testimonial and/or writing a support letter for MCX/MMC if they have shown value to your research. If successfully funded, the project will deliver many exciting new features, faster and more robust software, helpful training courses and better support to our biophotonics community. Read more details.

[January 31 2014] Happy Chinese New Year!

Happy Chinese New Year! Year 2014 is the Year of Horse (马年). Wish everybody 马到成功一马当先!

[January 5 2014] MCX 1.0 alpha1 and MMC 0.9.5

Please upgrade to the latest releases of MCX and MMC. A critical bug, affecting all simulations with g=0, was fixed. There are also a number of important new features added. Find out more details from the MCX release notes and MMC Release Notes.

[November 19 2013] Say Hi to Andy

My first child, Andy Fang (Chinese name: 房), was born at 10:20AM EDT on Oct. 30. He weighted 6 pound and 13 ounce at birth. He has been doing great over the past few weeks. You can find the very first set of photos of him in this album. We are looking forward to sharing you more exciting news about him as we watch him grow.

[Sep 26 2013] Complex source support and MCX 1.0 alpha

Finally, I can cross out another item from my TODO list - the complex source support is finally added to MCX! With this new feature, the 1.0 alpha version of MCX was just announced in the mailing list! With this release, you can not only simulate a simple pencil beam, but also a dozen of other source types: isotropic, cone, Gaussian, arcsine, uniform rectangle, uniform quadrilateral, uniform disk, Fourier pattern, 2D Fourier basis, and, making it even cooler, an arbitrary pattern made from any image! Also released is the v0.8.0 maintenance update. I'd like to give my thanks to Vivian Pera, Okito Yamashita, Matt Adams, Audrey Steever and Suresh Paidi for their careful testing and insightful suggestions. If you are using MCX in your research, grab the latest software and have some fun! By the way, checkout the "MCX dice" animation on the right, all 3 simulations took less than 90 seconds on my GTX 590 (using only 1 GPU)!

[August 24 2013] Universal Binary JSON format is supported in JSONlab

This has been on my TODO-list for quite a while. Finally, I finished the codes to read and write a binary JSON format - Universal Binary JSON, or UBJSON. This format inherits the simplicity and generality of a text-based JSON format, while allowing one to pack arbitrarily complex structural binary data (arrays, cells, strings and scalar values) for data-exchange without losing accuracy. I just uploaded a new release of JSONlab, v1.0 alpha, for testing of this new feature. The parsing/encoding speed for UBJSON is nearly 10x faster than the text-based JSON; the output file is also significantly smaller. Download it from here.

[July 16 2013] iso2mesh 2013 is here

There are still five and half months to go for year 2013, so it is not too late to hand you the final release of Iso2mesh 2013 :) Peter Varga@Charité had contributed a patch to set mesh density for each label with cgalmesher. Also, you can plot mesh slices directly in plotmesh. See Release notes and ChangeLogs for details. To download the latest files, please follow the instructions in this link. Please post your feedback at our mailing list.

[July 01 2013] Postdoctoral position available (position filled)

I am looking for a postdoc on optical imaging and multi-modal data analysis. This position is available immediately. Please find more information regarding this job in the posted job Ad.

[April 19 2013] Boston Strong

It has been an intense and interesting day here. I do not live in Boston or near the center of the events, but many of my colleagues are. Thankfully, the manhunt was over and people can finally go to bed relaxed!

[January 28 2013] Call for Posters/Demos for IEEE International Conference on Computational Photography

I am helping organize the Posters/Demos session for this year's IEEE ICCP conference. The organizing committee is seeking biomedical applications using optics and computational photography techniques. Please help me distribute this call if you think it is relevant. Thanks!

-- Click here to read the Call for Posters/Demos

[January 21 2013] The most powerful iso2mesh ever!

Happy new year! After 20 months of active development, I am proud to announce that a new beta release, Iso2mesh 2013, has finally arrived! This is the first major release towards the 2.0 milestone. Many new features were added. The toolbox grew by 30% in functions and 100% in size. Please read the Release notes and ChangeLogs for the detailed updates. The download files are available for Linux, Windows and Mac.

[September 27 2012] Pushing the speed limit for mesh-based Monte Carlo on a modern CPU

A new paper entitled "Accelerating mesh-based Monte Carlo method on modern CPU architectures" by Fang & Kaeli was accepted for publication in 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. Update: download paper PDF.

[August 27 2012] Wide-field mesh-based Monte Carlo

A new paper entitled "Mesh-based Monte Carlo method in time-domain widefield fluorescence molecular tomography" by Chen, Fang & Intes was accepted for publication in 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, of MMC.

[August 20 2012] MMCLAB - Mesh-based Monte Carlo for MATLAB/Octave

MMCLAB, an easy-to-use Matlab/Octave toolbox with full MMC features, is announced for testers. Learn more from here. Testers are welcome!

[August 10 2012] MMC paper tops BOE monthly download list

The original MMC paper finally moved to the top in the BOE monthly Top Download list. It first entered the top-10 download list exactly a year ago. [Update 01/2013:]: The paper moved to the top position again in December 2012.

[July 15 2012] Monte Carlo eXtreme for OpenCL -- works on NVIDIA/ATI GPUs and CPUs

The full announcement can be found in the mailing list.

After some long procrastination, I finally uploaded the OpenCL version of MCX from a private repo to github. The code was essentially written over 2 years ago, and I have been trying to keep up with the MCX development with occasional updates. It shares a lot codes from the CUDA version of MCX, although it has not been tested as much. I spend some time over the past two days to update it again, and tested with nvidia and ATI cards. The basic features seem to work robustly. Now I think it is time to benefit from public tests and feedbacks. A complete develop log can be found here.

[July 13 2012] iso2mesh v2/v3 roadmap update

The full announcement can be found in the mailing list.

A new iso2mesh workflow diagram was uploaded to the Sourceforge website. In particular, the updated diagram summarizes the up-to-date additions to iso2mesh towards v2.0 milestone, and the roadmap to further development towards version 3.0 in the future.

[April 10 2012] Postdoc position is re-opened (filled in June)

See my previous post on November 13, 2011. The updated job description can be found at http://jobs.phds.org/job/33374.

[January 19 2012] Monte Carlo eXtreme new stable and beta releases

Happy new year! I am excited to let you know that two new releases for MCX and MCXLAB had become available recently. In the stable release v0.5.3, we fixed a forward-scattering-bias issue, discovered by David Giraud from BU, and added JSON-formatted input file support. In the beta release v0.7.9, we added additional support for 3D shape files and run-time rasterization. You are recommended to upgrade to the news releases. Your feedback to the new beta release is welcome! See ChangeLogs for more details. Get them from here.

[December 20 2011] Mesh-based Monte Carlo 0.9.0

MMC v0.9.0 has arrived with many bug fixes and new features! Thanks to a patch contributed by my colleague 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.

I would also make a preannouncement to the next milestone release of MMC, i.e. version 1.0. We will include wide-field illumination and MPI supports in MMC, as a result of a collaboration between me and Dr. Xavier Intes and Jin Chen from RPI (Jin did excellent job implementing this). Stay tuned if you are interested.

[November 13 2011] Postdoc opening at MGH/Harvard (Update: Position filled, 02/09/2012)

I am looking for a postdoctoral research fellow as part of a new collaboration with Philips Healthcare (Andover, MA) on developing novel multimodality breast imaging systems. The job description is detailed in this link. If you are interested, please email me your research statement, full CV, at least 2 recommendation letters or list of references.

[October 11 2011] JSON encoder and decoder and JMesh specification

JSON (JavaScript Object Notation) is a highly portable, human-readable and "fat-free" text format to represent complex and hierarchical data. It is as powerful as XML, but less verbose. It is my opinion that JSON has the potential of serving as a mainstream scientific-data interchange format in the future, and fulfills part of the roles achieved by HDF5.

JSONlab is a by-product of my effort in developing a flexible mesh description file format (.jmesh) for my mesh generator. It contains loadjson.m - a JSON->MATLAB decoder, and savejson.m - a MATLAB->JSON encoder. The loadjson.m script was derived from the previous works by several other people. I tested the script with a number of complex JSON inputs, and it worked just fine! If you want to try out this toolbox, you can download it from its subversion.

  • Update [2012/01/14]: JSONlab 0.8 is announced, and it gets a new logo! It is 20x faster when loading large arrays in MATLAB. Download it from here. Thanks to Mykel Kochenderfer@Lincoln Lab for many useful feedbacks!
  • Update [2011/10/16]: the first JSONlab release is available for download.

[September 21 2011] Bug fix in MCX 0.5.2

I just announced a new release of MCX, version 0.5.2, in the MCX mailing list. In this release, I fixed a bug related to using non-integer detector positions for mcx_det/mcx_det_cached, a bug reported by my colleagues at Ecole Polytechnique Montreal. It also contains a few improvements. If you use "detective MCX" in your research to calculate partial pathlengths, I urge you to update the software to the latest version.

[September 3 2011] New Project Announcement: Blit

It is my pleasure to share another new project with you. Blit is an open-source library for ``block iterative sparse linear solvers''. I will implement the block versions of QMR, GMRES and CG algorithms to speed-up model-based medical imaging computation where solutions at multiple source/detector locations are required. Currently, BLQMR algorithm has been successfully implemented in MATLAB and FORTRAN90. A C/C++ header unit will be added soon. You can access the latest code from the git repository at Sourceforge. Please browse Blit's homepage at http://blit.sf.net for more details.

[August 9 2011] MMCM paper ranks 9th in BOE July downloads

The mesh-based Monte Carlo method (MMCM) paper published last year enters the top download list of Biomed. Optics Express (BOE) in July.

[June 17 2011] Milestone release for MMC and new update for MCX

Mesh-based Monte Carlo (MMC) version 0.8.0 is a milestone release. It contains numerous updates including important new features and critical bug fixes. The software had been thoroughly validated and optimized for better speed. The highlights of the new release include 3 new ray-tracing algorithms, SSE accelerated computation, partial path-length recording and fixing critical bugs in mesh file generation. You can find more in the Release Notes and full ChangeLogs. Get it from this link.

The GPU-based Monte Carlo simulator, MCX, also received a new update, v0.5.1, last week. It contains a fix to the shared memory buffer and improved flux/fluence normalization. MCXLAB was also updated to 0.5.1. Find more from the Release Notes and download the updated software from here.

[June 4 2011] Iso2mesh v1.0.1

Iso2mesh v1.0.1 is a maintenance release, it fixed several bugs and issues in the 1.0 version and added 64bit binary support and integrated CGAL polyhedral mesher. See Release note and ChangeLogs. Download it from here.

[April 28 2011] Grand challenges explorations award from the Gates Foundation

Today, the Gates Foundation announced the wining applications for the Round 6 of Grand Challenges Explorations grants, including a grant proposal of mine (#3 in the list). I will be developing ultra-portable and low-cost cell-phone based imaging application.

[April 27 2011] New grant award from Mass Life Science Center

I feel extremely honored to be one of the two awardees receiving the highly-competitive Cooperative Research Matching Grants (Round 2) from the Mass. Life Science Center. Here is the official press-release announced today, and an interview by Mass High Tech News. I am truly grateful for the support from MLSC and Philips, and looking forward to the exciting new project. Update 05/04/2011: Interview by Health Imaging News, thanks to Clint vanSonnenberg.

[April 19 2011] Comment on comparisons of mesh-based Monte Carlo software

A letter came out today on BOE, commenting on a recent comparison study for mesh-based MC. In the original article, the discussions on computational speed and the main conclusion were found questionable. We also found differences in random-number-generator settings, Russian roulette settings and memory utility. Here is the author's reply. Please also note that MCML-inspired software (CUDAMCML, TIM-OS etc) imposes specular reflection while MMC doesn't. See this FAQ. A new version of MMC (v0.8) is expected to be released soon.

[March 31 2011] Digimouse atlas FEM mesh

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.

[March 20 2011] Announcing MCX and MCXLAB v0.5.0

It is my great pleasure to announce the final release of MCX v0.5. The most important addition in this release is MCXLAB, the native MEX version of MCX for MATLAB and GNU Octave. Now you can do everything, including setting up the problem domain, launching simulations and analyzing the results, entirely inside MATLAB/Octave without involving disk files. Here are some screenshots for MCXLAB in MATLAB and Octave. For more details, please read the Full Release Notes and ChangeLogs. Download the software from this page.

[February 28 2011] Release announcement for iso2mesh 1.0

The most important release yet of the iso2mesh toolbox, i.e. version 1.0, has finally arrived! Please read the Release notes and ChangeLogs to find more details. This is a stable release and is highly recommended to install or upgrade.

[February 05 2011] Making an anatomically accurate digital brain FEM mesh

Happy Chinese new year! At the beginning of the Rabbit year, 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 a "narrative" Release Notes.

[January 31 2011] Release candidate for iso2mesh 1.0

The release candidate of iso2mesh 1.0 (i.e. v0.9.9) is now available for download. Please read the release note, full ChangeLog and SVN commit history to learn more details.

[December 21 2010] Radiology paper is on the front cover!

Just found out today when receiving a copy in the mail. Our paper is on the front cover of the Jan 2011 issue of Radiology. The cover scan is on the right :)

[December 15 2010] MMC second release is announced

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. Just for fun, I also got it working on my Epic, see this screenshot for a proof :)

[November 09 2010] Press release from RSNA

A new paper on combining optical and x-ray mammography was recently accepted by Radiology. Here is the press release from RSNA. The paper preview is also published on Radiology's website. Here is the CBS news and report of this work (Dr. Kopans is the clinical collaborator on this project).

[November 03 2010] MMC first release is announced

A new open-source software, Mesh-based Monte Carlo (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. Download it from here.

[September 10 2010] Slides on MCX and MMC

Here you can find my slides presented at the 2010 Virtual Photonics Workshop at BLI. It was a wonderful event organized by Dr. Venugopalan and Dr. Spanier.

>> Older News ...