Drop an image to build a mesh
Drop an image to build a mesh
It builds a solid, not a surface. Most heightmap converters emit the visible surface only — a sheet with no back and no walls. A slicer reads that as infinitely thin and either refuses it or prints missing layers. Here the output is closed: top surface, flat bottom, four walls, every edge shared by exactly two triangles. The report in the panel counts those edges rather than assuming them.
It throws detail away on purpose. A 2000 px photo on a 100 mm print is 0.05 mm per pixel; a 0.4 mm nozzle cannot place a feature thinner than about 0.4 mm. Rather than emit four million triangles of noise, the image is area-averaged down to a grid your nozzle can actually reproduce. The grid size is shown next to the model, and the planResolution() call that decides it is a dozen lines you can read.
It stays on your machine. There is no upload, no account and no network request after the page loads. The library is a few hundred lines of dependency-free ES modules, and the same functions run in Node — see the repository for the CLI example.
When you need more than a height field. This tool maps brightness to thickness. It cannot invent the back of a head, wrap a texture around a curved body, or infer depth from perspective — a photo is 2.5D and nothing here pretends otherwise. If you need a real 3D reconstruction from one photo, with recipes and a printability check built around the slicer, that is what PhotoSTL does. Use this when the geometry is already flat; use that when it is not.