Skip to content

MirandaThe Eye-Tracking Toolkit

Use your eyes to control your mouse and more

Miranda allows you to use your eyes to control your mouse and more. The usage is simple:

  • Pick an input source, like the integrated eye-tracking functionality or an external application like Pupil Core,
  • calibrate your eyes to your screen,
  • and then let the mouse move to where you look at, or push the screen position via UDP for other applications.

The only thing you need is eye-tracking glasses, a.k.a. a USB camera in front of your eye.

🚧 This software is early in development. 🚧

Expect things to not work. We're very happy for your feedback and support!

Download Miranda ​

The easiest way to run Miranda is to download the application: Download for Windows, Download for Linux
On Linux, also install espeak-ng: apt install espeak-ng

Check out our Release Notes where you can also find checksums and fingerprints, or our git repo if you want to run from source.

How it works ​

In short there are three components: inputs, tracking approaches, and outputs. An input provides eye-tracking data. This data is translated into screen coordinates using a tracking approach, and these coordinates are then used or published through an output. Each input and tracking approach combination requires prior calibration.

Inputs ​

An input is where eye-tracking data comes from. The data could be the yaw and pitch rotation of your eyes in degrees. An input may be an integrated eye-tracking functionality of Miranda, or may be an external application that needs to run alongside Miranda. Since the data itself gives no indication of where the user is looking at we need a tracking approach.

The inputs are:

  • Integrated Inputs:
    • Mouse Position: The mouse position as input. Great for testing.
    • Eye-Tracking Glasses: Eye-Tracking using "Eye-Tracking glasses" with an infrared camera in front of the eye.
    • Webcam Head-Tracking: Head-Tracking with just using a Webcam.
  • Inputs requiring an external application:
    • OpenTrack: The rotation of your head with OpenTrack.
    • Pupil: Pupil Lab's 3d-eye detection.
    • EyeTrackVR: Eye tracking with EyeTrackVR.
    • Orlosky: The 3DEyeTracker from Jason Orlosky.

Tracking Approach ​

A tracking approach tells how the data from an input method shall be translated into screen coordinates – a position on the screen, e.g. where a mouse cursor could move to.

There are two approaches:

  • Gaze on Screen: The user is directly looking at the screen. The eye movement directly translates to a screen position. This is the most straight-forward approach.
  • D-Pad: This approach is a good alternative if your input is not accurate enough for the Gaze on Screen approach. Usually, a D-pad is a flat, typically thumb-operated, directional control. Likewise with this approach the current screen coordinates is steered by looking at a d-pad. E.g. by looking at the "up" arrow, the screen coordinates moves up.

Calibration ​

Before we can translate the data from the input method into screen coordinates, we need to do a calibration first. Every input method and tracking approach combination needs its own calibration. Once such a calibration is done the result will be stored and is available on the next start of Miranda.

Outputs ​

Outputs take the screen coordinates created by the tracking approach and make use of them.

The outputs are:

  • UDP-Export: Publish the gaze results over UDP in a simple JSON format.
    IP 127.0.0.1 and port 9999 is currently hard-coded.
    The JSON might look like this:
    {"x": 799.01324, "y": 747.57, "timestamp": "2026-02-27 18:36:23.805078"}
  • Mouse Movement: Moves the mouse cursor according to the gaze.
  • TTS Keyboard: A text-to-speech-keyboard. (Proove-of-concept)

Open Source License Attribution ​

This application uses open source components. You can find the source code of their open source projects along with license information below. We acknowledge and are grateful to these developers for their contributions to open source.

Libraries ​

Others ​

License ​

Miranda is distributed under the terms of the GPL version 3.0 or any later version.