Supported 3D file formats
Which 3D formats Blendspace accepts, what it produces, and the limits and conversion behaviour to design your export around.
Blendspace accepts five 3D formats and always produces two. This page describes what goes in, what comes out, and the constraints worth knowing before you export.
Input formats
| Format | Extension | Notes |
|---|---|---|
| FBX | .fbx |
Common export target from Maya, 3ds Max and Blender. |
| glTF Binary | .glb |
Preferred input. Single self-contained file, textures embedded. |
| glTF | .gltf |
JSON variant. Bring the referenced buffers and textures with it. |
| Wavefront OBJ | .obj |
Geometry only by convention; material and texture support varies by exporter. |
| USDZ | .usdz |
Apple’s AR container. Accepted directly. |
A .zip archive containing several of the above is also accepted and processed as a batch.
Output formats
Every accepted upload yields both of these:
| Format | Purpose |
|---|---|
.glb |
The web viewer, and AR on Android via Scene Viewer. |
.usdz |
AR on iOS and macOS via Quick Look. |
Uploading a format that is already an output short-circuits the work: a .glb upload keeps
your original file and only the .usdz is generated, and a .usdz upload keeps the original
and only the .glb is generated. Nothing is re-encoded that does not need to be.
Why both outputs exist
There is no single 3D format that every platform will open in AR.
- iOS and macOS hand AR to Quick Look, which reads USDZ and nothing else.
- Android hands AR to Scene Viewer, which reads GLB.
- WebXR-capable browsers and headsets render inline from GLB.
The embedded viewer is Google’s model-viewer component with ar-modes set to
webxr scene-viewer quick-look. It picks whichever path the visitor’s device supports and
points Quick Look at the USDZ through the ios-src attribute. If only one format existed,
AR would silently do nothing for a large share of your visitors — the button would be there,
and tapping it would fail.
Limits
| Limit | Value |
|---|---|
| Maximum upload size | 50 MB per file |
| Conversion time budget | 120 seconds per file, by default |
A file can pass the size limit and still exhaust the time budget if the mesh is dense enough. If a conversion fails without an obvious cause, mesh density is the first thing to check.
Material handling
PBR materials survive conversion. Two glTF material extensions are deliberately removed from GLB output:
KHR_materials_specularKHR_materials_ior
Both add specular and index-of-refraction overrides that break rendering in viewers with
limited extension support — macOS Quick Look in particular. The base colour texture in
pbrMetallicRoughness carries the appearance instead, which every target viewer understands.
If your model looks correct in Blender but wrong in Quick Look, this class of extension is
usually the reason, and stripping it is the fix rather than the problem.
What is not supported
- Animation and rigging. Blendspace targets static product presentation. Export a static pose.
- Formats outside the list above. STL, DAE, 3DS, PLY and
.blendare not accepted. Convert to GLB first. - Textures referenced by absolute path. They will not resolve. Embed them, or include them in the archive.
Export recommendations
If you control the export, these choices make the rest of the pipeline predictable:
- Export GLB with embedded textures. It skips a conversion step and removes any question about whether textures resolved.
- Keep textures at 2K or below. A product page is not a render farm, and texture size dominates load time on mobile.
- Decimate aggressively. Product models rarely need more than tens of thousands of triangles to look right at product-page scale.
- Apply transforms and centre the model at the origin. AR placement uses the model origin, so an off-centre origin puts the product in the wrong place in the visitor’s room.
- Use metres. AR scale is real-world scale, and a model authored in centimetres will appear a hundred times too small or too large.