Performance engineering: Gaussian splats, LOD, mesh and texture budgets
Performance is the difference between a WebAR experience that converts and one that gets closed after four seconds of loading. Two workloads dominate real estate: photoreal capture (increasingly Gaussian splats) and CAD-derived architectural meshes.
Gaussian splat models
Gaussian splatting produces photoreal scenes, and enormous files. The optimization playbook for mobile browsers:
- Decimate: reduce splat count while preserving visual quality.
- Stream by level of detail: implement LOD streaming that loads nearby detail first.
- Compress: quantize the point cloud data.
- Load progressively: show a coarse preview within seconds while full detail streams in the background.
Three.js plus custom WebGL shaders are the primary tools for browser-based splat rendering today. The dedicated walkthrough is in optimizing a large Gaussian splat model for mobile browsers.
Mesh and texture budgets
For polygonal scenes, the discipline is the same on every target: bake lighting into textures instead of computing it in real time, reduce polygon counts with LOD techniques, compress textures, and load lazily so users only download what they actually view. As a reference point, the budgets we discuss for real-time VR below (a full scene under 500K polygons, 2K-4K texture atlases) are a sane ceiling for high-end mobile web as well; most scenes should aim lower.
On the Augmento platform this pipeline is automated: 3D model compression and LOD generation, adaptive quality scaling based on device GPU capabilities, lazy asset loading, edge-cached CDN delivery for sub-100ms asset loading, and frame rate monitoring with automatic quality fallbacks. We target 60fps on mid-range devices from the last 3 years, and that target shapes every budget above. More in how Augmento keeps AR performant across devices.