Precision in Every Click.
A premium, fully client-side mouse testing and diagnostics suite built with React and TypeScript. No backend, no data collection — everything runs in your browser and resets on reload.
MousePulse gives you a real-time breakdown of everything your mouse is doing:
- Click testing — tracks left, right, middle, and double clicks with timestamps
- Movement tracking — live X/Y coordinates and cursor speed in px/s
- Scroll wheel — counts up and down scroll events with directional indicators
- Polling rate meter — estimates your mouse's report rate in Hz from real
pointermoveevents - CPI/DPI estimator — calibration flow that approximates your mouse's counts-per-inch
- Live mouse diagram — a 3/4 isometric SVG illustration that lights up per button and scroll direction in real time
- Pointer Events API readout — pointer type, pressure, tilt X/Y, and button bitmask
- Event log — timestamped list of the last 50 events, exportable as JSON
- System info — browser, platform, resolution, viewport, DPR, language, timezone, CPU cores, and touch support
- System readiness — checks that your browser supports Pointer Events, Wheel Events, Drag & Drop, Pointer Lock, Hardware Concurrency, and Blob downloads
| Layer | Technology |
|---|---|
| Framework | React 19 + TypeScript |
| Build tool | Vite 8 |
| UI components | Chakra UI v3 |
| Animations | Framer Motion |
| Icons | Lucide (react-icons) |
| Fonts | Inter (Google Fonts) + system monospace |
npm install
npm run devOpen http://localhost:5173, click Start Testing, and move your mouse into the test zone.
- Click Start Testing to activate the diagnostic zone
- Move, click, and scroll inside the large test area
- Watch the live diagram, counters, and event log update in real time
- Use Sensitivity Analyzer to measure polling rate or run a CPI/DPI calibration
- Click Export JSON in the Event Log to download a full session report
- Click Reset to clear all data and start over
- All data is ephemeral — nothing is stored or sent anywhere
- CPI/DPI estimation is an approximation based on raw
movementX/Ydeltas; accuracy depends on screen DPI and physical movement distance - Polling rate is sampled from real
pointermoveevent timing and displayed as a rolling average