hckrnws
Show HN: Reconstruct any image using primitive shapes, runs in-browser via WASM
by taiseiue
I built a browser-based port of fogleman/primitive — a Go CLI tool that approximates images using primitive shapes (triangles, ellipses, beziers, etc.) via a hill-climbing algorithm. The original tool requires building from source and running from the terminal, which isn't exactly accessible. I compiled the core logic to WebAssembly so anyone can drop an image and watch it get reconstructed shape by shape, entirely client-side with no server involved.
Demo: https://primitive-playground.taiseiue.jp/ Source: https://github.com/taiseiue/primitive-playground
Curious if anyone has ideas for shapes or features worth adding.
I tried something similar once: https://www.youtube.com/shorts/750j6ssn5lw But it uses triangles only.
Autotrace [0] is in a similar space. It's list of output formats mean its fairly entrenched into this incredibly niche space (along with Inkscape).
For a lot of people, tools like this are only part of the journey of what they're doing. So how you hand off the file to keep editing will matter.
Some feedback that's hopefully helpful, would be great to add to the readme:
What would you say the primary purpose of this tool is? (not that a project needs a purpose beyond "because it was fun" or "just to learn" or even "because I could", but wondering). I have many times wished for a png to svg converter for various reasons (size, hackability, animate-ability) but I struggle to understand why you'd want to go from png to png with this (like in the demo image). I could very well be missing something though. The readme doesn't mention svg at all, though the linked inspiration project does so I assume that's a possible use case?
This page is a little older, but it offers the same kind of service and allows you to save in svg format : https://www.samcodes.co.uk/project/geometrize-haxe-web/
Not the guy who made it but I immediately wondered if I could use the intermediate steps with some "outline" mode to help me see things in shapes and finally learn to draw a bit.
Neat!
Pristine theatrics, man.
Crafted by Rajat
Source Code