12Field guide · method

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

01Provenance · the study

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.

The shared art-direction brief

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

02Method · the pipeline

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.

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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.

  6. 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.

  7. 07

    The points are triangulated

    One Delaunay triangulation over the whole set, contour and interior together, through Delaunator.

  8. 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.

  9. 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. 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. 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.

03Method · before and after

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.

Plate 01Castor canadensis
Study
North American beaver — Study

The committed study, resized to 900 pixels and stored as WEBP.

Mesh
North American beaver — Mesh

The forged mesh: one SVG of flat triangles, each carrying its rank along the spine.

North American beaver
Forge parameters
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
04Method · what went wrong first

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.

  1. 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.

  2. 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.

05Method · reproducibility

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.

06Method · licence

THE MESHES ARE CC BY 4.0.

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.

Attribution line

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.

Read the licence

Next move

READY TO BE FOUND BY HUMANS AND MACHINES?

Pricing: from €1,800 audit · from €2,400 per month

Two paths in: a 30-minute call to scope the problem, or a free AI visibility snapshot across major answer engines.

Tell us the goal · we will confirm the right next step

Or reach the studio directly
+1 613 867 7767info@mmix.biz