
Primitive – recreate your photos with vector-based geometric primitives - ngzhian
https://primitive.lol
======
minimaxir
An unexpected benefit of Primitive is that it helps create really cool
animations (both by screen-recording the Primitive app as it renders the
shapes for the image, and by working with SVG animation libraries on the web).

I played around with it a couple years ago
([https://minimaxir.com/2016/12/primitive/](https://minimaxir.com/2016/12/primitive/))
and it worked out surprisingly well.

~~~
fractallyte
You might be interested in Synthetik Studio Artist
([https://synthetik.com/](https://synthetik.com/)). Among (many!) other
things, it can process images and animations and output SVG. There are
operations that produce Primitive-style pictures, but also a huge number of
others. And it's customizable! A graphics rabbit-hole...

------
gameguy43
This sort of thing is useful for showing placeholder images while high-res
images load: [https://jmperezperez.com/svg-
placeholders/](https://jmperezperez.com/svg-placeholders/)

~~~
aurelian15
I've written my own placeholder image generator based on Delaunay
triangulation inspired by this blog-post. The generator produces reasonable
placeholder images at about 300 bytes. The overall effect is not as nice as
the images produced by Primitive though. However, Delaunay triangulation is
deterministic and relatively fast. Furthermore, the triangles can be
efficiently serialized as triangle strips.

In case anyone is interested, the code is on GitHub [1].

[1]
[https://github.com/astoeckel/aequipedis/](https://github.com/astoeckel/aequipedis/)

------
jnurmine
Roger Alsing (Johansson) did this in 2008:

[https://rogerjohansson.blog/2008/12/07/genetic-
programming-e...](https://rogerjohansson.blog/2008/12/07/genetic-programming-
evolution-of-mona-lisa/)

~~~
fogleman
Indeed. I mentioned that in the README:
[https://github.com/fogleman/primitive#inspiration](https://github.com/fogleman/primitive#inspiration)

~~~
jnurmine
I did skim that file through but missed it, sorry. It's worth pointing out in
the comments here in case others miss it.

The comparison is interesting since your rectangle version has superior image
quality compared to Alsings. If I squint my eyes it is hard to tell a
difference to the original picture. It looks blurred the "right way" somehow.

------
nzjrs
I'm struggling to find again a c++ implementation of this I saw on github a
while back. Does HN the hive mind remember?

~~~
fogleman
The core of Primitive is open source, written in Go.

[https://github.com/fogleman/primitive](https://github.com/fogleman/primitive)

Only the UI is closed source. It's written in Objective-C and basically shells
out to the Go code.

~~~
JoshuaJB
I was just poking through some of the code and noticed that there seem to a
lot of open bugfix PRs [1]. Have you thought about going through and
upstreaming some of them? Many of them seem like quick reviews.

Edit: Also, if you would like some help maintaining it, I imagine plenty of
fellow HN-ers (including me) would love to help.

[1]
[https://github.com/fogleman/primitive/pulls?q=is%3Aopen+is%3...](https://github.com/fogleman/primitive/pulls?q=is%3Aopen+is%3Apr)

~~~
idle_zealot
I noticed the PRs too. Looks like one of the people submitting them has also
been maintaining their own branch[1] with a bunch merged.

[1]
[https://github.com/bmaltais/primitive](https://github.com/bmaltais/primitive)

------
matthewfcarlson
I modified this to try and compare against the last image it generated and
feed it images via ffmpeg from a movie. Ultimately the results were still a
little too choppy for video but the effect was very cool. The processing time
was also incredibly long because lowering the polygon count made it very hard
to tell what was moving.

~~~
hckr1292
Could you post a video clip of the output? It sounds like the effect from "A
Scanner Darkly" perhaps -- loved that effect in that movie!

------
kccqzy
Almost a decade ago I remember using an online service called Vector Magic to
do this kind of stuff. At that time it was considered the state-of-the-art
auto tracer.

Is this noticeably better than Vector Magic when using Bezier curves?

~~~
ficklepickle
I keep a windows xp VM around almost exclusively for Vector Magic. I've never
tried it with photos though. Mostly for improving the quality of logos by
vectorizing then exporting a higher-res PNG.

Maybe I will finally be able to get rid of it. I can't tell right now, I think
Primitive is being hugged to death currently.

~~~
proxygeek
Vector magic runs perfectly fine and does a great job even in high Res photos
on Win 10. About 90 seconds for 2048x1433 image with some intricate details at
high quality setting (as compared to offered medium and low quality settings)
with unlimited colours.

But results are still pretty nice even at low quality setting with limited
colour palette. Hardly takes 15 secs.

------
real-hacker
Rediscovered, posted multiple times on HN.

------
KiDD
Please build iOS version!

