Zero Mile Instrumentsfree measuring and checking tools

Aim drills

One simple pattern, again and again, measured each time. Then the next harder one.

The field

Click the first target to start

Solid target: click it. Dashed outline: the next one. R restarts.

Size, distance, clicks

Size
Distance
Clicks

Drill ladder

    Result

    Nothing measured yet. After a run this sheet shows the verdict in words, your precision with a map of where the clicks landed, each movement of the pattern with its own time, the time of every click in order, and your throughput in bits per second.

    How this measures

    Clock
    Every time is the difference between two clicks, read from the timestamp the browser puts on the pointer event itself (pointerdown). The screen's frame clock is not used. The first click of a run starts the clock and is not timed.
    Start and end
    A run starts when you click the first target and ends when you have hit the number of targets you chose: 10, 30 or 50 (30 unless you change it). The pattern repeats until then, so a run can end in the middle of a repeat. When it ends the field stops: a new run needs Again or the R key, and a press within half a second of the end is ignored, so a double click on the last target cannot start one. If you stop a run (with R, Restart, or by changing an option) the line above the field says so, and nothing is recorded.
    Time per target
    From the hit on the previous target to the hit on this one. A miss leaves the target in place, so a miss costs time. The headline figure is the median of these times.
    Hits
    The share of targets you hit with your first click. The whole circle counts, up to its outer edge. A click anywhere outside it is a miss.
    Precision
    How close to the centre of the target your clicks land. For each target, the distance from its centre to the click that hit it, as a share of the target's radius: 0% is dead centre, 100% is the edge. The figure is the median of those distances, given also in pixels of your screen. Missed clicks are not in it, so it can never pass 100%; they show in the hit rate and on the hit map. Each movement of the pattern has its own precision in the table.
    Hit map
    One target drawn large, with every click of the run placed where it landed relative to the centre: dots for hits, crosses for misses (a miss more than 1.6 radii out sits on the border of the map). The ringed point is the average of your hits. A sentence about which way your clicks lean appears only when the run supports it. The rule: without a lean, each click could as well have landed on the opposite side of the centre. So the page flips every hit to the opposite side at random, 1,000 times, and counts how often chance alone puts the average point as far out as yours. The sentence appears when that happens in fewer than 2 deals in 100, the average point is at least 10% of the radius from the centre, and the run has 10 hits or more. In our simulations of runs with no lean, a sentence still appeared in at most 2.8% of runs, at 10, 30 and 50 clicks; a true lean of 25% of the radius was named in 82% of runs at 30 clicks and 99% at 50 when the clicks scattered by 0.35 of the radius, and in 17% and 32% when they scattered by 0.6 of it. These limits are our own choice.
    Spread
    The interquartile range of your times (the middle half of them) divided by the median. Under 20% reads "steady", under 35% "a little uneven", above that "uneven". These two thresholds are our own choice, not taken from a study.
    Slowest movement
    Each movement of the pattern (left to right, right to left) gets its own median once it has 3 clicks. One of them is named as the slowest only when the run supports it. The rule: every time of the run is ranked from fastest to slowest. The page then deals those same times at random over the movements, 1,000 times, and counts how often chance alone makes some movement look as slow as your slowest one. A movement is named when that happens in fewer than 2 deals in 100, the movement whose times rank slowest is also the one with the highest median, and that median is at least 15 ms and 5% of your overall median above the fastest. Otherwise the page says that no movement stands out yet, and that more clicks will tell. A short run can only show a clean split; a longer one can show a smaller difference. With 10 clicks, the square gets 3 clicks on only two of its four movements, so only those two are compared, and two sets of 3 clicks cannot show a gap clear enough for the 2-in-100 rule (chance alone gives the clearest possible split in about 1 deal in 10): none is named. On the circle of 9, no movement gets 3 clicks in a 10-click run, and the page says so. In our simulations of runs with no real difference, a movement was still named in at most 2.6% of runs, on every step at 10, 30 and 50 clicks; a movement that was truly 15% slower was named in about 30% of runs at 10 clicks on a pattern of two places, in 71% to 94% of runs at 30 clicks and 94% to 99% at 50 on the patterns of two to four places, and on the circle of 9, where each movement gets few clicks, in 17% at 30 clicks and 53% at 50. Shuffle and Free list the clicks by direction of travel and never name one, because there the movements differ in length and a slower direction can be geometry alone.
    Throughput
    The standard measure of pointing, in bits per second: how much distance and precision you deliver per second. It uses where your clicks really landed, not the nominal target size:
    SDx = spread of your first clicks along the line of the movement (sample standard deviation)
    We  = 4.133 x SDx
    Ae  = mean of (distance between the two target centres + how far the first click went past the centre)
    IDe = log2(Ae / We + 1)  bits
    TP  = IDe / MT           MT: mean time to the first click, in seconds
    The first click on each target counts, hit or miss. One run is one sequence. It needs 10 timed targets. Source: I. S. MacKenzie, "Fitts' law", in the Handbook of Human-Computer Interaction (Wiley, 2018), section "Calculation of Throughput": yorku.ca/mack/hhci2018.html. One thing the source does and this page does not: for targets clicked in a series it adds to each distance the over- or undershoot of the click before. Leaving that out moved the figure by under 2% on our test click lists. The result sheet prints every line with its numbers, rounded, so the figure can be rebuilt by hand to within 0.01.

    Never a silent number. A first click that comes later than 2 times your median time to the first click (3 times in Shuffle and Free) is treated as a pause: it is left out of the figure and the result says so. With more than 1 pause in 5 clicks the figure is withheld, and also when fewer than 10 timed targets are left once the pauses are out (on a 10-click run, one pause is enough). It is also withheld, with the reason, when the run is not a plausible human run: clicks that land on the same spot every time, a mean under 100 ms per target, or more than 25 bits per second. These limits are our own choice.

    The same chapter reports 3.7 to 4.9 bits/s for the mouse across studies that followed ISO 9241-9; those were lab protocols with unrehearsed targets, so do not set your number beside them directly. In Shuffle and Free the movements have different lengths and are pooled, which the standard method does not do: read that figure as approximate.
    Next target
    The dashed outline shows where the next target will appear. It is on by default in the fixed drills and off in Shuffle and Free, where knowing the next place changes the task. Once you move the switch, your choice holds for every drill until you reload the page. Each result says which way it was played. The two are different exercises: compare runs only with the same setting.
    Effects
    The ring on a hit, the time that floats up, the fading line of the movement and the ring on a miss are decoration. They are drawn after the click has been timed, each is gone in under a quarter of a second, and none delays the next target or blocks a click. The switch under the field turns them off; they are off when your system asks for reduced motion.
    Size and distance
    Size is the target's diameter as a share of the field's side: large 15%, medium 10%, small 6.5%. Distance moves the places of the pattern toward the centre of the field and leaves the target size alone: Far is the pattern as drawn (left and right are 40% of the field apart), Medium is three quarters of that, Near is half. Free has no pattern, so Distance does not apply there. A run with another size or distance is another exercise, so the result and the session table carry both. On a small touch screen the sizes are larger: all three are enlarged by the same factor so that the smallest is 36 px across (and none is wider than 18% of the field). The result says when that happened.

    Limits

    • The page sees the pointer after your operating system has applied its own acceleration, and every time includes the delay of the mouse and of the screen. Numbers compare well on the same setup and poorly between setups.
    • This trains pointing on a flat screen. Aiming in a 3D game is a different movement, and nobody has tested whether a fixed drill carries over to it. Two 2024 reviews of practice studies found that mixed practice beat repeated practice for keeping a skill and for carrying it to a new task in the laboratory, with little or no difference outside it (Czyz and others, 54 studies; Czyz, Wojcik and Solarska, 34 studies); none of those studies used a mouse. The one large aiming study, of 7,174 Aim Lab players, used random target places and did not compare them with fixed ones (Listman and others, 2021).
    • A fixed pattern is learned by heart. That is the point of a drill, and also its limit: Shuffle and Free are there to check that the gain is real.
    • On a touch screen the finger does not travel like a mouse. The numbers mean something else there.
    • The page cannot know the physical size of the targets on your screen.
    • Everything runs in your browser. After the page has loaded, nothing is sent anywhere and nothing is stored. The fonts come from this site, like the page itself.