Hushroom glowing mushroom logo Hushroom — Cozy 3D Virtual Study Hall & Social Sim

← Back to all Devlog articles

Mobile-First 3D Web Performance: Adaptive Pixel Ratio, Frame Pacing, and Instanced Props

3D Engineering · October 2, 2026 · 6 min read

Running a real-time Three.js study hall for hours without overheating phones or spinning up laptop fans.

Respecting Battery and Thermal Budgets

A typical action game is played in 10-minute bursts, whereas a study companion app stays open on a desk for two to four hours at a time. If our Three.js render loop pegged the GPU at 120 Hz on a Retina MacBook or modern iPhone at full 3x devicePixelRatio, devices would get warm and batteries would drain before the second Pomodoro finished.

We implemented a drift-free frame limiter in our render loop along with capped device pixel ratios and user-selectable frame rate caps (Max, 60, 30, or 20 FPS). When you press H to hide the interface during a long focus block, Hushroom automatically steps a 60 FPS cap down to a silky, low-power 30 FPS.

Geometry Caching and Clean WebGL Disposal

Every character mesh and option thumbnail shares cached geometry buffers, and switching rooms cleanly disposes transient textures and buffers so long study marathons never leak memory.