Skip to main content

Polyforge

$ optimize_for_ar

Optimize 3D Files for Augmented Reality

Reduce file size, compress textures, and decimate meshes for AR Quick Look, Android Scene Viewer, visionOS, and WebXR. Export as USDZ or GLB. No upload, no sign up. Files never leave your browser.

No upload required 100% free USDZ + GLB output
By Polyforge · Published Mar 17, 2026 · Updated Mar 28, 2026

Drop your 3D file here

GLB, GLTF, OBJ, FBX, STL, PLY, USDZ, 3DS, DAE, STP — all supported

Shoe 3D model preview
Try with a sample modelShoeShoe by Polyforge · CC0 1.0 Universal

Sneaker with PBR materials and textures — ideal for testing optimization with mesh decimation and texture compression.

$ mesh_decimation_for_mobile_ar

Mobile GPUs share memory between the system and the renderer. A model with 500K triangles can stall ARKit or ARCore while the device simultaneously tracks surfaces and renders the camera feed. The AR preset targets 85% quality, reducing polygon counts to levels that keep frame rates stable on phones and tablets.

$ texture_compression_and_resizing

A single 4096×4096 texture consumes around 64 MB of device memory when decompressed (or up to 85 MB with mipmaps). Apple recommends 2048×2048 or smaller for AR Quick Look. The AR preset halves texture resolution and applies WebP compression to cut memory usage without visible loss at arm's length viewing distances.

$ scene_flattening

CAD exports and multi-part assemblies create deep node hierarchies that multiply draw calls. AR renderers like RealityKit and SceneViewer perform best with flat scene graphs. Flattening merges all nodes into a minimal structure, reducing per-frame overhead on mobile hardware.

$ usdz_and_glb_export

Apple AR Quick Look requires USDZ. Android Scene Viewer and WebXR use GLB. Export in either format directly from the optimizer. USDZ output follows Apple's packaging specification: a zero-compression ZIP archive with 64 byte aligned files, ready for Safari and iMessage.

$ any_format_to_ar_ready

Upload OBJ, FBX, GLB, GLTF, STEP, DAE, 3DS, PLY, or any supported 3D format. The optimizer converts internally, applies the AR preset, and exports a file sized for real-time rendering on mobile devices.

$ before_and_after_preview

Interactive comparison viewer with a draggable slider. Verify polygon reduction and texture compression results visually before exporting. Compare file size, triangle count, and texture memory side by side.

HOW IT WORKS

How to Optimize 3D Files for AR

Prepare any 3D model for augmented reality in three steps

01

Upload any 3D file

Drag and drop or browse to select a file in any supported format: GLB, FBX, OBJ, STEP, and more. The AR preset activates automatically with texture resizing, compression, and scene flattening configured for mobile AR.

02

Review and adjust

Compare before and after side by side. Check file size, polygon count, and texture memory. Adjust the quality slider to balance visual detail and performance for your target devices.

03

Download as USDZ or GLB

Export as USDZ for Apple AR Quick Look, Safari, and visionOS. Export as GLB for Android Scene Viewer, WebXR, and Google model-viewer. One file, ready to deploy.

SUPPORTED FORMATS
$ Input Formats
GLBGLTFOBJFBXSTLPLYUSDZ3DSDAESTP3MF
$ AR Output Formats
USDZGLB

Why File Size Matters for AR

Augmented reality places unique demands on 3D assets that desktop rendering does not. The device must simultaneously run the camera feed, perform surface detection, track motion sensors, and render your 3D model in real time. All of this shares the same pool of memory and GPU compute. A model that renders perfectly in a desktop viewer can cause frame drops, overheating, or crashes when placed into an AR scene on a phone.

Apple AR Quick Look loads USDZ files directly in Safari and iMessage without installing an app. The experience must feel instant. Apple's developer guidance recommends keeping models under 100,000 polygons and textures at 2048×2048 or smaller. Exceeding these targets does not trigger a hard error, but loading times increase noticeably and frame rates drop on older devices. A 4096×4096 texture consumes around 64 MB of device memory when decompressed (or up to 85 MB with mipmaps), which is significant on devices where GPU and system memory are shared.

