> ## Knowledge Base Index
> Fetch the complete knowledge base index at: https://help.sayduck.com/sitemap.xml
> Use this file to discover available pages before exploring further.
> Pure-Markdown content can be obtained by appending a '.md' suffix to the content URLs listed in the sitemap (without the trailing slash).

# 3D Assets - How to prepare?

The way your 3D assets are prepared will make a huge difference to your user experience. Learn how prepare them for Sayduck Platform.

### What assets do you need for the Platform?

We recommend to use OBJ since it is a very accessible 3D format that is supported in most 3D softwares. GLB and GLTF are great alternatives which also support **PBR Materials**.

* .obj
* .glTF (local, remote, embedded)
* .glb

###### Can I use the Platform without any 3D assets?

Each customer will have a Tutorial product with pre-existing 3D assets. This product can be used to try out our features.

![](https://storage.crisp.chat/users/helpdesk/website/cae6f284ce714800/screenshot-2022-09-14-at-14355_pemlx.png)

### What is the 3D asset upload size limit?

###### Maximum upload size per file

There is a maximum upload size for assets which is around 50MB per file (OBJ). However, there is no maximum product size.

###### Maximum polygon amount

There is no maximum polygon amount in the Platform, but for optimal performance, products should not exceed 200k polygons. This limitation is especially important to improve performance in mobile devices and AR assets.

###### What is the maximum meshes per 3D asset?

The maximum amount of individual meshes you can upload in a single file is around **25**. If this threshold is exceeded, all meshes will be merged into one single mesh.

# How to prepare Meshes for the Platform?

**Mesh** is the structural body of the 3D model and combined together with a **Material** it will create a **Node** that is displayed in the 3D viewer. 

![](https://storage.crisp.chat/users/helpdesk/website/cae6f284ce714800/meshes_98quz0.png)

### Merge meshes that share materials

Always aim to use the least amount of **Meshes** and **Materials** in the Platform. This will not only improve performance but also makes the product building process a lot easier.

When preparing your 3D assets for the Platform, you should combine **Meshes**/layers that share **Materials**.

![](https://storage.crisp.chat/users/helpdesk/website/cae6f284ce714800/screenshot-2022-08-16-at-13272_1t1591o.png)

### Model position & size

The 3D viewer camera will always be centered to the object but the model position and size is important for Augmented Reality. 

* Center the pivot point on the horizontal plane at the base of the model.
* Make sure that the model is stationed on the horizontal plane, so that it doesn’t appear floating in the air or underground.
* Use -Z Forward and -Y Up

After uploading, you can always recheck that your model was uploaded in the correct position and has the right dimensions with the **3D Dimensions** and **Axis** tools.

![](https://storage.crisp.chat/users/helpdesk/website/cae6f284ce714800/screenshot-2022-08-16-at-11063_v7zaa3.png)

### Polycount

There is no maximum polygon amount in the Platform, but for optimal performance, products should not exceed 200k polygons. This limitation is especially important to improve performance in mobile devices and AR assets.

**Draco compressor**
All 3D assets are compressed with Draco compression. This reduces the data to 1/10th of the original file size. However, when product polycount goes over 200k, this will start causing issues on low end mobile devices.

###### Example product polycount

**Sofa**: 50-120k polygons

![](https://storage.crisp.chat/users/helpdesk/website/cae6f284ce714800/sofa_3c9lt3.jpg)

**Chair**: 30-80k polygons

![](https://storage.crisp.chat/users/helpdesk/website/cae6f284ce714800/chairs_vql4es.jpg)

###### Use the same mesh structure for all configurators

If you are looking to build many similar products, you should use same mesh structure for all. By doing this, you will only need to create the product once and then just duplicate and replace the asset for the others.

To learn more, check out [Template product](/en/article/template-product-1jza5mb/)

### UV Mapping

###### Use same size UV Unwrap for all sizes/products

Making all your models UV maps the same size will allow you to use materials with same tiling values on all of your sizes/products.

###### Unwrap all models to same UV space

Using the same UV space will reduces the amount of textures and let you use same baked textures such as a occlusion map on all your assets. 

### Asset naming

Using accurate and clear names on your assets will make building products easier. 

###### Mesh names

* Object name: legs, seat, tabletop, screws
* Material: glass, wood, metalparts, plastic

If you are working with different size option and are using **Mesh Replacements**, using names with numbers will help with the filtering.

* Letters: door_small, door_large
* Numbers: door_1, door_2

###### Material names

When preparing your assets correctly, you materials should equal to your meshes so you can use the same names. 

* Mesh name: door_material, legs_material
* Variant name: Walnut, Red Velvet

When using Material Replacement you should use names that help you with filtering.

* [Mesh] + [Material]: door_walnut, door_oak

