Fractal Mosaics is a rotation, scale, and translation invariant photomosaic algorithm (i.e., the images can be placed at arbitrary locations, can be scaled to any size, and can be rotated by any angle).

Fractal Mosaics is implemented in Matlab. You’ll need a copy of Matlab with the Signal Processing toolbox installed (any version should work, most should come with the Signal Processing toolbox).
1. Download the [demo example](https://github.com/s-ben/Fractal-Mosaics/blob/gh-pages/code/FractalMosaics_package.zip). This has all the code you need. Simply modify the example to create your own mosaics.
2. Download the [example image set](https://docs.google.com/file/d/0B_2ApIVBvXm1RlFjTmVwUXRIcms/edit?usp=sharing) (706 MB database of images of San Francisco).
The demo example creates a black and white mosaic. This is because color takes ~3X as long. To create a color mosaic, download the [color image set](https://docs.google.com/file/d/0B_2ApIVBv Xm1ckhjX3RibVVPdkk/edit?usp=sharing), and set Fractal Mosaics to color mode (see the [Variables](https://github.com/s-ben/Fractal-Mosaics/wiki/Variables) page for info on this).
* [Fractal Mosaic “paper”](http://s-ben.github.io/Fractal-Mosaics/): academic-style paper explaining how the algorithm works
* [Wiki](https://github.com/s-ben/Fractal-Mosaics/wiki): includes pages with step-by-step instructions on how to create your own mosaic and description of variables used to tweak mosaic output.
Fractal Mosaics is licensed under the GNU General Public License ([GPL](http://www.gnu.org/licenses/gpl.txt)). If you wish to use Fractal Mosaics for proprietary software, let's talk! (seth.benton@gmail.com)