This is a JavaScript port of the https://primitive.lol app, originally created by Michael Fogleman. Its purpose is to re-draw existing images using only primitive geometric shapes.

You can find some additional (technical) information in the GitHub repository. This page acts as a small demo where you can experiment with the algorithm.

Try it in your browser!

Pick an image file from your computer

Check or adjust various rendering options

Add geometric shapes (large number: better results, slower)

Use these shape types:

Fill background with:

Starting opacity:

Computation size: pixels (smaller is faster)

Viewing size: pixels

Start every iteration with random shapes (larger number: more precise results, slower)

Stop shape optimization after failures (larger number: more precise results, slower)

Hit the button to start

This is a CPU-intensive process. It might take a while.