The 2D pattern (patron) is the flat, production-ready shape of each zone of the garment β extracted automatically from the GLB's UV mapping.
The 3D model is what the customer sees; the 2D pattern is what the printer receives. Every colorable zone (see Zones & restrictions) has a flat SVG outline. Because designs are positioned in coordinates relative to their zone, the same design renders correctly both on the 3D garment and on the flat print file.
When a GLB is dropped on the product page, the pattern is extracted per primitive from its UV layout (TEXCOORD_0):
zones_config.patron_paths[i], with its bounding box in patron_zones[i] ({x, y, w, h}).canvas_uv[i], rounded to a power of two, max 2048 px) so print resolution matches each zone's real UV size.The status line after a drop reports how many zones and UV patterns were extracted. Paths can also be inspected and edited by hand under "Show / edit raw SVG paths", and reviewed in the mapper's per-zone UV canvas table.
A single 3D model serves all sizes, but the print dimensions differ per size. Patterns are therefore stored per size in zones_config:
{
"patron_zones": { "0": {x,y,w,h}, β¦ }, // _default fallback
"patron_paths": { "0": "Mβ¦Z", β¦ },
"uv_dims": { "0": {"mirrorX": true}, β¦ },
"bySize": {
"S": { "patron_zones": β¦, "patron_paths": β¦ },
"L": { β¦ }
}
}
_default pattern first (typically size M).4A = 0.50 up to 14A = 0.85, adults XS = 0.92 β¦ XXL = 1.18 β¦ 5XL = 1.36.GET /api/products/{id-or-slug}/patron?size=L β if that size has no dedicated pattern, it falls back to _default. Responses are cached for 5 minutes.In studio mode the configurator shows a "2D" toggle button that switches to a synchronized 2D pattern view: all zones laid flat, with zoom and pan. Elements (text, logos, numbers) can be selected, moved, rotated, scaled β and even dragged from one zone to another β directly on the flat pattern; the 3D view stays in sync. The button is hidden on the public configurator.
A catalog product cannot be published without a pattern: the publish endpoint rejects the request (HTTP 422) unless patron_zones/patron_paths exist, either at the root or under bySize._default. Without a pattern, the configurator cannot position designs correctly. Define at least the _default pattern before publishing β see Products for the publication workflow.
From the configurator's Export tab, a finished design can be exported as: