Engineering · January 2026 · 7 min

WebGL without the show-off.

How we use real-time graphics on our sites — and when we choose not to.

By Iovate Studio

Atlantic cliffs at Cabo da Roca
Fig. 01 Atlantic cliffs at Cabo da Roca

Three.js is a beautiful library. Used well, it lets us build moments on the web that feel three-dimensional, weather-bound, alive. Used badly, it is the new Flash splash screen.

We have three rules. First — if you cannot describe the WebGL moment in words to the client, do not build it. Second — every shader scene must have a still-image fallback that conveys the same emotional weight. Third — the page must reach interactive within 2 seconds on a 4G mid-range Android, with the WebGL initialising after.

The shader you can see on the Iovate Studio hero is a small displaced plane with a noise field. It is 24 kilobytes of code. It would feel out of place at a museum, and exactly right for a studio that says it does motion work. Every WebGL moment is a sentence — it needs a place in the conversation.

"How we use real-time graphics on our sites — and when we choose not to."

— Iovate Studio, January 2026