# 3D Animation Specifications

Specifications

<table data-header-hidden><thead><tr><th width="129.092041015625"></th><th width="439.66796875"></th><th></th></tr></thead><tbody><tr><td>Category</td><td>Specifications</td><td>Tutorial</td></tr><tr><td><strong>Model Format</strong></td><td><ul><li><p>The platform supports glb, gltf, fbx, obj formats.<br>We strongly recommend uploading in glb format.</p><p>For gltf, fbx, obj, it is recommended to compress them into a ZIP file before uploading.</p></li><li>File size limits:<br>• Free: 30 MB<br>• Starter: 50 MB<br>• Pro: 100 MB<br>• Enterprise : 100 MB</li></ul><p>It is recommended to keep the model file size under 10 MB, ideally around 5 MB.。</p></td><td><strong>Q: Why is glb the recommended upload format?</strong><br>A: When uploading fbx or obj, only the default materials are preserved, and textures may be lost.<br>For gltf, the format consists of multiple files, which makes loading less convenient.</td></tr><tr><td><strong>Model Creation</strong></td><td><ul><li>Single model mesh count ≤ 10, entire scene ≤ 50</li></ul><p><em>Recommended:</em> single model ≤ 5, entire scene ≤ 10</p><ul><li><p>Single model triangle count ≤ 50,000, entire scene ≤ 200,000</p><p><em>Recommended:</em> single model ≤ 30,000, entire scene ≤ 60,000</p></li><li><p>Model names (model, nodes, meshes) may contain letters, numbers, underscores, and hyphens only.</p><p>Chinese characters, spaces, and special characters are not supported.</p></li><li>Ensure unique names for all objects in the model.</li><li>Use quads for modeling. Triangles may be used in special cases.</li><li>Models must be created using polygon modeling.</li><li>The Scale must not be zero or negative.</li><li>Place the model’s pivot point at the geometric center or bottom center, then move the pivot to the world origin (0,0,0).</li><li>No isolated vertices.</li><li>No duplicate vertices.</li><li>No duplicate faces or coplanar overlapping faces.</li><li>Normals must be correct.</li><li>Remove all unused objects (empty nodes, hidden objects, helper objects, etc.).</li><li><p>Reset all model transformations:</p><ul><li>Scale = 1</li><li>Rotation = 0</li><li>Position = 0</li></ul></li><li>Avoid creating poles unless absolutely necessary.</li><li>Maintain clean and reasonable topology (consistent, well-organized edge flow).</li><li>For assets containing transparent components, use separate meshes and materials for transparent and opaque parts to achieve better rendering results.</li><li>Reset all transform data, construction history, and modifier stacks to avoid export inconsistencies.</li><li>It is recommended to keep the model at real-world scale.</li></ul></td><td><p><a href="https://resources.turbosquid.com/training/modeling/isolated-vertices/">What is an isolated vertex and how to fix it?</a></p><p></p><p><a href="https://resources.turbosquid.com/checkmate-pro-specification/coincident-faces/">What is a doubled faces and how to avoid it?</a></p><p></p><p><a href="https://resources.turbosquid.com/training/training-scene-organization/resetting-transforms/">How to apply model transformations?</a></p><p></p><p><a href="https://resources.turbosquid.com/training/modeling/real-world-scale/">Why should the model size match the real object?</a></p></td></tr><tr><td><strong>Unwrapping UV</strong></td><td><ul><li>The model should have no visible texture stretching.</li><li>UV seams should be placed in less visible areas of the model.</li><li>No UV overlaps.</li><li>Flatten the UV islands as much as possible and make full use of the texture space.</li><li>Multiple UV sets are not supported at the moment.</li><li>Tiled / repeating textures are not supported.</li></ul></td><td></td></tr><tr><td><strong>Material &#x26; Texture</strong></td><td><ul><li>Single model material count ≤ 10, entire scene ≤ 40<br>Recommended: single model ≤ 5, entire scene ≤ 10</li><li>Single model texture count ≤ 10, entire scene ≤ 40<br>Recommended: single model ≤ 5, entire scene ≤ 10</li><li>Material and texture names may contain letters, numbers, underscores, and hyphens only.<br>Chinese characters, spaces, and special characters are not supported.</li><li>Ensure unique names for all materials and textures.</li><li>Supported texture formats: png, jpg, jpeg</li><li>Maximum texture size: 2048 × 2048<br>Recommended sizes are power-of-two textures:<br>2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048</li><li>It is recommended to compress textures using image compression tools.</li><li>Supports PBR materials (Metallic–Roughness and Specular–Glossiness workflows)</li><li>Supports Unlit materials</li></ul></td><td></td></tr><tr><td><strong>Animation Creation</strong></td><td><ul><li>Single model animation count ≤ 10, entire scene ≤ 40</li></ul><p><em>Recommended:</em> single model ≤ 5, entire scene ≤ 10</p><ul><li><p>Single model bone count ≤ 80, entire scene ≤ 160</p><p><em>Recommended:</em> single model ≤ 60, entire scene ≤ 120</p></li><li><p>Single model morph target count ≤ 50, entire scene ≤ 100</p><p><em>Recommended:</em> single model ≤ 30, entire scene ≤ 60</p></li><li><p>Names for bones, morph targets, and animations may contain letters, numbers, underscores, and hyphens only.</p><p>Chinese characters, spaces, and special characters are not supported.</p></li><li>Ensure unique names for all animations, morph targets, and bones.</li><li><p>Supports Transform animations, Skeletal animations, and Morph animations.</p><p>Vertex animations are currently not supported.</p></li><li><p>Blender 3.0+ has known issues exporting morph animations;</p><p>Blender 2.9 is recommended for stable export.</p></li><li><p>Maximum bone influences per vertex ≤ 4</p><p>(i.e., each vertex may be affected by up to 4 bones in skinning)</p></li><li>Recommended animation framerate: 30 FPS</li><li>During animation creation, mesh and bones must not be scaled to zero or negative values.</li><li>Do not name any bone “root”.</li><li><p>The top-level root bone must not contain animation.</p><p>If animation exists on the root bone, you must create an additional empty parent bone and make the animated bone a child of it.</p></li></ul><div><figure><img src="https://1498491008-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MEaYmgB-urx5wwuYcCa%2Fuploads%2Fj7WZMnM5HZ8z5SVqVirG%2Fimage.png?alt=media&#x26;token=0600dfe6-a0bf-4c8f-8b51-7f545cae2ce4" alt=""><figcaption></figcaption></figure></div><div><figure><img src="https://1498491008-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MEaYmgB-urx5wwuYcCa%2Fuploads%2FgEdcoNLZXjHdqe8spAup%2Fimage.png?alt=media&#x26;token=c7034b6d-278c-4551-bbb7-1b02f2618d1c" alt=""><figcaption></figcaption></figure></div><p></p></td><td></td></tr><tr><td><strong>Lighting &#x26; Environment</strong></td><td>Supports Directional Light, Ambient Light, and Environment Maps.</td><td></td></tr></tbody></table>

