Welcome to the world of real-time game development across a variety of devices: PCs, mobiles, and consoles that support cross-platform games...
One effective method is to maintain a list of common hardware profiles when developing for different devices. While there are numerous phone models available, they often share similar GPU architectures. Chrome on Android, for instance, uses this approach to determine WebGL compatibility.
Creating a universal algorithm to predict performance levels on various devices can be challenging. Companies like NVIDIA conduct thorough testing on different hardware configurations to establish performance guidelines for specific game titles instead of relying on a one-size-fits-all solution.
In the past, I worked on a system for a game company aimed at customizing performance metrics for individual users through regression analysis. Each user's unique setup, including background applications running simultaneously, makes predicting performance difficult even in controlled lab settings. An adaptive strategy may be more suitable but requires intensive number crunching and may not be ideal for web apps using THREE.js. Experimentation and user feedback are vital in optimizing performance by adjusting factors such as rendering complexity or shader effects based on your specific application. Patience is key in refining your approach over time.