Model Creation

There are a few requirements / recommendations for models on Core3D to enable access to all features. Please read through the guide below when creating models.

Contents

GLTF / GLB (Export Formats)

You can use just about any model authoring software to create your model: Blender, CLO3D, Browzwear, etc. but please export your model in a binary GLTF format (.glb).

Max Upload Size

The maximum upload size Core3D supports is 25 MB. If you need higher limits please reach out.

Post-Processing

Uploaded GLBs are processed to:

  • remove materials, skins, textures, and deduplicate the remaining resources
  • center the scene
  • apply DRACO compression

If you want to discuss custom requirements for your account please reach out.

World Units

In Core3D, one world unit is equal to one meter. For models to appear correctly in various rendering contexts, you'll want to make sure the world units in your model make sense in the real world. For example, if you're creating a t-shirt, its bounding box should have a width less than one (in world units) -- if the bounding box is 10 world units wide an adjustment likely needs to be made in the modeling or export process. You can use a tool like GLTF Report to verify the bounding box of your GLTF scene before uploading to Core3D.

Ratio

Expanding on the world units section above, Model resources in the API have a ratio property which describes the width of UV space in meters. The default value is 1, meaning UV space is one meter wide. This property is important when producing physical production Exports or supplying real-world units to the SDK so you'll want to set it as accurately as possible when setting up a new model in the API, but depending on your use case you might be able to get away with a little inaccuracy.

How do you determine the ratio? You can use the UV bounding box and real-world unit bounding box of a pattern piece to find the correct value. For example, a t-shirt with a "body front" pattern piece has a UV bounding box width of 0.35, while the width of the bounding box of that pattern piece in the real-world is 50cm, or 0.5m. We'd compute the ratio like this:

<uv width>x = <real-world width>
0.35x = 0.5
x = 0.5 / 0.35
x = 1.428571428571429

Our ratio for this model is 1.428571428571429.

UVs

UV Range

You'll want to ensure your UVs are within the 0 - 1 range. UVs outside of this range will not be rendered properly.

UV Stacking

UVs can be stacked, but usage with Zones require special considerations. If a Zone is defined in a space occupied by two or more mesh UV islands, but you only want the Zone to apply to one of those meshes, you'll need to utilize the meshes property of the zone definition when creating or updating your Model (see the API reference).

For example, take a t-shirt model where the UV islands for the front and back meshes occupy the same space in UV space. We want to define separate "front" and "back" zones for graphic placement, but ensure they only appear on the front and back meshes during rendering. We'll need to define a "front" zone and supply the front mesh URI during zone definition:

{
// ... additional properties omitted
"zones": [
{
// ... additional properties omitted
"name": "Front",
"meshes": [
"mesh:Body Front:0"
]
}
]
}
WARNING

Stacking UVs does complicate things for bake-type Exports, where all textures are collapsed into a single image for use with optimized digital assets. Since they occupy the same UV space, the graphics will appear stacked in the baked texture. You can overcome this by baking separate textures for overlapping UVs.

UV Scale

For real-world use cases we recommend keeping your UVs scaled relative to one another. For example, UVs for a left sleeve mesh of a t-shirt should not be larger in UV space than the main body pattern pieces.

UV Orientation

Ideally your UVs should be oriented left-to-right and top-to-bottom so that Core3D tooling (like the SDK Tool class) operate as expected. This means when editing in Blender, for example, t-shirt components should appear right-side up in the UV editor (the top of the pattern piece in world-space should point towards the top of UV space). We may implement handling of UVs in other orientations in the future, but for now the handling is static.

Meshes

Separate Meshes

Assignable Resources (patterns, materials, etc.) are generally applied at the mesh-level (except for graphics, which can be applied to Zones, as well). This means you'll want distinct meshes for each part of the model onto which you want to apply distinct resources. With a single mesh, any resource applied will appear on the entire model. With separate right and left sleeve meshes (for example), resources can be applied and scaled, transformed, and rotated independent of one another.

Mesh Naming

We derive the name of the component from the mesh itself. In an editing context where a human is choosing where to place artwork you probably want to give the meshes meaningful names. Rather than "Mesh" for each one, name them "Body Front" or "Left Sleeve", etc.

Get in touch

We'd love to learn more about your vision and how we can help.

PressPrivacyTermsSupportCopyright © 2025 Core3D, Inc. All Rights Reserved.