Meshopt vs Draco: glTF Network Speed Thresholds

Choosing between uncompressed glTF, Draco, and meshopt compression depends on the critical trade-off between network download time and client-side CPU decompression overhead. As a general rule, Draco is preferable when network speeds fall below 10 to 15 Mbps, where heavy compression offsets significant decompression delays. Meshopt becomes the superior choice on connections exceeding 15 to 20 Mbps, providing a balanced compression ratio with microsecond-level decode times. At speeds above 100 Mbps, uncompressed glTF can theoretically load as fast as Draco due to zero CPU overhead, but meshopt remains preferable across almost all modern web pipelines.

The Performance Equation

The total delivery latency of a 3D asset is governed by a simple relationship:

\[\text{Total Time} = \frac{\text{File Size}}{\text{Bandwidth}} + \text{Decompression Time}\]

  • Uncompressed glTF: Largest transfer payload, zero decompression overhead.
  • Draco (KHR_draco_mesh_compression): Smallest payload (up to 85–90% reduction in geometry size), but requires significant CPU-bound WebAssembly decompression (often 50–300 ms per megabyte depending on mobile vs. desktop hardware).
  • Meshopt (EXT_meshopt_compression): Moderate payload reduction (typically 60–75% reduction when combined with gzip/brotli transport), with hyper-fast SIMD/Wasm decompression that is typically 10 to 50 times faster than Draco.

Network Bandwidth Thresholds

Under 10 Mbps (3G, Constrained Mobile, High-Latency Cellular)

  • Optimal Choice: Draco
  • Why: On low-bandwidth connections, network transfer dominates total time-to-render. If a 10 MB raw mesh is compressed to 1.5 MB with Draco and 2.5 MB with meshopt, downloading the extra 1 MB over a 5 Mbps link takes approximately 1.6 seconds. Draco’s 100–200 ms decompression penalty is negligible compared to the 1.6-second network delay, making Draco the fastest route to initial render.

15 Mbps to 100 Mbps (Standard 4G, 5G, Residential Broadband)

  • Optimal Choice: Meshopt
  • Why: At 25 to 50 Mbps, downloading 1 MB takes only 160 to 320 ms. Draco’s CPU decompression overhead (which often halts the main JavaScript thread if not offloaded to a Web Worker) begins to match or exceed the download savings. In contrast, meshopt decodes almost instantaneously (often 5 to 15 ms). The minimal bandwidth savings of Draco are entirely erased by its decompression bottleneck, making meshopt the fastest overall option.

100 Mbps and Above (Gigabit Fiber, Fast Enterprise Wi-Fi)

  • Optimal Choice: Meshopt (over Uncompressed)
  • Why: On gigabit connections, network transfer times approach single-digit milliseconds, exposing Draco as a distinct performance liability that renders significantly slower than raw assets. While uncompressed glTF has zero decode time, meshopt still holds the advantage over completely uncompressed models. Meshopt’s microsecond decompression keeps decode overhead virtually invisible while reducing overall HTTP request payload, reducing CDN egress costs, and consuming less mobile data.

Client Hardware Constraints

The network threshold shifts dramatically depending on target client compute capability:

  • Low-End Mobile Devices: The Draco threshold moves down to < 5 Mbps. Weak mobile CPUs exacerbate Draco’s decompression time, and thermal throttling can stall frame rates during asset ingestion. Meshopt is heavily optimized for mobile SIMD execution and minimizes battery drain.
  • Desktop Workstations: The Draco threshold moves up to ~20 Mbps. High single-core CPU speeds allow fast Draco decompression, extending the viability of high-compression ratios into standard broadband speeds.

For general web deployment targeting a global audience across mixed mobile and desktop environments, meshopt serves as the optimal default threshold compromise for connections above 15 Mbps, while Draco should be reserved strictly for low-bandwidth networks or storage-constrained distribution environments.