Enterprise real estate developers demand real-time interactive 3D walkthroughs directly in mobile web browsers without requiring proprietary client downloads. However, raw Building Information Modeling (BIM) files from Autodesk Revit or IFC exports contain internal structural bolts, parametric HVAC duct geometry, and millions of unindexed triangles that instantly trigger mobile WebGL Out-Of-Memory (OOM) crashes.
Step 1: Automated Mesh Cleansing and Surface Extraction: Our pipeline parses IFC and Revit files using web-ifc and custom C++ decimation scripts. We programmatically isolate structural envelopes, exterior facade glass, and user-visible interior finishes while stripping unseen internal foundation rebar and cavity components, removing over 70% of redundant polygons before export.
Step 2: Normal Preservation and Vertex Welding: CAD exports often duplicate vertices along every triangle face, causing severe split normal artifacts. We run automated topological welding that joins coincident vertices while preserving sharp architectural edges using custom angle thresholds, ensuring silky smooth reflections on marble and glass.
Step 3: Geometry Quantization with gltfpack: We process converted glTF models using gltfpack (-cc -kn -km). By quantizing 32-bit floating point vertex coordinates, texture UVs, and normal vectors down to normalized 16-bit integers, raw geometric payload size drops by up to 65% with zero perceivable visual loss at 1:1 scale.
Step 4: Google Draco Compression: Applying Draco geometric compression compresses the remaining mesh vertex and index data into compact binary payloads. A 380MB architectural complex condenses into a streamable 24MB glTF binary that downloads in under 1.8 seconds over standard broadband.
Step 5: KTX2 Basis Universal Texture Streaming: Standard PNG and JPEG textures must be uncompressed into raw uncompressed RGBA in system RAM, rapidly exceeding mobile browser GPU budgets. We transcode all diffuse, normal, and roughness maps into KTX2 containers with Basis Universal supercompression. The GPU decodes these textures directly in native VRAM formats (BC7 on desktop, ASTC on mobile), keeping total runtime memory strictly below 180MB.