BH3D Logo
3D Web Apps For All Devices

Building 3D Web Apps That Work Everywhere: A Data-Driven Approach

By Ben Houston, 2025-03-24

As developers pushing the boundaries of what's possible on the web, we're often caught in a challenging balancing act: creating cutting-edge 3D experiences while ensuring they work across the diverse landscape of devices and browsers.

After a decade of building 3D web applications with millions of users and collecting real-world browser capability data through Web3DSurvey.com, I've developed a straightforward, effective strategy that maximizes both reach and quality while minimizing effort.

Mars Rover render via WebGL 2

Image curtesy of the Three GPU Pathtracer project.

Understanding the Current 3D Web Landscape

Before diving into implementation strategies, it's important to understand where we stand. Web3DSurvey.com collects anonymized data from approximately 500,000 monthly visitors across various 3D-focused websites.

The tracker profiles browser capabilities across WebGL 1, WebGL 2, and WebGPU, documenting:

  • Feature/extension support rates
  • Hardware limitations (max texture sizes, etc.)
  • Performance characteristics

While there's some sampling bias toward users visiting 3D-related sites, the data provides still a relatively accurate representation of what capabilities are available across the web. Some key findings as of March 2025:

  • WebGL 1 is supported by ~99.5% of devices
  • WebGL 2 is supported by ~98.6% of devices
  • WebGPU support continues to grow but is primarily available on newer devices with 66.7% support
  • Critical parameters/limits like maximum texture sizes and features/extensions vary significantly across devices

The Two-Tier Development Strategy

Based on this data and practical experience, I've found success with a two-tier development approach:

Tier 1: The Universal Baseline Experience

Create a foundational 3D experience that works on the vast majority of devices by:

  1. Targeting 90-95% support threshold: Focus on features and capabilities available to at least 90-95% of users according to Web3DSurvey data
  2. Limiting dependencies: Keep the baseline version lightweight and performant
  3. Conservative resource usage: Stay well within commonly supported texture sizes, polygon counts, and shader complexity
  4. Early capability detection: Detect device capabilities immediately upon page load, before initializing any 3D content

This baseline provides a functional, decent experience for virtually all users. It's your safety net that ensures no visitor gets a broken experience or blank screen.

Tier 2: The Enhanced Experience

Once the baseline is working, implement an enhanced version that takes advantage of more powerful capabilities:

  1. Feature detection: Check for the specific set of features needed for your enhanced experience
  2. Consolidated enhancement: Rather than checking and conditionally enabling dozens of individual features, group them into a cohesive "enhanced mode" that activates when all requirements are met
  3. Target modern flagship devices: Design your enhanced experience for high-end devices released in the last 2-3 years (latest iPhones, Samsung Galaxy, Google Pixel, etc.)
  4. Visual upgrades: Implement higher resolution textures, more complex shaders, post-processing effects, and other visual improvements

The Benefits of Limited Testing Paths

One of the most important aspects of this approach is how it significantly reduces your testing burden. By implementing two clear paths rather than many conditional features, you only need to test:

  1. The baseline experience
  2. The enhanced experience

If you were to implement conditional code paths for many individual features, the number of possible combinations would grow exponentially, making comprehensive testing nearly impossible. With just two modes, you can thoroughly test both and be confident your application works as intended.

Handling Edge Cases: Compressed Textures

While the two-tier approach works for most features, some capabilities still require special handling. Compressed textures are a prime example, as different mobile platforms support different formats:

  • iOS devices typically support PVRTC/ASTC
  • Android devices often support ETC2/ASTC (with variations between manufacturers)

For these cases, you may need specific detection and branching logic. Fortunately, Web3DSurvey provides detailed data on compression format support across devices, allowing you to choose formats with the highest compatibility.

The good news is that WebGPU has brought better unification in this area, simplifying cross-platform texture handling for newer applications.

Real-World Results

I've personally implemented this approach on multiple production 3D web applications with excellent results:

  • Broader reach: Applications remain functional even on older devices
  • Developer efficiency: Simplified testing and maintenance compared to complex feature branching
  • User satisfaction: Modern device users get the premium experience they expect, while other users still get a functional application rather than errors
  • Performance improvements: By optimizing the baseline for broad compatibility, even the core experience tends to perform better across all devices

Conclusion

Building 3D web applications that work everywhere doesn't mean compromising on quality. By implementing a data-driven, two-tier approach based on real-world browser capabilities, you can create experiences that are both universally accessible and impressive on modern devices.

The key insights:

  1. Use Web3DSurvey data to make informed decisions about feature support
  2. Implement a solid baseline experience targeting 90-95% compatibility
  3. Create a cohesive enhanced mode rather than numerous conditional features
  4. Test both paths thoroughly, benefiting from the reduced testing complexity

This approach has served me well in production applications, striking the right balance between reach, quality, and development efficiency. I encourage you to check out the latest data on Web3DSurvey.com to inform your own implementation decisions.