MCPcopy Index your code
hub / github.com/charliegerard/gaze-detection

github.com/charliegerard/gaze-detection @main

Chat with this repo
repository ↗ · DeepWiki ↗ · + Follow
13 symbols 24 edges 3 files 0 documented · 0%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Gaze-detection

Use machine learning in JavaScript to detect eye movements and build gaze-controlled experiences!

Demo

Visit https://gaze-keyboard.netlify.app/ (Works well on mobile too!!) 😃

Inspired by the Android application "Look to speak".

Uses Tensorflow.js's face landmark detection model.

Detection

This tool detects when the user looks right, left, up and straight forward.

How to use

Install

As a module:

npm install gaze-detection --save

Code sample

Start by importing it:

import gaze from "gaze-detection";

Load the machine learning model:

await gaze.loadModel();

Then, set up the camera feed needed for the detection. The setUpCamera method needs a video HTML element and, optionally, a camera device ID if you are using more than the default webcam.

const videoElement = document.querySelector("video");

const init = async () => {
  // Using the default webcam
  await gaze.setUpCamera(videoElement);

  // Or, using more camera input devices
  const mediaDevices = await navigator.mediaDevices.enumerateDevices();
  const camera = mediaDevices.find(
    (device) =>
      device.kind === "videoinput" &&
      device.label.includes(/* The label from the list of available devices*/)
  );

  await gaze.setUpCamera(videoElement, camera.deviceId);
};

Run the predictions:

const predict = async () => {
  const gazePrediction = await gaze.getGazePrediction();
  console.log("Gaze direction: ", gazePrediction); //will return 'RIGHT', 'LEFT', 'STRAIGHT' or 'TOP'
  if (gazePrediction === "RIGHT") {
    // do something when the user looks to the right
  }
  let raf = requestAnimationFrame(predict);
};
predict();

Stop the detection:

cancelAnimationFrame(raf);

Core symbols most depended-on inside this repo

initKeyboardUI
called by 3
demo/keyboard/index.js
normalize
called by 2
index.js
isFaceRotated
called by 1
index.js
letterPrinted
called by 1
demo/keyboard/index.js
updateModelStatus
called by 1
demo/keyboard/index.js
init
called by 1
demo/keyboard/index.js
predict
called by 1
demo/keyboard/index.js
isMobile
called by 1
demo/keyboard/utils.js

Shape

Function 13

Languages

TypeScript100%

Modules by API surface

index.js5 symbols
demo/keyboard/index.js5 symbols
demo/keyboard/utils.js3 symbols

For agents

$ claude mcp add gaze-detection \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page