Mouse DPI Test
Estimate mouse DPI/CPI from Pointer Lock movement over a measured ruler distance. Compare three trials, median, drift, input mode, and an optional configured DPI.
- Browser-observed
- Pointer Lock only when requested
- Optional history in this browser
- No account or upload
Important
- This is a browser-observed DPI/CPI estimate, not raw sensor telemetry. movementX units, Pointer Lock support, acceleration/scaling, physical distance error, and movement technique can change the result.
DeviceMetrik requests unadjusted movement first; support varies and the page reports browser movement units only.
movementX units are implementation-dependent and may be physical, logical, or CSS-pixel-like browser movement units. No universal devicePixelRatio correction is applied.
- 1. If official mouse software shows the active DPI profile, optionally enter that configured value for comparison. The browser cannot read it directly.
- 2. Place a real ruler horizontally beside the mouse. Use about 4–6 inches / 10–15 cm when desk space allows; this is guidance, not a hardware standard.
- 3. Mark clear start/end points and place the mouse at the horizontal start.
- 4. Press Start trial; the page requests Pointer Lock and prefers unadjusted movement where supported. The cursor will disappear while Pointer Lock is active.
- 5. Move left-to-right or right-to-left along the horizontal marks without intentionally moving diagonally.
- 6. Press Space or Enter at the endpoint to save; return the mouse to the same start before the next trial.
- 7. Press Esc or Cancel to discard the current trial. Complete three comparable trials.
Ready
Ready — place the mouse at your marked horizontal start point.
Observed X movement units: 0
Observed Y drift units: 0
Vertical drift ratio: —
Trial observations
No completed trials yet. Each valid trial keeps its browser-observed X movement, Y drift, ratio, estimate, and input mode in this session.
Summary
- Estimated DPI/CPI (median)
- —
- Trials completed
- 0
- Minimum estimate
- —
- Maximum estimate
- —
- Range
- —
- Range / median
- —
- Coefficient of variation
- —
- Current setup distance
- 4 inch
- Pointer Lock input mode
- —
- Configured DPI
- Not provided
- Difference from configured
- —
- Difference %
- —
browser movement units / measured inch
repeatability ratio; lower means more similar trials
optional profile value; not read by the browser
median estimate minus configured DPI
Median, range, and CV describe repeatability across this three-trial set, not accuracy, sensor quality, or factory CPI. Difference from configured is neutral comparison context: browser movement semantics, OS scaling or acceleration, ruler and endpoint error, technique, driver behavior, and the active profile can all contribute. If input modes are mixed, repeat all three under one mode for a cleaner comparison.
Local history (aggregate 3-trial sets)
Movement analysis occurs locally in this browser. Local history stores only completed aggregate three-trial summaries and, when provided, the configured DPI comparison context; per-trial movement values stay in the current session. Raw movement timelines are not persisted, and analytics does not receive raw movementX/movementY traces or physical-distance trial data.
No completed 3-trial sets yet. Finish three valid trials to save one aggregate summary.
How to use
- If official mouse software shows the active configured DPI, use that as the direct profile value and optionally enter it here for comparison. If it does not, this browser workflow can still estimate DPI/CPI from ruler movement.
- Place a real ruler horizontally beside the mouse. Enter the measured distance; use about 4–6 inches / 10–15 cm when desk space allows because a longer path generally reduces the relative impact of ruler and endpoint error.
- Mark clear start/end points and place the mouse at the start. Disable OS mouse acceleration when using regular Pointer Lock fallback if your system allows it, and keep pointer settings, browser, zoom, and setup unchanged across trials.
- Press Start trial. DeviceMetrik requests Pointer Lock and prefers unadjusted movement where supported. Move the mouse horizontally exactly between the marks.
- Press Space or Enter at the endpoint to save the trial; Esc or Cancel discards it. Return the mouse to the same physical start before the next trial.
- Complete three trials with the same locked setup. Review the median estimate, range, CV, per-trial X movement and Y drift, then compare aggregate Local-history sets only under similar browser/OS/input conditions.
What the result means
- Browser-observed DPI/CPI estimate ≈ absolute accumulated movementX units / measured physical inches. DPI is the common mouse-search term; CPI is conceptually closer, but browser movement units are not guaranteed sensor counts.
- movementY is reported as off-axis drift and is not added to the DPI numerator. Vertical drift ratio is abs(Y) / abs(X); lower means the observed path stayed more horizontal.
- The median is the middle of the three estimates. Range and coefficient of variation describe repeatability, not measurement accuracy, sensor quality, or factory CPI.
- Configured DPI is optional comparison context from mouse software or a device profile. Difference from configured is median estimate minus configured DPI; it is not sensor error, hardware deviation, or calibration accuracy.
- The input mode reports whether unadjusted movement was requested or regular Pointer Lock fallback was used. Neither mode guarantees exact sensor-unit reporting.
- A stable three-trial set can still be consistently biased by browser/OS units, acceleration, scaling, ruler error, or technique.
Limitations
- No browser API directly returns a mouse sensor's configured DPI/CPI; movementX and movementY units can differ across browser/OS implementations and are not guaranteed raw sensor counts.
- unadjustedMovement asks for input without OS acceleration where supported, but support varies and legacy implementations may ignore the option.
- Regular Pointer Lock fallback can include OS acceleration or scaling. DeviceMetrik does not apply a universal devicePixelRatio correction.
- Physical ruler placement, endpoint error, mouse angle, desk friction, lifting the mouse, and off-axis movement affect the estimate.
- Wireless, driver, firmware, OS, and browser event handling can affect delivered movement.
- A stable three-trial set can still be consistently biased; repeatability is not proof of factory accuracy.
- Configured-value differences can contain browser movement-unit semantics, OS scaling or acceleration, physical ruler and endpoint error, user technique, driver behavior, or an unexpected active profile. The browser cannot isolate those causes.
Troubleshooting
- Pointer Lock is denied
- Use a supported desktop/laptop browser, interact with Start trial directly, allow Pointer Lock for the site, keep the tab active, and retry.
- The page uses Regular Pointer Lock fallback
- The browser/platform did not provide the preferred unadjusted path. For cleaner comparison, disable OS mouse acceleration when possible and keep OS pointer settings, browser, zoom, physical distance, and movement setup unchanged.
- Trials vary a lot
- Use a longer clearly marked horizontal path, return to the same start point, keep distance/setup unchanged, and reduce vertical drift.
- The estimate differs from my mouse software
- The browser does not read the configured sensor CPI. movement-unit semantics, acceleration/scaling, physical measuring error, firmware/driver behavior, and browser delivery can all shift the estimate.
- Vertical drift is large
- Keep the ruler horizontal and move the mouse more directly between the marks. Y movement is shown as drift and is not added to the DPI numerator.
Related tools
FAQ
Can a browser measure my exact mouse DPI?
No. Official mouse software may show the configured DPI stored in the active profile. DeviceMetrik cannot read that value directly; it derives a browser-observed estimate from horizontal movement units and a physical distance you measure.
What is the difference between DPI and CPI here?
DPI is the common mouse-search and product term; CPI is conceptually counts per inch. The browser does not guarantee raw sensor counts, so this remains an estimate.
What does unadjusted movement mean?
Pointer Lock can request unadjustedMovement to avoid OS-level acceleration where supported. DeviceMetrik requests it first, but browser/platform support varies and the page does not claim verified raw sensor counts.
Why does DeviceMetrik use only horizontal X movement for the estimate?
The entered ruler distance is horizontal. Adding Y drift through a Euclidean magnitude would inflate the numerator when the mouse wanders off-axis; Y is shown separately as drift.
Why use three trials?
Three trials provide a practical median, range, and variation check. It is a repeatability workflow, not a scientific certification minimum.
What does Difference from configured mean?
It is the signed difference between the three-trial median estimate and the optional DPI value you entered. It is neutral comparison context, not a sensor-accuracy, hardware-health, pass, or fail result.
Which mouse test should I use?
Use Mouse Test for buttons and basic input, Mouse Double Click Test for repeated click timing, Scroll Wheel Test for wheel diagnostics, and Mouse Polling Rate Test for browser pointer movement event rate. This page is for a browser DPI/CPI estimate.