Browser inputs and standard mapping
The tool reads controller snapshots exposed by the browser Gamepad API. “Raw” means browser-reported values before this site rounds them for display; the operating system, driver, or firmware may have processed them already.
Only mapping="standard" uses standard button names and the first four axes as two sticks. Other mappings retain their original indices. The input layer uses gamepad.js 3.0.1 under the MIT license, with analog input enabled, no extra dead zone, and no extra numerical rounding.
The site uses the package handler with its own local scheduling so an unrelated advertising or third-party script error does not stop controller polling. Up to four slots are inspected.
The ten-second observation
We sample the current axes on each foreground animation frame, including constant and zero values. The browser frame count describes observations, not the controller’s hardware report rate. Hiding the page, disconnecting, or switching devices interrupts the test.
Each stick sample uses √(X² + Y²). The summary includes mean, nearest-rank P95, maximum, and per-axis minima and maxima. Diagonal magnitude can reach √2; we do not clip it to 1.
The 0.05 default reference can be adjusted between 0.01 and 0.30. It changes the comparison label only. There is no automatic recentering, filtering, calibration, health score, or hardware diagnosis.
Software checks and device evidence
The upstream package was checked using ten synthetic input replays. Those replays are software evidence and do not represent tests on ten physical controllers. Site integration checks are recorded separately during development.
Our team has not completed physical-device tests for this release. We do not certify specific controller models, operating systems, or connection modes. Use the readings to understand what your own browser exposes and confirm physical behavior yourself.
Local results and vibration
Controller input, samples, and reports are processed in your browser. They are not sent to our server. Downloaded JSON can contain the controller name reported by your browser; review it before sharing.
Vibration sends one short command only where support exists. A command result cannot establish that a motor moved. This tool does not measure exact input latency, battery level, gyroscope data, or adaptive-trigger effects.