[ 3D on the web, with a performance budget ]
Product configurators, 3D viewers and interactive scenes in the browser. The craft is not making it look good on a workstation — it is making it work on the phone your customer actually holds, and knowing when not to use 3D at all.
Product configurators, 3D viewers and interactive scenes in the browser. The craft is not making it look good on a workstation — it is making it work on the phone your customer actually holds, and knowing when not to use 3D at all.
Tell us what the 3D has to explainTriangle count, draw calls and texture memory targeted at a mid-range Android from the start, not measured after the scene is finished.
glTF with Draco geometry and KTX2 textures. An uncompressed model is the difference between a two second load and a twenty second one.
No WebGL, weak hardware or reduced-motion preference gets a still image or a simpler view. A blank canvas is worse than no 3D.
For many products a good photograph loads faster and sells better. We would rather say that than build something impressive that nobody waits for.
Choose materials, colours and options and see the result — with pricing and a specification that follows the configuration into an order.
Rotate, zoom and section a product or a space, with hotspots that explain parts. Built to load progressively so something is visible early.
Scroll-driven and shader-based scenes for launch pages and brand work, with the frame budget and the reduced-motion path treated as requirements.
What does the visitor learn from it that a photograph could not tell them? If there is no answer, the honest recommendation is not to build it.
Target device, triangle count, draw calls, texture memory and load time agreed before anyone opens Blender. This constrains the art, and it has to.
Retopology, baked lighting, atlased textures, glTF with Draco and KTX2. Most of the performance is won here, not in the code.
React Three Fiber where it sits in a React app, plain Three.js where it does not. Instancing, frustum culling and demand-driven rendering rather than a full loop at all times.
Frame times on an actual mid-range phone, not a laptop with a discrete GPU. Desktop numbers tell you nothing about the device most visitors bring.
Progressive loading with a poster frame, a still image where WebGL is unavailable, and a reduced-motion path that does not spin.
Three.js work divides cleanly into two kinds: the sort that helps someone understand or configure a product, and the sort that exists to look impressive. The first is worth building. The second usually costs more than it returns, and we will tell you which one you are describing.
When it is worth building, the discipline is entirely about the device at the other end. A scene that runs beautifully on a development machine and takes fifteen seconds to load on a mid-range Android has failed, and that outcome is decided by the asset pipeline long before anyone writes a shader.
Triangle count, texture memory and load time agreed up front. Modelling first and optimising afterwards means throwing work away.
Draco geometry, KTX2 textures and baked lighting typically matter more than any code-level optimisation available.
No WebGL, weak hardware, or a reduced-motion preference gets a still frame. A visitor should never be looking at a black rectangle.
Three.js supports both, and WebGPU is genuinely faster where it is available. For an Indian audience on mixed Android hardware, WebGL2 remains what you build for.
Declarative scenes composed as components made 3D far easier to maintain inside a React product, and the drei helpers removed a great deal of boilerplate.
Draco and KTX2 are now standard in any serious pipeline. An uncompressed glTF on a mobile connection is not a viable delivery.
It will if it is built without a budget. Done properly — compressed assets, progressive loading, a poster frame first and rendering only on demand — a configurator loads in a few seconds on a mid-range phone. The way to keep it fast is to set the target device and the load budget before modelling starts.
Let’s talk about your three.js project. No obligation, just a conversation.
Next service
MERN Stack Development