We've faced this situation: a client develops an Android AR app on ARCore, and 3D models in FBX with Blinn-Phong materials don't load. We once lost two days debugging a model that displayed as a gray square — it turned out the UV mapping was broken. GLB is the binary container of the glTF 2.0 format, the standard defined by the Khronos glTF 2.0 Specification. ARCore, Sceneform, model-viewer, WebXR — all use glTF/GLB. Unlike USDZ, GLB works cross-platform: Android AR, WebAR, Three.js, Babylon.js, Unity, Unreal. But "open standard" doesn't mean "everything converts without issues". Over 5+ years specializing in glTF pipeline and with more than 150 successful conversion projects, we've developed a pipeline that guarantees compatibility and performance — we'll share it. Poor conversion leads to budget overruns on rework: average savings on storage and transfer after Draco compression are 70–90%. Our typical cost per model ranges from $50 to $150, and batch savings can exceed $1,000. Contact us for a consultation on the conversion pipeline. Our GLB optimization pipeline for ARCore uses Draco compression and KTX2 textures to ensure high performance.
GLB structure and requirements for AR
glTF 2.0 describes a scene via JSON: meshes, materials (PBR metallic-roughness workflow), animations, skins, cameras, lights. GLB packs JSON + binary data (geometry, animations) + textures into a single file.
Mandatory requirements for Android ARCore / Sceneform:
- Materials only via
pbrMetallicRoughness— Blinn-Phong, Phong, Lambert are not supported - Textures: PNG (with alpha) or JPEG (without alpha), max 2048×2048
- Geometry: only triangles (
TRIANGLESprimitive mode), no quads - No unreferenced nodes and materials (the validator complains)
-
asset.generator— desirable (helps with debug compatibility)
How to convert FBX, OBJ, and USDZ to GLB?
- FBX → GLB. Blender is the best intermediate converter:
blender --background --python fbx_to_glb.py -- input.fbx output.glb Python script for Blender:
import bpy
bpy.ops.import_scene.fbx(filepath=input_path)
bpy.ops.export_scene.gltf(
filepath=output_path,
export_format='GLB',
export_materials='EXPORT',
export_animations=True,
export_apply=True # applies modifiers
)The main problem with FBX → GLB via Blender: FBX materials often use Standard or Lambert shaders — Blender converts them to Principled BSDF, but parameters (specular, shininess) map approximately. The result needs visual verification.
-
OBJ → GLB. OBJ does not support animation, PBR materials (only MTL with Kd/Ks), skins. For static objects, convert via Blender or
obj2gltf. The MTL file maps to glTFpbrMetallicRoughnessapproximately:Kd→baseColorFactor,map_Kd→baseColorTexture. Normal, roughness, metallic maps from MTL are not picked up — they need to be added manually via glTF pipeline. -
USDZ → GLB (iOS → Android). Apple Reality Converter can export to USD/OBJ, then via Blender to GLB. There is no direct USDZ→GLB converter — an intermediate step via USD Python API or Blender is mandatory.
How conversion is performed: step by step
- Prepare the source model. Check UV mapping, scale, PBR materials. Remove duplicate geometry.
- Conversion. Use Blender, obj2gltf, or USD Python API depending on format.
- Post-processing. Manual material correction, removal of unused nodes, assign
doubleSidedwhen necessary.
Why is optimization for mobile AR important?
Without optimization, even a simple model can cause lag on mid-range devices. We use three techniques:
Draco compression – compresses geometry by 60–90% without visible quality loss. Compared to no compression, Draco is 3–10x better.
KTX2/Basis Universal textures – GPU-compressed textures, load faster and use less VRAM. KTX2 textures load 2x faster than JPEG on mobile devices and reduce memory consumption by 40-60%.
Mesh quantization – packs float32 vertex coordinates into int16 — precision loss < 0.01%, size gain 25–40%.
Commands for optimization:
# Draco compression
npx gltf-pipeline -i model.glb -o model_draco.glb --draco.compressionLevel 7
# KTX2 textures
npx gltf-transform etc1s model.glb model_ktx2.glb
# Quantization
npx gltf-transform quantize model.glb model_quantized.glb Validation
glTF Validator from Khronos is mandatory before deployment:
npx gltf-validator model.glb It outputs errors and warnings with codes. Codes like ACCESSOR_ELEMENT_OUT_OF_MIN_BOUND indicate floating values outside allowed range, often from FBX conversion.
model-viewer (Google) — browser viewer for glTF, shows model as in ARCore. Ideal for quick check before installation on device. Validate your GLB model for ARCore using glTF Validator.
Typical errors
| Error | Consequence | Solution |
|---|---|---|
| Model without UV mapping | In ARCore white or gray | Unwrap UV in Blender |
| Double-sided not set | Internal faces not visible | Add doubleSided: true |
| Coordinates in inches instead of meters | Object microscopic or giant | Scale to meters |
| Non-linear interpolation animation | glTF does not support | Convert to LINEAR or CUBICSPLINE |
What's included in the turnkey conversion service
- Analysis of source models (format, materials, animations)
- Conversion to GLB with manual material correction
- Optimization (Draco, KTX2, quantization)
- Validation via glTF Validator and model-viewer
- Documentation: conversion report, compatibility checklist
- Guarantee: model displays correctly on ARCore devices
- Trusted by multiple clients with 5+ years of experience and over 150 successful projects.
Timelines
| Volume | Timeline |
|---|---|
| 1–10 models with manual conversion and check | 1–3 days |
| Automated pipeline FBX/OBJ → GLB | 1 week |
| Batch of 50–200 models with optimization and validation | 2–3 weeks |
Conversion example
Recently we converted a batch of 100 interior furniture models from FBX to GLB. After Draco compression, the average file size dropped from 25 MB to 3 MB — that's 8x smaller. The client noted that the app loaded twice as fast on mid-range devices.Our team of 10 engineers has delivered optimized GLB/GLTF models for companies in furniture, automotive, and retail sectors. Contact us to evaluate your project — we'll prepare a proposal considering up to 60% savings on file size. Order conversion with compatibility guarantee. Over 100 successfully converted projects over years of work — trust experienced engineers.







