Mouse aim test
Pick your targets and duration, click “Start practice”, then click the targets in the box below as often and as accurately as you can. Hit one and it moves somewhere else. Scores are kept in your own browser only.
Of the three readouts, only hits per second measures hand speed — accuracy can be inflated by slowing down. And mean offset is affected by DPI and sensitivity, so it can only be compared against yourself on the same machine; change the target diameter or the duration and two scores are not comparable either.
Only the result number and confidence level are uploaded; raw samples stay in your browser.
What the three readouts are
- Hits per second = hits ÷ session length. The length is given by the timer — pick 30 seconds and the denominator is 30 seconds, not something inferred from the click timestamps. If you land the last shot and stop, that idle stretch simply does not exist in the timestamps, and an inferred denominator would average “two frantic seconds” into an inflated figure.
- Accuracy = hits ÷ clicks. Only clicks that land inside the test area count as a shot; clicks outside the box do not.
- Mean offset = the distance from each shot to its target centre, in CSS pixels, over the hits only. It deliberately does not convert to centimetres or degrees: that would need the physical size of the screen, which is the whole problem the DPI page wrestles with.
Settings
Below is every setting this page has. Change any one of them and a score is no longer comparable with the previous tier — which is why best scores are kept per tier.
| Setting | Values |
|---|---|
| Mode | Multiple (3 at once) / single (1) |
| Difficulty | Easy 56px / standard 40px / hard 28px |
| Duration | 10 / 30 / 60 s |
What affects your score
- Target diameter. Accuracy is unaffected by DPI but is affected by the target’s angular size — 40 pixels on screen looks half as big when you sit twice as far back. So the page always prints the current diameter.
- DPI and mouse sensitivity. Accuracy (a ratio of two counts) is unaffected; mean offset is affected.
- The system cursor. This page uses the system crosshair. A self-drawn one would lag by a frame, and you aim with it — that frame turns into a real drop in score, with nothing to do with your aim.
- Trackpad and touchscreen. A tap is not an aimed shot. When the pointer is imprecise, the page shows a notice at the top.
- The page being switched away from. A background tab does not paint, so the targets are simply invisible. So when this page notices the switch it voids the whole round and gives no score — the timer stops along with rAF, and the measured window no longer matches the time you could actually play; better no denominator than a wrong one.
This page also does not use pointer lock (pointer lock). It would bring the operating system’s pointer acceleration into the measurement — this site has a whole page on acceleration testing precisely because that is a real confound; and once it is locked you need Esc to get out. So this round does not do it.
Common questions
Because accuracy can be inflated by slowing down: take your time, settle every shot before you click, and you can get close to 100%; click fast and it drops to seventy or eighty. A number that goes up just by slowing down is no good as the headline. “Hits per second = hits ÷ measured length”, on the other hand, is pushed the other way when you slow down — it has the same shape as the CPS page’s “average CPS”: a ratio of two counts, which nobody can inflate.
Because one miss 300 pixels off the centre drags the average right off with it. That number answers neither “how tightly did you hit” nor “how far did you miss” — two questions, one number each: accuracy answers “did you hit”, mean offset answers “how precisely”. So the offset averages only the shots that hit, in CSS pixels.
Accuracy is unaffected — it is just “hit how many times ÷ clicked how many times”, both of them counts. Mean offset is affected: change the DPI and the same hand movement covers a different distance on screen, so the pixel distance from the centre changes too. So comparing your offset with someone else’s, or your own across two DPIs, is really comparing settings. This is also why there is no weighted overall score: a weighting formula that folds accuracy and offset into one number is itself a made-up number.
Because although accuracy is unaffected by DPI, it is affected by the angular size of the target — 40 pixels on screen looks half as big when you sit twice as far from the monitor. Add screen size, refresh rate and mouse weight, and someone on another machine has several variables between their score and yours. So this page stores one best score locally, and splits the tiers finely: change the mode, the difficulty or the duration and it is a different key, so the scores are no longer compared together.
Because a self-drawn crosshair always lags by a frame — you move the mouse and it only catches up at the next screen refresh. And you aim with it, so that frame’s lag turns into a real drop in score, with nothing to do with your aim. So this page uses cursor: crosshair (the system crosshair), which the browser composites directly, without going through the page’s painting. For the same reason it does not do the “hide the cursor and follow it with the DOM” trick either.
No. If you do not click one, it stays put, and there is no “missed” count — because this page measures speed and precision, and folding “did not react in time” into the accuracy denominator would only make that percentage impossible to read. So there are just two outcomes: a hit (it moves) and a miss.
Accuracy shows a dash, not 0. “0% accuracy” and “never fired a shot” are two different things, and in a division they look exactly alike — this is what the site-wide rule “no number, show a dash” looks like on this page. Hits and hits per second do show 0 here, truthfully, because those two really can be worked out.
Because changing them replaces the yardstick itself: change the target diameter and the shots already recorded were on a different scale; change how many targets are on screen at once and the meaning of “hits per second” changes with it. So once you start, the three groups of buttons are disabled, and you can change them only after this round is voided or finished.
