A deterministic benchmark for browser-use / Computer Use / Operator-style agents. 30+ signals across event trust, trajectory, environment fingerprint, and rendering surfaces. Scoring runs client-side — rules are visible in the page source.
Visit https://rendertest.xyz/. The page runs ~30 deterministic checks against your browser and renders a 0–100 score plus a per-check pass / warn / fail breakdown. Score = 100 − Σ(weight × failure), where each check's weight reflects how strongly it indicates an automated agent.
Two halves contribute to the score:
Serves the analyzer page. No parameters. HTML only.
Returns the visitor's public IP, country, region, city, ISP, ASN, and timezone via a server-side proxy of ip-api.com with a 6-hour LRU cache. The page uses this to render the network half of your report.
{
"ok": true,
"ip": "203.0.113.42",
"country": "United States",
"country_code": "US",
"region": "Texas",
"city": "Austin",
"timezone": "America/Chicago",
"isp": "Comcast Cable",
"asn": "AS7922",
"as_full": "AS7922 Comcast Cable Communications, LLC"
}
Liveness probe.
This page.
| Category | Examples | Max weight |
|---|---|---|
| Environment | navigator.webdriver, selenium markers, headless UA, document markers | 25 |
| UA / Platform | UA vs navigator.platform, UA Client Hints mobile flag | 18 |
| Display | screen non-zero, DPR range, headless default sizes | 16 |
| Hardware | hardwareConcurrency, deviceMemory, touch points | 12 |
| Rendering | canvas hash entropy, GPU renderer, audio sum, fonts | 22 |
| Network | timezone vs IP country, language vs country, ASN class | 12 |
| Behavior | isTrusted ratio, trajectory straightness, velocity CV, click dwell | 14 |
| Privacy | cookies, localStorage, Function.toString native | 10 |
# the page outputs (client-side, never leaves the browser):
{
"score": 87,
"grade": "B — Looks human",
"checks_summary": { "ok": 24, "warn": 4, "bad": 1, "total": 29 },
"fails": ["chrome-runtime"]
}
Source is readable directly from the page (view-source:https://rendertest.xyz/). All scoring rules are deterministic and visible in the JavaScript — no obfuscation, no remote rule-evaluation. MIT.
Built by @andreehoan.