HomeComputer ScienceTouch Heatmap Tracker: Kernel Density Event Tracking (2D)

Touch Heatmap Tracker: Kernel Density Event Tracking (2D)

Interactive 2D mobile-analytics simulator: synthetic tap events accumulate into a live kernel-density touch heatmap with isodensity contours and marginal density profiles, mirroring how real mobile-analytics SDKs aggregate touch events.

Computer Science2DModerate60 FPS📱 Mobile-adapted⇄ 3D version
2d-mobile-analytics-tracking ↗ Open standalone

Mobile analytics SDKs turn raw touch events into behavioral insight through touch heatmaps and scroll tracking. This 2D simulator streams synthetic tap events onto a flat phone-screen density field and accumulates them into a live kernel-density heatmap exactly the way tools like Firebase Analytics, Amplitude and session-recording SDKs aggregate real user taps. Tap rate controls event volume, kernel bandwidth σ controls how far each tap's Gaussian influence spreads across the grid, and a session decay half-life makes older taps fade — a rolling window rather than infinite memory. On top of the color map, isodensity contour lines (traced with marching squares) outline regions of equal density, and marginal density strips along the bottom and right edges show the row/column sums of the field — the exact horizontal and vertical tap-clustering profile. A realistic-vs-uniform toggle contrasts taps clustered around real UI zones against a structureless null model, while live readouts track total events, peak cell density, screen coverage and the marginal peak location.

⚙ Under the hood

Synthetic tap events stream onto a flat 2D density field and accumulate into a live kernel-density touch heatmap with isodensity contour lines and marginal density profiles — tune tap rate, kernel bandwidth and session decay half-life and see exactly where taps cluster on each axis.

mobile analyticsevent trackingkernel density estimationtouch heatmapUX telemetrysession decayisodensity contoursmarginal distribution

2D · HTML5 Canvas 2D · 60 FPS target · runs fully client-side, no install

What did you find?

Add reproduction steps (optional)