Input TestsBrowser test

Mouse DPI Test

Estimate mouse DPI/CPI from browser Pointer Lock movement over a measured horizontal distance. Run three trials and review median, range, drift, input mode, and local history.

  • Browser-observed
  • Pointer Lock only when requested
  • Optional history in this browser
  • No account or upload
Browser-observed measurement

Privacy-first. Tests run locally in your browser. We do not upload keystrokes, pointer paths, or media.

Requires a physical mouse and Pointer Lock in a desktop/laptop browser. DeviceMetrik requests unadjusted movement when available and falls back to regular Pointer Lock when necessary.

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.
Test instrumentInput Tests
Pointer Lock input mode

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. 1. Place a real ruler horizontally beside the mouse and enter the measured distance.
  2. 2. Mark clear start/end points and place the mouse at the horizontal start.
  3. 3. Press Start trial; the page requests Pointer Lock and prefers unadjusted movement where supported. The cursor will disappear while Pointer Lock is active.
  4. 4. Move left-to-right or right-to-left along the horizontal marks without intentionally moving diagonally.
  5. 5. Press Space or Enter at the endpoint to save; return the mouse to the same start before the next trial.
  6. 6. 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:

Fullscreen not supported

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)

browser movement units / measured inch

Trials completed
0
Minimum estimate
Maximum estimate
Range
Range / median
Coefficient of variation

repeatability ratio; lower means more similar trials

Current setup distance
4 inch
Pointer Lock input mode

Median, range, and CV describe repeatability across this three-trial set, not accuracy, sensor quality, or factory CPI. 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; 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

  1. Place a real ruler horizontally beside the mouse. Enter the measured horizontal distance; 4 inches is only a practical starting value and can be changed before the first trial.
  2. 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.
  3. Press Start trial. DeviceMetrik requests Pointer Lock and prefers unadjusted movement where supported. Move the mouse horizontally exactly between the marks.
  4. 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.
  5. 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.
  • 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.

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. If possible, disable OS mouse acceleration and repeat the same physical-distance protocol.
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. DeviceMetrik derives an estimate from browser 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.

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.