MCPcopy Create free account
hub / github.com/auduno/headtrackr

github.com/auduno/headtrackr @main

Chat with this repo
repository ↗ · DeepWiki ↗ · + Follow
42 symbols 94 edges 14 files 0 documented · 0% 1 cross-repo links updated 3y ago★ 3,70116 open issues

Browse by type

Functions 42 Types & classes 0
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

headtrackr

headtrackr is a javascript library for real-time face tracking and head tracking, tracking the position of a users head in relation to the computer screen, via a web camera and the webRTC/getUserMedia standard.

For a demonstration see this video or try out some of the examples with a laptop that has a camera and a browser that has camera webRTC/getUserMedia support. For an overview of browsers supporting the getUserMedia standard see http://caniuse.com/stream.

Reference - Overview

Examples

facetracking sprites facekat targets

Usage

Download the minified library headtrackr.js and include it in your webpage.

<script src="https://github.com/auduno/headtrackr/raw/main/js/headtrackr.js"></script>

The following code initiates the headtrackr with a video element which will be used for the mediastream, and a canvas element we will copy the videoframes to.

<canvas id="inputCanvas" width="320" height="240" style="display:none"></canvas>
<video id="inputVideo" autoplay loop></video>
<script type="text/javascript">
  var videoInput = document.getElementById('inputVideo');
  var canvasInput = document.getElementById('inputCanvas');

  var htracker = new headtrackr.Tracker();
  htracker.init(videoInput, canvasInput);
  htracker.start();
</script>

When the headtracker is started, this will now regularly generate the events headtrackingEvent and facetrackingEvent on the document. The event headtrackingEvent has the attributes x, y, z, which tells us the estimated position of the users head in relation to the center of the screen, in centimeters. The event facetrackingEvent has the attributes x, y, width, height and angle, which tell us the estimated position and size of the face on the video.

You can now either create an eventlistener to handle these events somehow, or, if you're using three.js, try to use one of the pre-packaged controllers in this library to create pseudo-3D, aka head-coupled perspective effects.

To get some more idea about usage look at the source code for the examples above, this overview, or the reference.

Projects that have used headtrackr

movembergames street-facing Real-time responsive typography snake

Building from source

Make sure you have grunt and node installed. To install the development dependencies run npm install and to build it run grunt in the root directory.

License

Headtrackr.js is distributed under the MIT License, and includes some code bits (courtesy Liu Liu and Benjamin Jung) that are under the BSD-3 License and the MIT License respectively.

Core symbols most depended-on inside this repo

browse all functions →

Shape

Function 42

Languages

TypeScript100%

Modules by API surface

headtrackr.js17 symbols
src/main.js9 symbols
headtrackr.min.js8 symbols
src/camshift.js4 symbols
src/facetrackr.js3 symbols
src/smoother.js1 symbols

Dependencies from manifests, versioned

grunt0.4.2 · 1×
grunt-contrib-concat0.3.0 · 1×
grunt-contrib-uglify0.2.7 · 1×

For agents

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

⬇ download graph artifact

Ask about this repo answers extend the page