Skip to content
PT
Menu

Attribution

3D Model Credits

These apparel base models are adapted for interactive color and print previews under the Creative Commons Attribution 4.0 license. Product names and manufacturer specifications remain sourced from the store catalog.

Every model is served as a compressed copy for faster loading: its geometry is stored at reduced numeric precision and its colour, roughness and specular textures are re-encoded as WebP. Shapes, print areas and the fabric normal maps are unchanged.

tee

Men Regular Apparel Fit Sporty T-Shirt

Created by BINARYCLOTH

Modified by us. The creator's own running-figure "RUN" print is patched out of the back panel in every map that carried it - base colour, normal and metallic-roughness - with clean fabric copied from the same band of the front, so it does not appear under customer designs (tools/garment-assets/remove_baked_graphic.py).

Original model and license

tank

Tank Top

Created by Shift4cube / Mohan M

Modified by us. The creator's "Shift Cube" mark, embossed into the fabric texture on the front panel, is patched over with the surrounding rib knit so it does not appear under customer designs, and the fabric roughness is raised from 0.60 to 0.85 to match the other cotton garments (tools/garment-assets/material-fixes.json).

Original model and license

jacket

Basic Sweatshirt

Created by Alexander Kurmanin

Modified by us. A varsity jacket derived from the crew sweatshirt by tools/garment-assets/make_varsity_jacket.py: the mesh is cut at the shoulder, cuff, waist and collar seams so the body, sleeves and ribbing each take their own colour and material, and a snap placket is added down the front. The body still has no real opening behind that placket, the ribbing is the sweatshirt's knit rather than a jacket's heavier rib, and leather sleeves are a roughness value rather than a leather texture.

Original model and license

quarter-zip

Basic Sweatshirt, with a placket zip added

Created by Alexander Kurmanin

Modified by us. The crew sweatshirt with a short zip generated at its collar by tools/garment-assets/make_zip.py. It has no stand collar, which a real quarter-zip has, and no actual placket opening.

Original model and license

vneck

Crew tee, with the neckline cut to a V

Created by BINARYCLOTH

Modified by us. The crew tee with 276 triangles cut from the front of its neckline by tools/garment-assets/make_vneck.py, opening a 5in wide V. The cut edge is raw: a real V-neck has a ribbed binding around it.

Original model and license

hat

Baseball Cap Pack

Created by MadeByYeshe

Modified by us. One cap from the pack. A heart embossed into the crown texture, and a smaller mark on the opposite panel, are patched over with the surrounding twill so they do not appear under customer designs, and the cloth is made opaque - it was authored as blended transparency (tools/garment-assets/material-fixes.json).

Original model and license

Models we built

These are not licensed from anyone. They are generated from a script in this repository, so the geometry can be rebuilt and checked rather than taken on trust.

jacket

Classic Varsity Letterman Jacket

Built by us, from scratch.

Built procedurally rather than cut down from the crew sweatshirt, so the things that make a letterman jacket one are geometry instead of shading: a real front opening with a snap placket over it, set-in leather sleeves, ribbed collar, cuffs and waistband with actual ridges, welt pockets, and stripe bands on the rib. It carries all six Varsity print anchors, including BACK_YOKE, which the shared jacket mesh has no anchor for at all. It is the classic family only. The other four families are different garments and are drawn with their own migrated models.

tools/garment-assets/build_classic_varsity.py

jacket

Cropped Varsity Letterman Jacket

Built by us, from scratch.

Migrated from the legacy Varsity studio rather than rebuilt. That project holds 151 Draco-compressed GLBs of real letterman geometry, and authoring a cropped jacket from scratch when a 122,000-triangle one already existed would have been waste. The migration decompresses it (the runtime has no Draco decoder), rescales it to metres on the floor plane, decimates to 77,994 triangles, rebuilds every material white with the zone tags the Studio reads, removes the previous brand mark that was baked into the mesh, and adds the print anchors the legacy file never had - its decoration was DOM overlays. All six Varsity surfaces are anchored. The sleeve areas are sized from the sleeve rather than to the capability’s twelve inches, which is longer than this garment’s sleeve: at the full size the plane hung off the cuff and out into the air beside the jacket.

tools/garment-assets/migrate_legacy_varsity.py

jacket

Hooded Varsity Letterman Jacket

Built by us, from scratch.

Migrated from the legacy studio, and composed the way that studio composed it: the jacket base with its stand collar removed and the authored hood put in its place, both parts in the same rig, neither moved or rescaled to fit. The hood is real geometry with a mouth and an interior, not a shaded shape on the shoulders. Its colour is the construction record’s `collar` colour, because that record has six zones and a hooded jacket’s collar is its hood. All six Varsity surfaces are anchored, the sleeves sized from the sleeve itself.

tools/garment-assets/migrate_legacy_varsity.py

jacket

Zip-Front Varsity Letterman Jacket

Built by us, from scratch.

Migrated from the legacy studio. The jacket base with its snap placket, both front panels and the inner button facing removed, and the authored zipper body put in their place — so this garment has a real front opening with separate left and right panels and an actual zipper and frame, rather than a zip drawn down the centre of a closed body. That distinction is the whole of QA-001, recorded against the zip hoodie, which still has it. All six Varsity surfaces are anchored, the sleeves sized from the sleeve itself.

tools/garment-assets/migrate_legacy_varsity.py

jacket

Full-Length Varsity Letterman Coat

Built by us, from scratch.

