Mobile AR Model Pipeline: From CAD to USDZ/GLB
Clients often bring a STEP file of a sofa from a supplier, expecting it to appear in an AR catalog within an hour. Reality: millions of polygons, no UV layout, wrong scale—the asset doesn't work in ARKit or ARCore. Our pipeline solves this at every stage: from CAD import to final USDZ or GLB, consistently maintaining 60 FPS on iPhone 12 and Samsung S21. Over 5+ years, we have completed more than 50 projects for retail, furniture brands, and industry. We guarantee that every asset passes a real-device test before delivery.
Technical Requirements for an AR Asset
Polygon count
For mobile AR, no more than 50,000–100,000 polygons per object. A scene with multiple objects: up to 300,000 total. Higher causes FPS drops on devices without a PRO chip. For simple objects (box, cup), 500–3000 polygons.
According to ARKit Best Practices: "For smooth AR interaction, use models with no more than 100,000 polygons."
Textures
Maximum resolution 2048×2048 pixels. For small objects, 1024×1024. Supported formats:
- iOS/USDZ: PNG or JPEG for diffuse, separate maps for normal, roughness, metallic
- Android/GLB: JPEG preferred for diffuse (smaller size), PNG for transparency
UV layout
No overlaps, no stretching. Particularly important for AR: models are viewed up close, UV artifacts are noticeable.
Scale
1 unit = 1 meter. Mandatory for correct display in ARKit/ARCore. A sofa 2.2 meters wide is 2.2 units in the scene. We check dimensions in Blender using the N-panel before export.
Pivot point
Rotation and placement point at the center of the object's base for furniture, geometric center for others. ARKit positions the model relative to the pivot—if the pivot is off, the object "floats" above the floor.
How to Optimize a CAD Model for AR?
CAD files from manufacturers contain millions of polygons—direct import into AR gives 2 FPS. We convert them using this pipeline:
- Import STEP into FreeCAD or Fusion 360
- Export to OBJ/FBX
- Retopology in Blender (automatic with Remesh modifier, manual for important details)
- UV and texturing
- Export to USDZ/GLB
Retopology in Blender is 3 times faster than manual retopology in Maya thanks to the Remesh modifier with adaptive resolution. For complex organic shapes, we use ZBrush followed by retopology in Blender.
AR Asset Creation Pipeline
References → Low Poly Modeling → UV → Texturing → Optimization → Export
We primarily work in Blender (free, powerful, Python API for automation). For organic shapes—ZBrush with retopology in Blender. Textures—Substance Painter for PBR materials.
Geometry optimization
Decimate modifier in Blender with quality control—remove polygons not visible from normal viewing angles. For round objects (vases, wheels) we use shading via normal map instead of geometry: a 16-sided polygon with a normal map looks like a cylinder but has 5 times fewer polygons.
Baking
If the source is a high-poly model (photogrammetry, CAD import), we bake normal maps, ambient occlusion, and curvature in Substance Painter. This gives the detail of a high-poly model with the polygon count of a low-poly one.
Expand technical details of retopology
For retopology we use Quad Remesher 1.2 in Blender with a target poly count of 50,000. After retopology we always check UV and rebake normal maps. Retopology time: 2–4 hours for a medium complexity object.Export to AR Formats
For iOS: USDZ—a ZIP archive with USD files and textures. Export via xcrun usdz_converter or Python USD. Textures inside USDZ must be PNG if transparency is needed. We optimize size using TextureConverter with ASTC compression.
For Android: GLB with Draco compression. We use gltf-pipeline:
gltf-pipeline -i model.glb -o model_compressed.glb --draco.compressionLevel 7
This reduces geometry size by 60–80% without noticeable quality loss.
During export, it's important to set the scene correctly: Y-up, meters, forward Z as recommended by RealityKit. Otherwise the model will appear rotated.
Why is Proper UV Layout Important?
UV layout is the foundation of a realistic texture in AR. If it has overlaps or stretching, the model looks unnatural up close. We always create UV layouts with scale in mind: for furniture, 1 meter = 1 unit in UV space. This ensures consistent texture sharpness across all objects in the scene.
Timelines
| Object Type | Complexity | Timelines | Starting Price |
|---|---|---|---|
| Simple object (box, bottle) | Low | 1–2 days | $200 |
| Furniture / home appliances | Medium | 2–5 days | $500 |
| Complex mechanism / vehicle | High | 1–3 weeks | $2,000 |
| Character without animation | High | 1–2 weeks | $1,500 |
Comparing USDZ and GLB Formats
| Parameter | USDZ (iOS) | GLB (Android) |
|---|---|---|
| Compression | ASTC for textures | Draco for geometry |
| Transparency | PNG | PNG via KHR_materials_transmission |
| Maximum size | No limit, but >50 MB affects loading | Recommended <20 MB for fast loading |
| Tools | Xcode, Reality Composer | Blender, glTF Validator |
Pricing is determined after evaluating references and required texture quality. Package work (10+ models) is billed at a separate rate. To evaluate your project, send references—get an exact cost and timeline.
What's Included
- Consultation on references and technical specifications
- 3D asset in USDZ and GLB formats
- Blender source files
- PBR textures (diffuse, normal, roughness, metallic)
- Integration instructions for ARKit and ARCore
- Asset test on real devices (iPhone, Samsung)
- Guarantee: if the asset fails FPS testing, we rework it for free
We will evaluate your project within 1 day. Get a consultation—just drop us a message.







