Introduction: Princess Peach Pointillism

About: Mad scientist, woodworker, creative evil, artist, tinkerer, father of five creative hooligans.
1080 980 plastic bottle caps + 16 acrylic paint colors + a couple of Perl scripts + 6 months worth of work =

Step 1: Materials

First, convince your entire family to start collecting plastic bottle caps. To make things even more fun, don't tell them why they are collecting caps.

Select a suitable picture, in my case I selected a 30 x 36 image of Princess Peach. Be sure to select a small image as you're going to need one cap for every pixel.

Once you have collected at least 1080 caps, you're ready to start phase two.

(Note: It's been pointed out that the image is actually 28 x 35 totalling 980 caps. I forgot that I lost a row and and two columns when I  planned out the border. Small oversight on my part, can't believe someone actually counted!)

Step 2: Color Selection

I used some Perl code and ImageMagick to extract the color pallet from the image. For each color in the pallet, I assigned a simplified hexadecimal code:

$cc{"000000"} = "0"; 000000 = 237
$cc{"A85000"} = "1"; A85000 = 6
$cc{"B81018"} = "2"; B81018 = 5
$cc{"D03850"} = "3"; D03850 = 32
$cc{"E86000"} = "4"; E86000 = 47
$cc{"E86050"} = "5"; E86050 = 8
$cc{"E08030"} = "6"; E08030 = 3
$cc{"E88090"} = "7"; E88090 = 29
$cc{"F09058"} = "8"; F09058 = 42
$cc{"F0C830"} = "9"; F0C830 = 9
$cc{"F8A800"} = "A"; F8A800 = 117
$cc{"F8B0D0"} = "B"; F8B0D0 = 40
$cc{"F8B880"} = "C"; F8B880 = 23
$cc{"F8F030"} = "D"; F8F030 = 60
$cc{"F8F8F8"} = "E"; F8F8F8 = 35
$cc{"FFFFFF"} = "F"; FFFFFF = 387

Total = 1080

The program output above shows the color code in hex, its assigned simplified code, and the number of times that particular pixel appears in the image.

I then created a pallet chart and printed it out. When mixing colors, I would first test them against the palette. For me, mixing a large amount of the same color was challenging.



Step 3: Painting the Caps

Using the printed color pallet, I then hand-painted each cap with acrylic paint. For example, I painted 237 black caps, 117 orange, etc. Painting the caps was tedious and time-consuming and I had to “develop” a special tool to help with the painting process. I used a 3/4” wood dowel with painters tape around one end. The caps fit snugly on the end of the cap so they didn't fall off while painting and then easily popped off for drying.

I opted to not spray paint them because I wanted to mix my own colors and ensure an even coat on the surface of the cap. In hindsight, an air brush may have been a better choice.

During the painting process, I made some modifications to the overall design and decided to change the boring white background on the original image to something more visually appealing.

The entire painting process took about 6 months working on and off.

Step 4: Layout

Keep in mind that up to this point, no one had any idea what I was making. We were collecting and painting caps, but the overall image was not clear. Using the color codes assigned in the previous steps and another Perl program, I generated an image showing the location of each color code (like a paint by numbers set):

----000000000011111111112222222222
----012345678901234567890123456789
00: FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
01: FFFFFFFFFFFFFFFF00F0F00FFFFFFF
02: FFFFFFFFFFFFFFFF0909090FFFFFFF
03: FFFFFFFFFFFFFFFF0999990FFFFFFF
04: FFFFFFFFFFFFF0000669220FFFFFFF
05: FFFFFFFFFFF00AAA001627000FFFFF
06: FFFFFFFFFF0AAADDAA0000AAA0FFFF
07: FFFFFFFFF0AADDDADDAA0ADDDA0FFF
08: FFFFFFFFF0ADDAA0AADDADDADDA0FF
09: FFFFFFFF0ADDDDAA04ADDDA0ADD00F
10: FFFFFFFF0AAADDAA00044440AAD0D0
11: FFFFFFFF0A0ADAA0558000080ADD0F
12: FFFFF0FF00ADDD050888888880D0FF
13: FFFF0A00AADDAAA08018CCC104AD0F
14: FFFFF0ADDDDA00A001E1CC18004A0F
15: FFFFFF0AADA0C0A08EE0CC080440FF
16: FFFFFFF0ADA08C0A0CE0CC080440FF
17: FFFFFFF0ADA08C8008CCC8C8040FFF
18: FFFFFFF0ADA4088888CCCCC800FFFF
19: FFFFFF0AADDA4000588C22880FFFFF
20: FFFFFFF0AAAAA44405888880FFFFFF
21: FFFFFFF0ADAA44440008880FFFFFFF
22: FFFFFF0ADDA0000003700030FFFFFF
23: FFFFFF0ADA037770007BB000000FFF
24: FFFFF0ADDA037BB7030000300BE0FF
25: FFFFF0ADA03777BB7037770EE0BE0F
26: FFFF0ADDA037B70B7037B0EEEB0B0F
27: FFFF0AAAA0377B707037B0EEEB0B0F
28: FFFF0AAA40337733003770EEEB00FF
29: FFFFF0AA4403300050330EBEB0B0FF
30: FFFFF00AA44033058030EEBB0B0FFF
31: F0FF0AAAAA4400580E0EEEB0BE0FFF
32: 0A00AAAA4AA44400EEEEEB00BE0FFF
33: F0AAAAA444A44030BBEBB0BBEE0FFF
34: FF044444044444070BBB030BBB0FFF
35: FFF00000F00000333000333000FFFF

total caps needed: 1081;

If you squint, you can almost make out the image in the letters and numbers above.

It was at this point that I realized just how big this picture was going to be. Each cap is roughly 31mm in diameter. Given that all caps are a little different, I set the grid to 33mm squares. The final image ended up at 3 feet wide by 4 feet tall! Not exactly something you can keep on your desk.

I cut a piece of melamine large enough to fit the image and a 1 square wide border around it. Using a ruler, I marked out the grid and wrote in the values for each square.

I recruited my kids to help with the initial layout of the image. I had them start with the black caps and asked them to guess what the picture was. Half-way through the process, my fourth daughter shouted out, Peach!

Step 5: Final

When I had almost finished painting caps, we sold our house and moved. I carefully packed up each cap (so they wouldn't be scratched) and crossed my fingers. Luckily, the entire project made it through the move in tact.

The final step was to build a frame. I build a simple wood frame out of pine with half-lathe corners and routed the back for the melamine to fit into. The frame is held together with wood glue and 1/2” brads.

I then carefully glued each cap down to the board using PolySeamSeal All-Purpose Adhesive and Caulk. This was a time-consuming and tedious process.  The caulk went on white and dried clear which made it easier to remove from surfaces where it didn't belong.

Overall, I'm pretty happy with the result. We took Peach out on the front porch and then went down the street to see how far away the image resolved. It was like having a giant icon on my porch!