***

## glTF & glb File Upload Requirements

If your glb or gltf file fails to upload, please refer to the following guidelines.

<table data-header-hidden><thead><tr><th width="78.07421875"></th><th></th><th></th></tr></thead><tbody><tr><td></td><td><strong>Challenge</strong></td><td><strong>Solution</strong></td></tr><tr><td>1</td><td>Quantization is currently not supported.</td><td>Do not use quantization compression when exporting glb or gltf files.</td></tr><tr><td>2</td><td>Meshopt compression is currently not supported.</td><td>Do not use meshopt compression when exporting glb or gltf files.</td></tr><tr><td>3</td><td>Draco compression is currently not supported.</td><td>Do not use draco compression when exporting glb or gltf files.</td></tr><tr><td>4</td><td>Your file contains required extensions that are not supported by Kivicube.</td><td>Supported Extensions: <br>• <a href="https://github.com/KhronosGroup/glTF/blob/main/extensions/2.0/Khronos/KHR_lights_punctual/README.md">KHR_lights_punctual</a><br>• <a href="https://github.com/KhronosGroup/glTF/blob/main/extensions/2.0/Khronos/KHR_materials_unlit/README.md">KHR_materials_unlit</a><br>• <a href="https://github.com/KhronosGroup/glTF/blob/main/extensions/2.0/Khronos/KHR_texture_transform/README.md">KHR_texture_transform</a><br>• <a href="https://github.com/KhronosGroup/glTF/blob/main/extensions/2.0/Archived/KHR_materials_pbrSpecularGlossiness/README.md">KHR_materials_pbrSpecularGlossiness</a></td></tr><tr><td>5</td><td>Your file is invalid. </td><td>The issue may be caused by a malfunction in the software you used to export the gltf or glb, resulting in an invalid file.</td></tr></tbody></table>

***
