How to add 3D to a product page without touching LCP
The most common reason 3D gets pulled from a storefront is Core Web Vitals. The fix is architectural and boring: the canvas does not exist until someone asks for it.
Retail teams are right to be defensive about this. A WebGL canvas that boots on page load will cost you LCP, will cost you INP, and will be the first thing blamed in the next performance review.
The pattern that works: render a static hero image at the exact framing of the default configuration. It is a normal image, it is what LCP measures, and it is fast. The 3D runtime, the model and the textures load only after a deliberate interaction — a click on the image, or a hover with intent.
The transition needs care. Boot the canvas behind the static image, wait for the first rendered frame, then cross-fade. Done properly nobody notices the swap; done carelessly there is a flash of empty canvas that reads as broken.
The static hero comes out of the same pipeline as the interactive scene, at the same camera, so it never drifts. That is the part teams get wrong when they assemble this by hand.
Measured on a 400-SKU homeware rollout: zero millisecond change in LCP, and 2.4× time on page for sessions that opened the viewer.
Written by the engineering team at 3D.MBA, Ahmedabad.
Disagree? Tell us