Skip to content

Guide

How 3D runs in a browser

A web browser talks to the graphics hardware directly to draw 3D. WebGL is that path, and WebGPU is what follows it.

In short

The browser hands the drawing to the graphics hardware

Drawing 3D means telling the graphics hardware what to draw and how. WebGL is the path a web browser opens for that. Nothing is installed; code in the page hands the drawing to the hardware.

WebGL 2 is in every major browser. Chrome 56, Firefox 51 and Safari 15 shipped it, so it was settled by 2021.

WebGPU is the next generation. It was designed again around how graphics hardware is built today, and it can take on compute work as well. It arrived in Chrome 113, Chrome on Android 121, Firefox 141 and Safari 26, as recorded in MDN compatibility data on 20 September 2026.

What runs

From the file to the first frame

The first two steps run once. The last two run on every frame.

01

Download the file

The 3D file is fetched and unpacked into geometry, materials and textures. This is the wait before the first view.

02

Upload to the hardware

Vertex positions and textures are sent to graphics memory. Sent once, after which only draw commands go across.

03

Draw every frame

Camera position and lighting are worked out and the scene is redrawn 30 to 60 times a second. That rate is what makes it feel smooth.

04

Take the input

Turning and pinching are converted into a camera position and applied on the next frame.

Performance

What makes it slow

Three things explain most of it, and deciding them up front is far cheaper than fixing them later.

File size

Vertex count and texture resolution set the download time. Cut geometry with Draco and textures with KTX2.

Number of draw calls

Splitting a model into many small pieces means talking to the hardware more often. Merge the pieces that share a material.

Screen resolution

A high-resolution screen has four times the pixels to fill. Capping the resolution scale brings the frame rate back.

What you build with

You rarely touch it directly

Calling WebGL by hand is uncommon. A library on top handles the scene and the file loading.

  • Libraries such as three.js and Babylon.js run on WebGL and take care of cameras, lighting and reading files.
  • Where turning the model is all that is needed, a tag-level tool such as model-viewer shows the 3D on its own.
  • Either way the file is prepared as GLB. Export USDZ alongside it to reach the AR viewer on iPhone.

Common questions

Nothing at all. A web browser is enough.

It opens in any browser with WebGL 2. How smooth it feels is set by the graphics hardware, though, so heavy models are cut down first.

Show 3D on the web

Vi3w takes a 3D model and hands back a link that opens in a browser.