# Limits and recommendations

### 3D models

**Available formats:** OBJ, GLB, glTF (as ZIP), and STL

#### **Recommended Limits (for best results)**

* **Polygon count:**
  * ✅ Best: **under 500k**
  * ⚠️ Risk of artifacts: **500k – 6M**
  * ❌ Above 6M: heavy simplification likely
* **Submeshes:**
  * ✅ Recommended: **under 400**
  * 400+ submeshes will be **merged into a single mesh/material**
* **Texture resolution:** **2K–4K recommended**

{% hint style="warning" %}
Our application currently does not support animations, bones, or skins in 3D models
{% endhint %}

### Images

**Available formats:** PNG and JPG + Figma files

**Recommended image specifications:** &#x20;

&#x20;                             *Up to 1MB and 1024x1024px.*

**Hard**:  Up to 2048 px (images compress automatically).

### MP4 videos&#x20;

* **Codec:** H.264 (video) + AAC (audio)
* **Container:** MP4
* **Bitrate:** 2–5 Mbps for 1080p

If you experience performance issues, reduce the video resolution to **720p** or **480p**, especially when the video is not displayed in full screen.

### File size limits

50 MB per import file for the Starter plan (free).

200 MB per import file for[ Paid plans](https://www.shapesxr.com/plans).

### General performance recommendations

Be careful, standalone VR is very sensitive to the number of objects, sub-objects, and matrices - this can greatly affect performance.

[Recommend 200-300 objects/materials per scene (Draw calls) for Quest 2](https://developer.oculus.com/documentation/unity/unity-perf/#performance-targets). Note that ShapesXR interfaces, avatars, and other elements can take 50-100 draw calls.

If it is possible to merge individual geometries into one model and merge textures, this will help you save performance in your scenes.

{% hint style="info" %}
**To improve the performance of your VR space with imported models, we recommend optimizing your models.**

If your model has multiple textures and materials, we recommend combining the textures and materials into one texture and one material.

This helps solve many potential issues. Models with fewer materials work better in mobile graphics.

It is critical to make one texture and material for OBJ format. But for glTF or GLB formats, we also recommend minimizing the number of materials and textures.

* Bake Multiple Materials to One Texture Map - <https://www.youtube.com/watch?v=wG6ON8wZYLc>  Author: Ryan King Art
  {% endhint %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://learn.shapesxr.com/import/limits-and-recommendations.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
