HOW A SPECIMEN IS MADE.
A raster study goes in and an SVG of flat triangles comes out. This page prints the pipeline that does it, the parameters every specimen is forged with, and the two failures the pipeline was built around.
tools/polygon-lab/facet.mjs
tools/polygon-lab/forge.mjs
ONE SHARED BRIEF. THIRTEEN DISTINCT FORMS.
Every study begins with the shared production brief printed below, then adds a species-specific pose and anatomy note. The collection keeps one folded-paper language without cloning one silhouette thirteen times. The complete Nano Banana prompt ledger and every selected PNG are committed beside the meshes computed from them.
The forge is a script in the same repository, tools/polygon-lab/forge.mjs. It runs by hand when a specimen is added and stays out of the site build entirely. The same study with the same seed reproduces the same mesh byte for byte, so a new specimen arrives as a diff a person can read.
premium editorial low-poly folded-paper sculpture with crisp interlocking triangular facets, visible paper depth and small edge shadows; authentic species anatomy; saturated vermilion, orange, yellow, acid green, emerald, teal, cobalt, violet and magenta on a high-key neutral white seamless background; restrained grounding shadow only; complete subject fully inside a square composition with generous margin; no scenery, pedestal, frame, text, logo or watermark; collectible design-object quality
ELEVEN STEPS FROM A STUDY TO A MESH.
Each step is a function in tools/polygon-lab/facet.mjs. The parameters quoted are the ones the collection is actually forged with.
- 01
The study is read
sharp decodes the committed PNG and resizes it to 900 units across. Every step below works in that pixel space, and it becomes the viewBox of the SVG.
- 02
The background is cut
A luminance mask keeps every pixel whose darkest channel sits below the ceiling: 244 of 255 by default, tightened per specimen in the manifest. On white paper with no cast shadow, that one comparison is the whole cut.
- 03
The mask is closed, then opened
Dilate, erode, erode, dilate, at a radius of one pixel. Closing first fills the pinholes a compressed study leaves behind; opening afterwards drops the speckle. In the other order the erosion takes a leg down to nothing before the dilation can put it back.
- 04
Small components are dropped
The mask is flood-filled into connected regions. The largest survives, along with every region holding at least four per cent of its area. A stray speck or the remains of a shadow leaves here.
- 05
The contour is walked
Every mask pixel with a background neighbour is a boundary pixel. Those are thinned to one point every few pixels and enter the point set first, so the silhouette is cut by real vertices. The mask border is also written into the edge field at full strength, which pulls further points onto the outline.
- 06
The interior is sampled
Points are drawn inside the mask's own bounding box, so the budget is spent where the specimen is. A Sobel edge field decides whether a candidate is kept: a flat region holds a floor of 0.035 and a turn raises that toward certainty. One point is allowed per blue-noise cell, and the cell is sized against the mask's area — cell = √(mask area / (points · 1.15)) — which keeps facets from clumping. The sampler is a mulberry32 generator seeded from the manifest, so the draw repeats exactly.
- 07
The points are triangulated
One Delaunay triangulation over the whole set, contour and interior together, through Delaunator.
- 08
Triangles outside the mask are dropped
A triangle whose centroid lands on background is discarded, and so is any triangle under a square unit of area. What survives covers the specimen and stops at its edge.
- 09
Each facet takes a colour
Four samples are averaged: the centroid, and three points half way from the centroid to each vertex. That average lands on the ink families named for the specimen — four of the nine logo inks on a market plate, all nine on the studio mark — where hue picks the family and brightness picks one of three steps of light: a shade mixed toward ink, the ink itself, and a tint mixed toward white. A facet carrying no hue lands on ink or on paper. The forge snaps at full strength, so every facet in a published mesh holds one of those flat values.
- 10
The facets are ranked along the spine
The covariance of the facet centroids gives the specimen's principal axis, and a facet's rank is its projection onto that axis, written into the polygon as --i. The fold then runs along the body, nose to tail on a quadruped and beak to feet on a wading bird, with no hand-authored axis to keep in step with the art.
- 11
The SVG is written
Coordinates round to whole units, because the viewBox is 900 across and a tenth of a unit is a fraction of a pixel. Each vertex is then pushed 0.45 units away from the centroid of its own facet, so neighbours overlap and no hairline of paper shows between them. Every polygon carries its rank and its fill and nothing more. A coarser second pass at 26 per cent of the budget merges same-colour facets into one path per ink, and that file is what the grid cells and the 64px marks load.
THE STUDY, AND THE MESH IT BECOMES.
The committed study first, then the mesh the forge computes from it at the parameters listed underneath. Every figure here is read back out of the files.

The committed study, resized to 900 pixels and stored as WEBP.
The forged mesh: one SVG of flat triangles, each carrying its rank along the spine.
- Point budget
- 470
- Points placed
- 470
- Seed
- 7
- Mask
- lum
- Render width
- 900 px
- Ink families
- teal · blue · purple · green
- Facets
- 842
- Grid facets
- 356
- Inks
- 13
- Mesh size
- 61 KB
- Study size
- 37 KB
- Accessioned
- 2026-09-03
TWO FAILURES THE PIPELINE WAS BUILT AROUND.
Both are on the record in the direction memo, and both are the reason a step above reads the way it does.
- 01
A heavy shadow defeats the cut
A dark warm shadow carries enough chroma to be read as part of the subject: the cut runs around it and the sculpture ships standing on a block. The production brief therefore permits only a restrained high-key grounding shadow on neutral white — light enough to sit above the luminance threshold. Every specimen in the register is cut with that same deterministic mask.
- 02
A grid sized against the frame loses the legs
The blue-noise cell that keeps points apart was first sized against the whole frame. A specimen covers about a third of it, so a frame-sized grid leaves fewer free cells inside the mask than the point budget asks for: the sampler runs out of attempts with the thin parts still empty, and a leg with no interior point has no triangle whose centroid falls inside it. The first beaver came out of the forge without any. Sizing the cell against the mask's own area, and sampling inside the mask's bounding box, closed both halves of it.
RECOMPUTED, THEN COMPARED.
node tools/polygon-lab/forge.mjs --check
Running the forge with --check rebuilds every specimen from its committed study and compares the result against the register. A facet count, a byte size or an ink count that disagrees prints as drift and the command exits non-zero. The same run measures each mesh against its ceilings — file size, facet count, the size of the study — and refuses to pass when one is over.
The accession date is handed to the command as an argument instead of being read off the clock, so rebuilding an unchanged study leaves its date where it was and the register keeps telling the truth about the age of the collection.
Every mesh in this collection is published under the Creative Commons Attribution 4.0 International licence. Use them, change them, publish them commercially; the one condition is that the attribution line travels with the file.
Marketing MIX — field guide, plate 01, North American beaver. CC BY 4.0. https://mmix.biz/field-guide/plate-01-beaver/
Swap the plate number, the common name and the address for the specimen you use.
READY TO BE FOUND BY HUMANS AND MACHINES?
Two paths in: a 30-minute call to scope the problem, or a free AI visibility snapshot across major answer engines.
Or reach the studio directly
+1 613 867 7767info@mmix.biz
