demo · v142
Precision Tracker
Try to trace the diagonal line from top-left to bottom-right. The left pad records every coalesced pointermove the browser delivered; the right pad records every pointerrawupdate. Same trace, two sample rates. Then compare your error against the ideal line.
isSecureContext —
pointermove (coalesced)
samples
0
RMS error from ideal line
—
pointerrawupdate (raw)
samples
0
RMS error from ideal line
—
raw sample rate
— Hz
raw advantage
—
pointerType
—
relevant markup
// pointermove is throttled to display rate (typically 60-120 Hz).
// pointerrawupdate fires at the hardware sample rate (240-1000+ Hz)
// — but ONLY in a secure context (HTTPS/localhost).
//
// Use coalesced events if you need more samples per frame:
window.addEventListener("pointerrawupdate", (e) => {
for (const sample of e.getCoalescedEvents()) {
pushSample(sample.clientX, sample.clientY);
}
});
see also
- pointerrawupdate — feature index
- Secure-context Only
- Signature Pad
- Spec — pointerrawupdate