npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

peekr

v1.0.7

Published

Browser-based ONNX eye tracking module using MediaPipe + onnxruntime-web

Readme

👁️ Peekr: Browser-based Eye Tracking

Peekr is a lightweight, browser-compatible webcam eye tracking module. It runs entirely in the browser — no installation, no data sent to a server.

🎓 Background

Peekr was developed by Aryaman Taore, a visual neuroscientist and machine learning engineer. The project emerged during Aryaman's PhD at the University of Auckland and continued through his postdoctoral research at Stanford University. Peekr's underlying ML model was trained on 268,000+ image frames from 264 participants recruited via Prolific. Each participant used their own personal setup.

Accuracy (after calibration):

  • Mean horizontal error: 1.53 cm (~1.75° visual angle)
  • Mean vertical error: 2.20 cm (~2.52° visual angle) These results were obtained from 30 randomly selected participants using their own setups, with no supervision. Each participant followed a stimulus on screen after completing a simple 5-dot calibration. The calibration consisted of four dots in the corners and one in the center of the screen. After this, a linear fit was applied separately to the x and y axes to adjust the gaze predictions.

🧪 Demo (with Calibration Panel)

I have attached a public/index.html demo file. To run this demo, follow these steps:

  1. First, build the project by running the following command:

    npm install
    npm run build
  2. Then, run the demo using npx with the following command:

    npm run serve

🧠 Available Functions

Peekr.initEyeTracking({ onReady, onGaze })

Initializes the webcam, loads the ONNX model, and sets up gaze detection.

  • onReady: Called once the model is loaded and initialized.

  • onGaze(gaze): Called every frame with the gaze prediction:

    gaze.output.cpuData = [x, y]; // Both values in range ~[0, 1]

Peekr.runEyeTracking()

Starts real-time gaze prediction.

Peekr.stopEyeTracking()

Stops webcam and gaze processing.

📁 Files Included

| File | Purpose | | ------------- | ------------------------------- | | index.js | Main entry module | | worker.js | Off-main-thread gaze processing | | peekr.onnx | Gaze detection model | | .wasm files | ONNX Runtime Web WASM backend |


🚀 Load via npm

npm install peekr

Then:

import * as Peekr from 'peekr';

📦 Publishing

To build and publish:

npm run build
npm publish --access public

Make sure your dist/ includes the model, worker, and all necessary WASM files.

🧠 Credits

Built by Aryaman Taore at Dakin Lab and Stanford Brain Development & Education Lab.

🗪 License

MIT