Recreate your photos with vector-based geometric primitives.
Download • How it Works • Features • More Info
This ain't your mama's image filter!
Provide a photo.
Pick a shape.
Watch Primitive make art.
The user provides an image as input. The program tries to find the most optimal shape that can be drawn to maximize the similarity between the target image and the drawn image. It repeats this process, adding one shape at a time.
Using this process, the program can recreate a photo with surprisingly few shapes. It is quite CPU intensive, but Primitive is optimized to do it as quickly as possible. And the output is inherently vector-based!
Controls at your fingertips.
Paint shapes using the mouse.
Primitive becomes more interactive and user-driven in drawing mode. Click and drag the mouse to paint shapes in areas of interest. The app will look for shapes to draw in the general area of the mouse instead of searching the entire image. Watch the video to see drawing mode in action!
Bring static images to life.
The results are somewhat random, so you won't get the same output twice, even with the same inputs. One interesting use of this is to generate multiple images with the same input and then make an animated GIF of them to bring a static image to life.
Primitive can save its drawing in PNG, JPEG, or SVG formats. You can also set an output resolution to scale it up or down. SVG output consists of a single <rect> element for the background and <path> elements for each shape.
Press and hold the space bar to view the original image.
You can change most of the settings in the middle of a drawing. One interesting use of this is to draw some filled-in shapes first and then draw bezier curves on top to fill in the details.
Try hiding the toolbar and entering full screen mode to watch the program draw your photos!
Use the default working size of 256px to experiment and then bump it up to a large value when you're ready to produce a more detailed result.
Follow @PrimitivePic on Twitter to see a new primitive picture every 30 minutes!
Comments, questions, or concerns? Feature requests or bug reports? Contact: firstname.lastname@example.org