IrisTrackingModule

The IrisTrackingModule class allows you to track the location of people's irises in your effect, to create effects such as eye color replacement.

Example

//==============================================================================
// The following example demonstrates how to bind the position and rotation of
// objects to the eyeball and iris.
//
// Project setup:
// - Insert two planes
// - (Recommended) Decrease the scale of the planes and assign materials to them
//==============================================================================

// Load in the required modules
const FaceTracking = require('FaceTracking');
const IrisTracking = require('IrisTracking');
const Scene = require('Scene');

// Enable async/await in JS [part 1]
(async function() {
  // Locate the planes in the Scene
  const [centerPlane, irisPlane] = await Promise.all([
    Scene.root.findFirst('plane0'),
    Scene.root.findFirst('plane1')
  ]);

  // Store a reference to a detected face
  const face = FaceTracking.face(0);

  // Store a reference to the left eyeball
  const leftEyeball = IrisTracking.leftEyeball(face);

  // Store a reference to the center and iris plane's transform
  const centerPlaneTransform = centerPlane.transform;
  const irisPlaneTransform = irisPlane.transform;

  // Store references to the eyeball center, iris and rotation
  const leftEyeballCenter = leftEyeball.center;
  const leftEyeballIris = leftEyeball.iris;
  const leftEyeballRotation = leftEyeball.rotation.eulerAngles;

  // Bind the position of the eyeball center to the center plane
  centerPlaneTransform.x = leftEyeballCenter.x;
  centerPlaneTransform.y = leftEyeballCenter.y;
  centerPlaneTransform.z = leftEyeballCenter.z;

  // Bind the position of the the eyeball iris to the iris plane
  irisPlaneTransform.x = leftEyeballIris.x;
  irisPlaneTransform.y = leftEyeballIris.y;
  irisPlaneTransform.z = leftEyeballIris.z;

  // Bind the rotation of both planes to the eyeball rotation
  centerPlaneTransform.rotationX = leftEyeballRotation.x;
  centerPlaneTransform.rotationY = leftEyeballRotation.y;
  centerPlaneTransform.rotationZ = leftEyeballRotation.z;

  irisPlaneTransform.rotationX = leftEyeballRotation.x;
  irisPlaneTransform.rotationY = leftEyeballRotation.y;
  irisPlaneTransform.rotationZ = leftEyeballRotation.z;
// Enable async/await in JS [part 2]
})();

Properties

This module exposes no properties.

Methods

MethodDescription
leftEyeball
leftEyeball(face: Face): Eyeball


Returns an Eyeball object for the given face, containing information about the 3D position of the left eyeball.
rightEyeball
rightEyeball(face: Face): Eyeball


Returns an Eyeball object for the given face, containing information about the 3D position of the right eyeball.

Classes

ClassDescription
EyeballThe Eyeball class exposes details of a tracked eyeball.