Mouse trail test
Draw ten-odd even circles in the area below and watch whether the line comes out round. The page counts how many isolated spikes the trail holds — places where the distance between two neighbouring samples suddenly jumps while both sides stay normal — and checks whether the sensor produces counts of its own while the mouse sits completely still (static drift).
- “The distance between two samples grew” is not the same as a dropped frame: a skipped count and a fast flick look identical in the data. So this page counts the shape — an isolated spike poking out of a run of even, small steps is the suspect; a whole stretch that grows together is your hand.
- The mousepad matters too. On glass, plain white paper or a very glossy desk most mice get noticeably worse — if the result looks poor, switch to a dark cloth pad and test again.
| # | Direction | Length | Axis off | Max residual | Verdict |
|---|
How to read these numbers
| Metric | What to look at | Notes |
|---|---|---|
| Isolated spikes | the shape of a dropped frame | It exceeds the threshold while neither neighbour does. One large step inserted into a run of even small ones is exactly what a dropped frame looks like. The first and last steps have a neighbour on one side only and take no part in the judgement. |
| Over-threshold gaps | a denominator, not a conclusion | The total number of gaps over the threshold, counting runs along with the rest. When you flick evenly the normal gaps go over the threshold in whole runs, so on its own it proves nothing — read it against the isolated spikes: if the two are about equal, the over-threshold gaps are mostly spikes; if there are many gaps and 0 isolated spikes, you were simply drawing fast. |
| Median step | smoothness | When you draw at a steady speed it is roughly “how far each sample travels”. The number is neither good nor bad in itself — it depends how fast you draw and how high the mouse’s polling rate is. Its use is as a baseline, which is the threshold above: the threshold is 5 times the median step and no lower than 20 pixels. Both conditions are needed: with only the multiplier, a slow move gives a median step of a fraction of a pixel and the slightest wobble floods the screen with “dropped frames”; with only the absolute value, the normal gaps of a fast flick all go over the threshold too. |
| Largest step | whether there is a sudden change | Compare it with the threshold. If the largest step is only a little above the threshold it is mostly hand tremor; if it is several times higher, that one really was abnormal. |
Static drift: test it on its own, hand off the mouse
A trail test only shows whether something is wrong “while you move”. Another common sensor fault is failing to sit still: the mouse is resting on the desk untouched and the cursor creeps along by itself. That has to be tested on its own, by leaving the mouse alone.
The rule is blunt: if the mouse sends no reports, no events are dispatched, so a mouse with no self-oscillation should show 0 samples when it is completely still. If samples do arrive, the sensor is moving — either self-oscillating, or disturbed by the surface (glass, reflections, dust, desk resonance).
But “0 samples” is ambiguous in itself: if the pointer is not in the browser window at all, or the mouse is not plugged in, the page receives no events either — identical in the data to “a very quiet mouse”, and the opposite conclusion. So the flow adds one step: you shake the mouse once first, to confirm the page really receives a signal (those samples are then discarded and not counted), and only then wait for you to stop. Only after that does “0” really mean still. If no signal ever arrives, the page says “no signal” outright rather than judging it still for you.
One thing to be clear about: a hand on the mouse does not count. A heartbeat, breathing, even the desk being knocked, all move the mouse through your hand — and what you measure is your hand, not the mouse. So either take your hand right off, or rest one finger on it lightly without pressing.
What a trail test cannot tell you
- A browser cannot see the sequence numbers of mouse reports. A dropped frame is “there should have been 8 reports and only 7 arrived”, and all the browser sees is the ones it received — it does not know there should have been 8. So “did frames drop?” is a question a web page cannot answer directly at all; it can only look for clues in the shape of the trail — and a clue is not proof.
- The sensor’s own “acceleration” and “smoothing” cannot be measured either. Some mice interpolate, debounce or accelerate the raw data in firmware to make the drawn line look smoother, at the cost of wiping out real tiny movements. A web page sees neither; only a raw-data comparison can expose them.
Common questions
No — a jump the page catches has two possible causes, and the browser cannot tell them apart. One is that the sensor skipped a few counts, which really is a dropped frame; the other is that your hand really did flick fast, and that far apart is exactly how far two samples should be. Both look the same in the data: “the distance between two neighbouring samples is unusually large”, and no field can separate them. So this page says “jump”, never “dropped frame”.
Look at the shape, not the total. A dropped frame is “one isolated large gap inserted into a run of even small ones”, like a spike; a fast flick makes a whole run of gaps grow together, a single broad bump. That is exactly how the page works: the headline figure counts only “isolated spikes” (a sample over the threshold with neither neighbour over it), leaving the runs out. So the right way to use it is to draw a dozen-odd even circles — if isolated spikes keep appearing, that is a dropped frame; if there are many over-threshold gaps and 0 isolated spikes, you were drawing fast.
Because what it measures is “does the sensor produce counts of its own when the mouse is completely still”. With your hand on the mouse, the tiny movement from your heartbeat and breathing gets counted — and that is not the sensor, that is your hand moving. So either take your hand right off, or rest one finger on it lightly without pressing.
That is a deliberate fade, not the drawing being lost. At a high polling rate a mouse produces thousands of points a second, and after a dozen-odd seconds the whole area would be a smear of black that hides the shape of the trail. The fade keeps the most recent trail clearest, and the data used for analysis stays in the buffer, unaffected.
