FaceTracking with just your webcam!
UDP Logo Forward

UDP (User Datagram Protocol): network protocol to communicate with external Tracker(s) or programs.


Turn your (other) PC or Android Phone into a headtracker for FaceTrackNoIR!


The UDP-tracker plugin was developed in the early stages of development of FaceTracknoIR. It offers a generic interface to external tracking sources. The User Datagram Protocol is a simple network protocol, supported on virtually every computer-platform and is very simple to implement.


Initially the protocol was developed to use two instances of FaceTrackNoIR: a server and a client. The client runs on a PC, which has a webcam which tracks the users' face. The server runs on the "gaming-PC" and receives the tracking-data from the client. The major advantage of this: reducing CPU-load for the gaming PC.


Today, there are many external trackers, which can also track head-movements and which can communicate through UDP. For instance, you can use an Android HeadTracker:


Android HeadTracker

Android HeadTracker









Some VirtualReality Apps also support the UDP-protocol, like TrinusVR and KinoVR.


If you have questions regarding the UDP-tracker plugin, please post them here: [discussion:udp]


Info for developers, who want to send UDP or receive UDP from FaceTrackNoIR:

The datagram of the UDP-protocol is coded like this:

// x,y,z position in centimetres, yaw, pitch and roll in degrees...
#pragma pack(push, 2)
struct THeadPoseData {
    double x, y, z, yaw, pitch, roll;
    long frame_number;
#pragma pack(pop)

Please drop me an e-mail, if you want to interface with FaceTrackNoIR and need some help... I would also be interested in any projects using FaceTrackNoIR. Quite a number of "serious" applications can be enhanced with face-tracking!


  • Reduce CPU-load for your gaming PC;
  • Possible to use any external tracker, which offers UDP communication;
  • On the same PC, or across the LAN;
  • Very simple setup.


The current version of the UDP-Tracker can be downloaded separately from the download page.

Settings (for the upgraded version, v201):

 UDP Tracker settings

Tracker: FaceTrackNoIR supports two trackers to run simultaneously. So you can run two instances of UDP tracker, or use another tracker to supply the axes the UDP tracker does not. With this option you select Primary or Secondary. The settings for Primary and Secondary are stored separately.


Receiving Port-number: this is the number of the UDP-port, to which the external source writes and from which FaceTrackNoIR reads. By default this is port 5550.


Using the Enable axis checkboxes each of the 6 DOF's can be enabled or disabled. Disabled means, that the output value will not be sent to FaceTrackNoIR.



The UDP Tracker reads UDP messages and checks the size of the datagram (if "checked").

When no messages or "wrong" messages arrive, the respective counter will increase. The counter is reset, when a good message arrives. When either counter exceeds 100, "Tracking" will be reset to "False".



Known Issues and limitations:

The UDP protocol is a networking protocol, so the known issues apply to this. The software using networking resources must be allowed to do so by Windows. Usually Windows asks the user for permission to do so, the first time FaceTrackNoIR starts.


The port(s) used for UDP communication must be "open". So make sure no FireWall or other software is blocking the required port(s).


When a proces using an UDP-port terminates unexpectedly, the port may stay occupied. ATM this can only be remedied by rebooting the PC.