25 years ago this month I released version 2.0 of my Mosaicer program. Today I release version 3.0. I hadn’t anticipated waiting 25 years, and I was originally going to do a follow-up much sooner, but when I was originally thinking about a version 3.0 the holder of a patent on photo mosaics was issuing cease and desist requests to developers working in the space.
I never got a case and desist for Mosaicer 2.0, but I didn’t want to bring any extra attention to myself in the off chance I would come onto the patent holder’s radar. At the time I remember reading through the patent and finding it overly broad, and looking at it again today, I feel the same way. I don’t see any way to create photo mosaic software without violating Claim 1 in this patent. And the guy who filed the patent wasn’t even the first person to make a photo mosaic. The whole thing just seems absurd.
But the past is the past. The patent expired in 2017. I could have released a version 3.0 then, but I had moved on by that time and was busy doing other things.
I had always wanted to revisit the app though, and a few weeks ago I remembered an idea I had for a photo mosaic app that used an FFT block matching algorithm. I had read about it in grad school and always thought it would be a good fit for a photo mosaic program. So I got to work and wrote a new photo mosaic app in Java – Mosaicer 3.0.
However, when I got to the part on writing a tile matcher that used the FFT algorithm I came to the sad realization that it was a poor fit. It did way more calculations than necessary and was more expensive than the standard sum-of-squared-differences calculation. Coming to this realization was a huge bummer, though since I was 90% done at this point, I decided to carry on and just finish up the app.
Mosaicer 3.0 isn’t really anything special – with the patent having been expired for 8 years now there are a lot of free and commercial options out there. However, one more free photo mosaic app can’t hurt, and one thing I thought I could provide that seemed to be missing was some good info on how to get images. That’s actually the hardest part about making a photo mosaic. So I put together a short list of resources and datasets that one can use when creating mosaics.
The albums dataset is especially cool. You can make album covers out of album covers. I made a Flickr Gallery of some of my favorites. Below you can see one of Metallica’s Master of Puppets.

Another idea I had was making YouTube thumbnails out of YouTube thumbnails. The yt-dlp app allows one to easily get thumbnails, and I was able to make some VSauce thumbnails entirely out of other VSauce thumbnails (example below). The only problem with this idea is that photo mosaics require a lot of images, and most channels don’t have enough videos.

I’m not sure if I’ll continue development on this app, but it’s been kind of fun to play around with.