Back home

Live on this site · 2026

cursorflow

This site learns how people move through it, then replays the common paths.

Overview

Page-view analytics tell you which pages people opened, not how they used them. cursorflow follows how desktop visitors move through this site: what they hover, what they stop to read, when they scroll back up, and where they leave. It retrains every night on the last 30 days of visits, and the player here replays the most common paths, cursor and all.

How it works

A small script samples the cursor about 15 times a second and notes which parts of the page people spend time on. It sends data in small batches, pauses when someone goes idle or switches tabs, and only runs on desktop. No cookies, IPs or user agents are stored.

The trainer drops bots and outliers with an Isolation Forest, then clusters visits with k-medoids over the edit distance between their paths and replays the real visit at the center of each cluster, so you see the few ways people actually move through the site and how many take each. It measures how long each section stays on screen, as a share of the section so screen size and zoom don't matter. Cursor motion is averaged with DTW Barycenter Averaging, which keeps the overshoots and hesitations a plain average would flatten, and it tracks where visits end, which shows where people lose interest.

Open source

cursorflow is public, so feel free to drop it into your own site: github.com/luvadlamudi/cursorflow.

Live metrics

Updated nightly from visits to this site · as of Oct 23, 2026

SectionAvg. timeVisitsEnded here
landing9.7s1900%
projects16.2s19021%
about18.0s16312%
contact6.2s15681%
project page · project5.4s610%
project page · writeup14.7s6133%

Avg. time is how long the section was on screen, per visit that reached it. Ended here is the share of those visits that left the site from it.

Built with TypeScript · Python · scikit-learn · NumPy · PostgreSQL · Neon · GitHub Actions · Next.js

Next project

Aria