Android Scene Viewer has more explicit constraints. Google recommends a maximum of 10 MB for GLB files loaded in Scene Viewer and caps validation at 15 MB. The recommended polygon count is under 100,000 triangles, with 30,000 to 50,000 as the ideal range for smooth performance. Textures are limited to 2048×2048 and must use PNG or JPEG in sRGB color space.

USDZ: Apple's AR Format

USDZ was created by Apple in collaboration with Pixar and launched with iOS 12 in 2018. It is built on Pixar's Universal Scene Description (USD) framework, which Pixar first published as open source in 2016. A USDZ file is a zero-compression ZIP archive containing USD scene data and referenced assets (textures, audio) with files aligned on 64 byte boundaries for efficient memory-mapped access.

The format is read-only by design. To edit a USDZ file, you must unpack it, modify the underlying USD layers, and repackage. This constraint exists because USDZ is optimized for delivery and consumption, not authoring. Apple's ecosystem uses USDZ extensively: AR Quick Look in Safari and iMessage, Reality Composer, Reality Composer Pro, Keynote 3D objects, and spatial experiences on Apple Vision Pro.

For visionOS and Apple Vision Pro, Apple recommends keeping models under 100,000 polygons per object and using baked textures to reduce draw calls. RealityKit on visionOS supports a maximum of approximately 500,000 triangles per immersive experience across all visible models. Profiling with Reality Composer Pro's geometry statistics panel is the recommended way to verify performance.

GLB for Android AR and WebXR

GLB (binary glTF) is the standard format for Android AR experiences and WebXR applications. Google's Scene Viewer loads GLB files to display interactive 3D objects in the real world on ARCore devices. The format is also the default for Google's model-viewer web component, which provides AR viewing on both Android (via Scene Viewer) and iOS (via AR Quick Look with a USDZ fallback).

Google's Scene Viewer documentation specifies several constraints: maximum 10 materials per model (only 2 may use transparency), a single UV set per mesh, PBR (physically based rendering) materials required, and HTTPS loading mandatory. These constraints exist because Scene Viewer renders in real time alongside the camera feed and surface tracking, leaving limited GPU headroom for complex materials.

WebXR extends AR beyond native apps into the browser. Chrome, Edge, Opera, Samsung Internet, and the Oculus Browser all support WebXR. Safari supports WebXR on visionOS. For WebXR applications, GLB files optimized with mesh decimation and texture compression load faster and render more smoothly, especially on mid-range Android devices where thermal throttling can reduce GPU performance during extended AR sessions.

How Mesh Optimization Works for AR

The meshoptimizer simplification algorithm evaluates every vertex using the quadric error metric and removes vertices that contribute least to the visible surface shape. For AR specifically, the relevant quality threshold is what the user can perceive at typical AR viewing distances of 0.5 to 2 meters on a phone screen. At these distances and screen resolutions, polygon counts above 100,000 rarely produce visible improvement.

The algorithm preserves UV seams, material boundaries, and hard edges during reduction. This is important for AR models that use PBR materials with normal maps, where a naive decimation algorithm would create visible seams at material transitions. meshoptimizer processes the geometry in a Web Worker via WebAssembly, keeping the browser responsive during optimization.

For product visualization in AR (the most common commercial use case), aggressive optimization is usually safe. A furniture model exported from CAD with 800,000 triangles can be reduced to 50,000 with no perceptible quality loss when viewed on a phone screen. The file size drops from tens of megabytes to a few megabytes, making the difference between a smooth AR experience and one that stutters or fails to load.

Privacy First Processing

All optimization happens entirely in your browser using WebAssembly. Your 3D files are never uploaded to a server. This is critical for product designs, unreleased merchandise, architectural models, and any assets covered by NDA or intellectual property agreements. Files up to 100 MB are supported, with no server queue wait times.

