New Mexico Supercomputing Challenge

Headtracking: controlling your computer with your head

Team: 64

School: Los Alamos Mid

Area of Science: Computer Science

Problem Definition:
Paralysis is loss of muscle function for one or more muscles. People that are paralyzed no longer have a life of their own. They do not have as much freedom to do things as a healthy person does. I want to write a program which allows them to control a computer with their head. For some paralyzed people this program will not help as their type of paralysis is not allowing them to move their head, but for others it will help as they can move their head at least a little.

Problem Solution:
The goal of this project is to create a head-tracking system that enables the user to control their computer with their head. The wiimote allows the tracking of up to four infrared LEDs. We are going to attach one or more LEDs to a head-piece and use the wiimote to track their position. The wiimote connects to the computer over Bluetooth and sends messages to the computer. The program will receive all the messages from the wiimote, scan all these messages and pick out the ones that concern the LEDs position. Then the program will move the mouse on the screen according to the position of the infrared LED. The environment in which this program will work in is Linux-only since it will possibly use the Xlib library to move the mouse and the Cwiid library to communicate with the Wiimote.

Progress to Date:
Currently, a program built in Python has been constructed in which the wiimote detects the infrared LEDs position and sends messages to the computer using bluetooth. The program receives all the messages from the wiimote, scans all these messages and picks out the ones that are related to the LEDs position. Then the program moves the mouse on the screen to the position of the infrared LED as the Wiimote sees it. The program has most of the functionality that I planned for, although it is still slow and takes a couple seconds each time for the mouse to move. I will have to fix this bug. Occasionally, the Wiimote receives too many messages and just dies while printing "mesg pipe overflow". I will also have to add some code which deletes the useless messages so they do not pile up and kill my Wiimote.

I still have to implement clicking in my program. One of my ideas to implement this is using two infrared LEDs and detecting whether the head is tilted or not. I will also have to add an onscreen keyboard for typing. I have an idea on how to implement these two necessities and am working on it.

Expected Results:
After programming, testing, and cleaning of the head-tracking system code being created in this project, this final system could blaze the trail for future, more advanced systems that could help paralyzed people boost their self-esteem by actually being able to use a computer.


- "Head Tracking for Desktop VR Displays using the WiiRemote - YouTube." YouTube, Web. 3 Jan. 2013.

- Hejn, Kevin, and Jens Rosenkvist. "" Headtracking using a wiimote. N.p., 28 Mar. 2008. Web. 2 Jan. 2013.

- "Virtual Reality Using Wii Remote Head Tracking | NintendoFuse." NintendoFuse Everything Nintendo. N.p., n.d. Web. 3 Jan. 2013.

- Gotliv, Shaul, and Samuel Sayag. "" Head Tracking for GIPview VR Displays using the Wii Remote. Yaron Honen, n.d. Web. 2 Jan. 2013.

- Cunningham, Collin. "MAKE | Wiimote headtracking FPS demo." MAKE | DIY projects, how-tos, and inspiration from geeks, makers, and hackers. N.p., n.d. Web. 3 Jan. 2013.

Team Members:

  Alexander Ionkov

Sponsoring Teacher: Pauline Stephens

Mail the entire Team

For questions about the Supercomputing Challenge, a 501(c)3 organization, contact us at: consult @

New Mexico Supercomputing Challenge, Inc.
Post Office Box 30102
Albuquerque, New Mexico 87190
(505) 667-2864

Supercomputing Challenge Board of Directors
Board page listing meetings and agendas
If you have volunteered for the Challenge, please fill out our In Kind form.