Low Poly Art Maker
Choose a photo and this tool places points on it, joins them into a Delaunay triangle mesh and fills each triangle with one colour sampled from the pixels underneath. Unlike a one-click filter, the points are yours to edit: add or erase them with a brush on the preview or from the keyboard, or type exact coordinates to add, move or remove one, and the mesh is rebuilt after each change. Points come from a seed, so the same picture, seed and settings always give the same art, and the edge bias pulls more points toward strong edges so outlines keep more detail. Download the result as a PNG at the picture's own size, as an SVG of flat triangles, or as a project JSON you can reopen over the same picture. The picture is processed on your device and is never uploaded.
Your picture
No picture open yet.
Result
Loading the example picture.
No picture is open.
Loading the example picture.
- Points
- 0 (0 fixed)
- Triangles
- none yet
- Image
- none
- Seed
- none yet
- Sampling
- 10 samples per triangle
Points
Coordinates are whole pixels from the top-left corner. Border points stay fixed so the mesh always covers the picture; every other point can be moved or removed here, and the brush on the preview adds or erases points.
| Point | X | Y | Kind | Actions |
|---|
Triangles
Each triangle lists its three point numbers and the flat colour sampled from the picture under it.
The triangle list appears when the mesh is current.
Worked cases
- 4 triangles, total area 12 = the rectangle
- 18 triangles (2n - h - 2 with n 12, h 4)
- 2 triangles, diagonal (0, 0) to (6, 4)
- rejected: 12.58 MP is over 12 MP
How the mesh is made. Fixed points run around the border, then each free point is drawn by the seed: with the edge bias as its chance, near a strong brightness edge, otherwise anywhere. The points are joined by a Delaunay triangulation, so no other point lies inside the circumcircle of any triangle, and each triangle takes one flat colour from the pixels under it. The picture never leaves this device.
Common questions
- How do I make low poly art from a photo?
- Choose a PNG, JPEG, WebP, GIF or BMP picture of up to 12 megapixels. The tool places the number of points you set (300 by default, border included), builds the triangle mesh and shows it straight away. Change the seed or the edge bias and press Generate points for a different arrangement, edit single points with the brush or the point list, then download a PNG or an SVG.
- What does the edge bias do?
- Edge bias is the chance, from 0 to 100%, that each free point is drawn near an edge instead of anywhere in the picture. Edges are found from brightness changes with a Sobel gradient, and stronger edges attract more points, so outlines such as a skyline stay crisp while flat areas like sky get fewer, larger triangles. At 0% every free point is placed uniformly at random, and a picture with no edges at all gets uniformly placed points.
- Can I move, add or delete points by hand?
- Yes. With Add points selected, click or tap the preview to place a point, or drag to lay a trail spaced by the brush size; with Erase points, click or drag to remove every editable point inside the brush circle. From the keyboard, focus the preview, move the cursor with the arrow keys (hold Shift for bigger steps), press Enter or Space to apply the brush and Delete to erase. The point list takes exact coordinates to add a point, move a selected one or remove one. Border points stay fixed so the mesh always covers the whole picture, and Undo steps back through your last 30 changes to the points.
- How are the triangle colours chosen?
- Each triangle gets one flat colour. Quick sampling reads the pixel under the triangle's centre, Standard averages 10 points spread inside it, and Full averages every pixel whose centre falls inside the triangle, so each pixel counts toward exactly one triangle; a sliver too thin to cover any pixel centre takes the pixel under its centre. Transparency uses a premultiplied average: each pixel's colour is weighted by its alpha, so fully transparent areas add no colour, and the triangle's opacity is the average alpha of its samples.
- Why do the same points always give the same triangles?
- The triangulation decides every in-circle and orientation test with exact arithmetic, so rounding cannot flip a result. When four points lie on one circle, as the corners of a rectangle do, the diagonal is drawn from the point that comes first reading top to bottom, then left to right. The mesh therefore depends only on where the points are, not on the order you added them.
- Is there a size limit?
- Pictures of up to 12 megapixels (4000 x 3000, for example) and no more than 16,384 pixels wide or tall are accepted, and a mesh holds up to 2,000 points, border included. The size is read from the file header before the picture is decoded, so an oversized file is refused before it can stall the page, and one over 12 megapixels is told a size that would fit. A very small picture can hold only as many points as it has whole-pixel positions, and the status line says when fewer points were placed than requested.
- What is in the PNG, the SVG and the project JSON?
- The SVG has one polygon per triangle with its exact point coordinates and colour at the picture's pixel size, plus the mesh lines if you turned them on. Opaque triangles also carry a half-pixel outline in their own colour, which makes the hairline gaps renderers leave between neighbouring shapes fainter; over a dark background a faint mesh can still show. The PNG closes those gaps: after the browser draws it, each see-through pixel whose centre lies in an opaque triangle is laid over that triangle's own colour, so a picture with no transparency gives a PNG with no see-through pixels. Pixels next to a translucent triangle are left as drawn, so it keeps its own opacity. The project JSON records the picture size, your settings, every point with the fixed border points marked, the triangles and their colours. Opening a project needs a picture of the same size: the triangles are rebuilt from the points and recoloured from that picture.
Original Delaunay triangulation in exact arithmetic, not 3D reconstruction or photo restoration: duplicate points are merged, a point on an edge splits it, and when four points share a circle the diagonal runs from the one that comes first reading top to bottom, left to right, so the same points always give the same mesh. Each triangle's colour is the alpha-weighted average of 1, 10 or all of the pixel samples it covers. Images are capped at 12 megapixels and meshes at 2,000 points.