Spatial Web & WebGL

From 15GB Revit BIM to Locked 60 FPS WebGL: The Geometry Decimation & gltfpack Pipeline

By Atlyxen Spatial Web Engineering Team • September 2026 • 12 min read
A step-by-step pipeline converting dense IFC, Revit, and Rhino CAD data into sub-40MB Three.js spatial twins with Google Draco compression and KTX2 Basis Universal GPU textures.
Key Architectural Highlights
  • Extracting architectural envelopes via IFC.js and web-ifc while purging internal bolt voids
  • Quantizing 32-bit floating point vertices to 16-bit integers with gltfpack to reduce data size by 65%
  • Google Draco geometry compression delivering sub-28MB streamable binaries for 5G browsers
  • KTX2 Basis Universal textures uploaded directly to mobile GPU VRAM without CPU decoding

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.

#WebGL #Three.js #BIM #Revit #Draco Compression #gltfpack #KTX2 #glTF 2.0

Need Custom AI Tooling or Spatial Engineering?

Atlyxen Studios architects bespoke AI toolchains, Unreal Engine plugins, and spatial 3D computing pipelines for global studios.

Book Technical Consultation