Benefits of AR Optimized 3D Assets

  • Faster AR loading : Smaller files load instantly in AR Quick Look and Scene Viewer instead of showing a loading spinner.
  • Stable frame rates : Fewer polygons and compressed textures keep rendering smooth while the device tracks surfaces and motion.
  • Lower memory usage : Resized textures at 2048×2048 use a fraction of the memory that 4K textures require on shared-memory mobile GPUs.
  • Cross platform output : Export USDZ for Apple devices and GLB for Android, WebXR, and Google model-viewer from the same source file.
  • Broader device support : Optimized models run on older phones and tablets that would struggle with unoptimized assets.
  • Higher conversion rates : E-commerce AR experiences that load fast and render smoothly lead to more engagement and fewer product returns.
FAQ

What file size should I target for AR Quick Look?

Apple does not publish a hard file size limit for USDZ in AR Quick Look. The practical constraint is decompressed memory, not ZIP file size. For fast loading and smooth performance, keep USDZ files under 10 MB with textures at 2048×2048 or smaller and polygon counts under 100,000. Models that exceed these guidelines will still load but may show longer load times and lower frame rates on older devices.

What are Android Scene Viewer's file size limits?

Google recommends GLB files under 10 MB for Scene Viewer and enforces a hard validation limit at 15 MB. The recommended polygon count is under 100,000 triangles, with 30,000 to 50,000 as the ideal range. Textures must be 2048×2048 or smaller in PNG or JPEG format. Each model is limited to 10 materials, of which only 2 may use transparency.

Should I use USDZ or GLB for AR?

Use USDZ for Apple platforms: AR Quick Look in Safari and iMessage, Reality Composer, and visionOS spatial experiences. Use GLB for Android Scene Viewer, WebXR applications, and Google model-viewer. If you need both, upload your model once and export in each format separately. Many AR implementations serve both formats with the appropriate one selected based on the user's device.

Does optimization affect how my model looks in AR?

At the default AR preset quality (85%), the difference is not visible on a phone screen at typical AR viewing distances. The algorithm preserves the visual silhouette and material boundaries while removing geometry that is too fine to resolve at screen resolution. Use the before/after comparison viewer to verify the result before exporting.

What texture size does Apple recommend for AR?

Apple recommends 2048×2048 pixels as the target resolution for PBR textures in AR Quick Look and RealityKit. Textures should be square and power-of-two dimensions (512, 1024, 2048). A single 4096×4096 texture requires around 64 MB of device memory when decompressed (or up to 85 MB with mipmaps), which is significant on devices where GPU and system memory are shared.

Can I optimize for Apple Vision Pro and visionOS?

Yes. The AR preset produces USDZ files compatible with visionOS and Apple Vision Pro. Apple recommends keeping individual models under 100,000 polygons and total scene geometry under 500,000 triangles for immersive experiences. Use baked textures at 2048×2048 for best performance. The optimizer flattens scene hierarchy and resizes textures to meet these targets.

How do I optimize a model for Google model-viewer?

Upload your model, select the AR preset, switch the output format to GLB, and export. The preset applies mesh decimation, texture compression, and scene flattening. Google's model-viewer web component supports both desktop viewing and AR on Android (via Scene Viewer) and iOS (via AR Quick Look with a USDZ source). Keep the GLB under 10 MB for the best experience.

Are my files uploaded to a server?

No. All processing runs entirely in your browser via WebAssembly. Your files never leave your device. This ensures complete privacy for product designs, unreleased models, architectural assets, and any files covered by NDA or intellectual property agreements.

Can I optimize FBX or OBJ files for AR?

Yes. Upload any of the 11 supported input formats (FBX, OBJ, STL, PLY, DAE, 3DS, STP, GLTF, GLB, USDZ, 3MF). The optimizer converts your file internally, applies the AR preset, and exports as USDZ or GLB. FBX files from Blender, Maya, or 3ds Max are a common starting point for AR asset pipelines.

What is the maximum file size I can optimize?

The tool supports files up to 100 MB. All processing happens in your browser, so practical performance also depends on your device's RAM. Files near the limit work reliably on modern desktops with 8 GB or more RAM. If your file is too large, try reducing the model in your 3D editor first.