Where does all this information come from?
Every value on this page is pulled from a standard browser API that any website can call without asking permission. User agent and platform come from navigator, screen dimensions from window.screen, GPU from a WebGL UNMASKED_RENDERER probe, codec support from MediaSource.isTypeSupported, memory and core counts from navigator.deviceMemory and hardwareConcurrency, public IP from a single HTTPS lookup, and connection class from navigator.connection. Nothing is uploaded to our server — what you see, only you see.
What is device pixel ratio (DPR) and why does it matter?
DPR is the multiplier between CSS pixels and the physical pixels on your display. A 'Retina' or high-DPI screen has a DPR of 2 or 3, meaning each CSS pixel maps to 4 or 9 hardware pixels. It matters for image sharpness — a 100×100 image will look soft on a DPR-2 screen unless you serve a 200×200 source. Designers use it to ship @2x and @3x assets, and bug reporters should always include it, because a layout glitch at DPR 1.25 (Windows 125% scaling) often vanishes at DPR 1.
Why does the GPU string sometimes say 'ANGLE' or 'SwiftShader'?
ANGLE is the translation layer Chromium uses to convert WebGL/OpenGL calls into Direct3D on Windows or Metal on macOS — so 'ANGLE (Intel, Intel UHD Graphics 630 Direct3D11)' tells you the real GPU plus the backend driver. SwiftShader is a software renderer that kicks in when hardware acceleration is blacklisted, disabled, or unavailable inside a VM. If you see SwiftShader unexpectedly, your browser is rendering everything on the CPU and that is why scrolling feels heavy.
How much of this is used for fingerprinting?
All of it, potentially. The combination of user agent, screen size, DPR, timezone, language list, installed fonts, GPU string, codec support, and hardwareConcurrency is usually unique to one in tens of thousands of browsers, even without cookies. That is how ad networks track you across sites that share no login. Privacy-focused browsers like Brave, Tor, and Firefox with resistFingerprinting normalize many of these values; this page lets you see what each browser actually exposes.
Why does the public IP shown here differ from what other sites report?
Several reasons. If you are on a VPN, this page shows the exit-node IP — but other sites that probe WebRTC (see /network/webrtc) may catch your real IP through ICE candidates. If you are on IPv6, some sites only display the IPv4 endpoint of your dual-stack connection while we show whichever the lookup returned first. Corporate proxies and CGNAT (common on mobile) also rewrite the visible address. Run /network/webrtc to cross-check.
Is my data sent to your server?
No. Detection runs entirely in the browser tab. The only outbound request is the public-IP lookup, which is unavoidable because your IP can only be observed by a remote endpoint. We do not log it, store it, or correlate it with anything else. Closing the tab discards every value on the page.