Creating Christmas Cards with Primitive
I'm a bit of a scrooge when it comes to Christmas cards, well cards in general to be honest. They're nice enough but you open them, prop them up for a while and then throw them out. As such I don't see the point of buying expensive cards for each person.
An owl, taken from Michael Fogleman's Github page |
It uses vector-based geometric primitives (rectangles, triangles, ellipses, etc) to recreate an image. They look awesome and it gave me an idea.
So I downloaded the Go application he'd created and started looking for images to use as the starting point for my own, bespoke Christmas card. (Incidentally, if the command-line aspect is a turn-off and you have a Mac, you can grab a copy on the Mac Store, more details here.)
By way of example (these aren't the images I used, just some examples), here are a couple of images offered by Flickr users under a Creative Commons license. To be fair, either of them would have been good for a card as-is.
Festive ... or something :) by Iain Farrell | Oh Christmas Tree.. by John W. |
Primitive provides a number of options to affect the output, from the type of shape to how many are used to reconstruct the image. To show the range it offers, I ran each image through the Primitive tool at different settings (this still only scratched the surface). Click on the images for larger versions.
500 triangles | 1,000 triangles | |
2,000 triangles | 4,000 triangles |
For a subject this complex you can see the benefits of a higher number to provide a more refined image, but it's still perfectly easy to interpret, from a visual perspective, with a lot fewer and becomes more abstract. Using triangles it's almost cubist.
500 triangles | 500 rectangles | |
500 ellipses | 500 bezier curves | |
500 shapes (combo) | 1,000 triangles | |
2,000 triangles | 4,000 triangles |
As you can see, it's possible to get very creative and end up with something as expressionistic or realistic as you want, except with a nice effect that makes it look painted rather than photographed.