Facebook Instagram Flickr Twitter

Mosaic Now
Software for Light Painting Mosaics

Click the image above for a full size, high quality output.  This sample shows a big background image, several images shot in succession, a few other images shot at arbitrary locations as selected by the cursor.

What it does

My first light painting mosaics were inspired by the work of Brian Matthew Hart.  I shot a handful of mosaics myself and my least favorite part about them was assembling them after the fact.  The other thing was that I didn't get to see my results, or how the pieces fit together, until the entire thing was shot and assembled.  

This software takes care of assembling the image for you into a print-ready high-quality jpg file.  It also gives you the ability to view the creation process, tile by tile, as you proceed as well as the ability to back and reshoot any tile in the image.

Hardware and Software Requirements

The first thing you need before you even download my software is the ability to do a live transfer of files from your camera to a computer.  I use ControlMyNikon and have also used an EyeFi card.  Due to there being hundreds of camera models out there you're on your own for this step.

The next thing you need is to install the free software from Processing.org.  This is a visual art programming environment that is built on top of Java.  You don't have to know how to program or anything about Java to use my system though, you just have to have this environment.

The last thing you need is the 'sketch'.  This is how Programming.org refers to programs.  There is a download link at the bottom of the page.

Mosaic Now is provided free of charge for both personal and professional use.   When you have an opportunity to describe how the image was created I would love a link back to this url: "www.hackthelight.com/mosaicnow" with this text:  "Mosaic Now Light Painting Software by Dan Chick".   You can also donate via this PayPal link.  How much is it worth?  That's up to you.  I'd appreciate $5, I'd love $25, I'd be thrilled with $50-100.  But mostly make sure to get it and use it.  This is more about giving something back to the community than making some bucks.


Here is what this program can do:

  • Set output resolution
  • Pick column and row count
  • Live preview of image-in-progress
  • Save high resolution image
  • Visually see which tile you are working on next
  • Set background image to see which tile that actually is
  • Use cursors to select active tile, allowing you skip ahead or go back and reshoot

Future Features

  • Zoom into any tile, toggle between the image that was shot and that part of the background image (ie. next time)
  • (maybe) Ability to view zoomed background image in line art view, or red/blue/green separations as tile-creation aid.
  • Export ordered list of image names to allow you recreate this yourself externally, if desired
  • (maybe) Ability to import list of image names to rebuild an image in this program
  • (maybe) Historical view to allow you to make changes to a tile and cycle back through previous versions of that same tile
  • Ability to do mirroring (vert or horiz), or quad mirroring



Step 1.

Open Processing, load the sketch.

Step 2. Change these variables.

Note: Lines that start with // or that are enclosed by /*  */ are comments and you can ignore them.

savePath - the folder you want to save your output file in.  End it with a \ (Windows) or a / (Mac/Linux)

savefilename - the name of the outputfile

dpi - output dots per inch.  doesn't affect your original images but works with cols/rows to size output image

imagewidth / imageheight - not used in the default full screen mode. 

mirrorInputImage - set to 1 so that when you are shooting image while looking into the camera the image is flipped for your final image.  0 will not flip image and then you should manage your own tile-orientation

Step 3.  Run the sketch.

Enter the number of columns you want in your mosaic.  Then enter the number of rows.

Choose the folder you'll be shooting images into. (it doesn't tell you what this prompt is for, working on that)  Only images added to this folder after you start the program will be added to your mosaic.  Choose your background image, if you have one. (second prompt, also without description).  You will want to set this up ahead of time to have the same ratios as the column/row count you enter or else there will be distortion on your background image.

Wait a second for it to load.  When you see the selection rectangle you're ready.

Take pictures with your camera.  The program will take the biggest possible square out of the middle of your images.  If you're shooting landscape then the sides will be cropped.  If you're shooting vertically then the top and bottom will be cropped.

Hit the space bar to import new images into your mosaic.

Use cursor keys to select active tile.  

Hit Z to zoom in on a tile.  If you've already shot a tile it will enlarge.  Hit Z again to see the background enlarged for that tile.  Toggle as you see fit.  Hit X to go back to full image.  If you haven't yet shot that tile then Z will toggle between background image for that tile and full image.

Hit 's' to save the high resolution image.  Hitting multiple times will overwrite the same image file.

Hit escape to exit.


Download version 0.1.03a of Mosaic Now (6/18/2016)

Save that file as mosaicnow.pde, put it in a folder called 'mosaicnow' anywhere on your computer (Desktop is fine) and then open it in Processing.

Change Log

0.1 (6/16/2016)
Initial launch

0.1.01 (6/16/2016)
Fixed some background bugs (load issue, distortion on render)
MN now prompts for columns and rows at run instead of changing within the script

0.1.02 (6/17/2016)
The prompts were not playing well with fullscreen mode in Windows.  I moved those settings back into the header part of the code then reworked the program to reflect this.
Seems to be pretty stable on both Windows and Mac.
Going to try to work up a video tutorial tomorrow.

0.1.03 (6/18/2016)
Reorganized code to put all relevant settings close together for most users
Also organized code to allow for people (like me) to easily manage two different environments (Windows/Mac)
Added zoom mode!!  Hit Z to zoom in on a tile.  If you've already shot a tile it will enlarge.  Hit Z again to see the background tile.  Toggle as you see fit.  Hit X to go back to full image.  If you haven't yet shot that tile then Z will toggle between background image for that tile and full image.