invisible layer / GPU identity
experiment 28 · webgl · no permissions
your GPU model
is not a secret.
Every time a website renders 3D graphics, your GPU exposes its vendor, model, and driver through the WebGL API. No permission required. The information is available to any script on any page you visit.
Your GPU vendor, model, and driver version are readable by every website that renders 3D graphics. This is used to track you across browsers, VPNs, and private windows. The UNMASKED_RENDERER string often includes the exact GPU model number.
vendor
max texture
extensions
webgl live render — triangle proof
WebGL is unavailable in this browser. This may be due to hardware acceleration being disabled, a headless environment, or a privacy browser that blocks WebGL. Try Chrome or Firefox with hardware acceleration enabled.
▶ why is the GPU renderer string so identifying?

WebGL exposes two layers of GPU information. The basic RENDERER string is already identifying — it may say something like "ANGLE (Intel, Mesa Intel UHD Graphics 620)". But if the WEBGL_debug_renderer_info extension is available, you get the unmasked string, which includes the full GPU model name and sometimes driver version.

The combination of GPU model, max texture size, and the exact set of supported extensions is highly unique. Different GPU generations support different extension subsets. A GeForce RTX 4090 and a Mali-G710 will have almost completely different extension lists.

Even when browsers try to mask this (Firefox does by default; Chrome does not), the rendering behavior itself can be fingerprinted by drawing specific scenes and measuring pixel output — defeating the masking.