From this page you can download the executable and source code to our research project, Interactive Digital Photomontage. If you simply wish to use our software, just download the Windows executable. If you would like to extend our approach, our source code is also available for research purposes. The source code is released under the terms of the GNU Public License.

This is research software and code, and thus very messy and poorly-documented. It is likely to contain bugs. We do not promise that it works, and we do not promise to support it. Use at your own risk!

Executable & Documentation

You may download the executable here. There is also some basic documentation. Sample data sets are available.

Notice that our system requires some sort of hardware-accelerated openGL. Don't worry, you likely have this.

Source Code

Our system uses the open-source GUI toolkit WxWidgets; as such, it can be compiled on Windows, Linux, or Mac OS X. However, we have only compiled it on Windows and Linux.

Also, we use graph cut software developed by Vladimir Kolmogorov. His source code is available publicly, but has not been released under the terms of the GPL; we thus ask you to download it separately.

The first three steps are the same for Windows or Linux.

  1. Download source code and unzip it.
  2. Download graph cut software here. Copy the following files from match-v3.1.src/maxflow/ to fuse/graphcuts/: block.h, graph.h, graph.cpp, maxflow.cpp.
  3. In line 102 of fuse/graphcuts/graph.h, change "short" to "float". In line 104, change "int" to "double".


  1. Download and install WxWidgets version 2.4.2. Make sure to enable openGL support by setting wxUSE_GLCANVAS to 1 in setup.h.
  2. Set the WXWIN environment variable to the path to your WxWidgets installation.
  3. Copy the contents of fuse/win to the top-level fuse directory.
  4. Open the Visual Studio project file, and compile.


  1. Make sure you have some sort of hardware-accelerated openGL, rather than pure software rendering.
  2. Download and install WxWidgets version 2.4.2. Make sure to enable openGL support by passing option -with-opengl to the Configure script. Also, read the README in fuse/linux.
  3. Copy fuse/linux/Makefile to fuse/Makefile. (Makefile originally by Bob Sumner.)
  4. Type "make".

Please email me if you have trouble with these instructions, or if you find the software useful.