Three.js in 2019: 3D goes mainstream
WebGL and Three.js have matured — interactive 3D is finally realistic on ordinary marketing sites in 2019, not just tech demos.
There was a time when 3D in the browser was a promise for the future. Impressive in demos, but too heavy, too fragile, too picky about hardware to put in front of a real client. This year I realized the tide has turned. WebGL runs reliably today, mobile devices have become surprisingly capable, and Three.js has grown from a playground into a serious tool.
From tech demo to real site
What changed isn't a single technology, but its level of maturity. Three.js abstracts the raw WebGL complexity far enough that I can focus on the idea instead of shader math.
const scene = new THREE.Scene();
const camera = new THREE.PerspectiveCamera(75, ratio, 0.1, 1000);
const renderer = new THREE.WebGLRenderer({ antialias: true });
Three lines, and I have a stage, a camera, and a renderer. The rest is design. That's exactly the difference: the technology steps back and the creative work steps forward.
Where 3D truly shines today
I see the most exciting possibilities not in full-screen 3D worlds, but in deliberate moments. A product you can rotate with the cursor. A hero section where geometry drifts gently with the scroll. A material that genuinely looks like a material in the light.
3D is at its strongest when the visitor doesn't think "3D" — they just feel that this site is alive.
Responsibility still matters, of course. A 3D scene must not bring a page to its knees. I watch polygon budgets, lazy-load assets, and I always ask first: does this carry the idea — or is it just an effect? If 3D only glitters without saying anything, I leave it out.
For me, 2019 is the year 3D on the web went from a risk to an option. It's no longer an argument I have to defend against skepticism, but one more brush in my toolkit. And honestly: one of the most beautiful.