Migrated, and the only one that had to be recovered rather than read. The legacy coat file is damaged: it is zero-filled from byte 868,996, so nine of its thirteen meshes — both sleeves, both pockets, the buttons and the lining — decode to nothing, and the importer reports that on stderr while returning success. The legacy studio had already worked around it, composing the coat from the intact `_core` body and the jacket file’s sleeves and pockets, and this reproduces that composition rather than inventing geometry: the sleeves it borrows are the same mesh, identical in triangle count and bounding box to the ones the coat file lost. It ends in a plain hem at mid-calf with ribbing only at the collar and cuffs, which is what the two photographed coats show. All six Varsity surfaces are anchored, the sleeves sized from the sleeve itself.

tools/garment-assets/migrate_legacy_varsity.py

beanie

Beanie

Built by us, from scratch.

Built, because a beanie is defined by what it does not have. There is no honest stand-in for it in the set — every other piece of headwear here has a brim or a peak — so these five products showed the Studio’s flat view instead of a garment. A rounded knit crown over a turned-up rib cuff, and the decoration sits on that cuff: the supplier’s area is five inches by one and four fifths, which is a band rather than a patch, and the anchor is placed against the cuff rather than against the bounding box.

tools/garment-assets/build_headwear.py

bucket-hat

Bucket Hat

Built by us, from scratch.

Built. A tapered crown with a brim that falls away through the full circumference, which is the thing the baseball cap does not have and the reason a cap cannot stand in for it. The hat’s lowest point is the outer edge of that brim, and that edge is the floor plane. One anchor on the front of the crown at the supplier’s 4.5 by 2.4 inches.

tools/garment-assets/build_headwear.py

trucker

Trucker Cap

Built by us, from scratch.

Built to replace a stand-in that was reading as the real thing. Ten products were drawn with the baseball cap and reported MODEL_READY, because the readiness gate was satisfied by any model rather than by this garment’s model. What makes a trucker one is a stiffened front panel, an open mesh back and a snap strap, so those are geometry here rather than shading. Two anchors, front and side, at the supplier’s sizes.

tools/garment-assets/build_headwear.py

bag

Tote Bag

Built by us, from scratch.

Built. Nothing else in the set could stand in for it: every other model is a top on a hanger, and a tote has no neck, no sleeves and a flat face. The face is deliberately flat enough to take the supplier’s ten inches by nine — a bag modelled as a soft sack would push a design into a curve nothing prints onto — with a shallow gusset and two carry handles so it does not read as a board.

tools/garment-assets/build_accessories.py

sweatpants

Sweatpants

Built by us, from scratch.

Built. The only two-legged garment here, which is exactly why no other model could stand in: a design placed on a tee’s front lands on a thigh on this one, and the supplier’s back area is 1.8 by 7.2 inches — a strip down the leg, not a panel across a back. Waistband, seat and two tapering legs with ribbed cuffs. The seat is a simple form and reads as one; it is a silhouette a customer can place a design on, not a tailored render.

tools/garment-assets/build_accessories.py

bodysuit

Infant Bodysuit

Built by us, from scratch.

Built to replace a stand-in that was passing as the real thing: four products were drawn with the adult t-shirt and reported MODEL_READY, because the readiness gate was satisfied by any model rather than by this garment’s. The snapped crotch gusset is what makes a bodysuit one — it is why the silhouette pulls in at the bottom instead of hanging straight — so it is geometry here, with its snaps tagged as trim so the colouriser leaves them alone.

tools/garment-assets/build_accessories.py

button-down-shirt

Button-Down Shirt

Built by us, from scratch.

The largest single model gap in Launch 1: seventy-three products, drawn as a long-sleeve tee because `Product.shape` could not say “shirt”. The front here is genuinely two panels with a button placket over them, and the collar, cuffs and buttons are geometry rather than shading — the supplier records LEFT_PLACKET, RIGHT_PLACKET, COLLAR, UNDERCOLLAR and two front panels on these products, and a mesh with one front panel has nowhere to put any of them. Six anchors: front, back, both chests and both sleeves.

tools/garment-assets/build_placket_tops.py

ls-polo

Long-Sleeve Polo

Built by us, from scratch.

Fourteen products drawn as a long-sleeve tee with buttons at a crew neck: a customer who asked for a collared shirt was shown a t-shirt. This has the two things that make a polo one - a flat knit collar folded down onto the yoke, and a short buttoned placket with the front closed below it, which is what separates a polo from a cardigan. Five anchors, sized from print-areas.json: back, both chests and both sleeves. No Print_FRONT, because the placket splits the front and the supplier sells a full-front print on none of the fourteen.

tools/garment-assets/build_placket_tops.py

zip-hoodie

Full-Zip Hoodie

Built by us, from scratch.

Sixty-one products were drawn by the pullover hoodie with a zip line generated over its closed front, and the caveat on that model said so: no opening, and a kangaroo pocket that crosses a centre line the real garment opens along. This front is two panels with the zip chain in the gap between them, the hood lies back across the shoulders with a lining visible at its mouth, the pockets are one per panel, and the cuffs and waistband are ribbed geometry. Nine anchors, sized from print-areas.json: front, back, both chests, both sleeves, both wrists and the outer neck. Seven of the sixty-one are not this garment — two half-zips and five unhooded full-zips — and carry their own verdict in LAUNCH1_PRODUCT_EXPERIENCE rather than inheriting this one.

tools/garment-assets/build_placket_tops.py

cardigan

Cardigan

Built by us, from scratch.

The same family and the same builder as the shirt: one parameter — how wide the front opens — separates them. A cardigan hangs open, so the back is visible between the front panels. Drawn closed on the crew sweatshirt it was not a plainer cardigan, it was a jumper. Five anchors: back, both chests and both sleeves, and no front anchor, because there is no front to print on.

tools/garment-assets/build_placket_tops.py