FaceTracking with just your webcam!

Manual v170:



Keyboard shortcuts and mouse buttons

To influence the facetracker while 'in-game', shortkeys and mouse-buttons can be defined. This dialog can be opened using the Options menu and via the button on the main window.

Shortcut keys and mouse-buttons can be defined to:

  • Center view (default key = HOME);
    • Disable beep: The MessageBeep when 'center' is pressed, is disabled.
  • Define the in-game 'zero-position' (the direction the gamer looks in-game, when in neutral position); To set GameZero, first sit in a neutral position and press the shortkey for 'Center'. Then move until the in-game view is at the desired position and press the 'Game Zero' shortkey. After pressing 'Center' again, view should be at neutral position.
  • Stop/Start the tracker (default key = END; The Start/stop shortkey has two extra options, which are active when the state is 'stop' :
    • View: When 'Zero' is checked, view will be reset to '0'. With 'Stay' selected, view will freeze in the current position.
    • Engine Tracker: With 'Stop Engine' checked, the tracker will stop face-tracking in 'stop'. This reduces CPU-load significantly. However, to 'start' again takes time. When 'Keep tracking' is checked the tracker-engine will not stop and 'start' will be much faster.
  • Disable a defined set of DOF-axis;
KB shortcuts-dialog


The user can define the curve, by which actual head-movement (horizontal axis) is translated into in-game movement (vertical axis). The curve can be changed by 'grabbing' a circular handle and dragging it (within the light-blue area). There are two tabs: one for rotations and one for translations.

The curves can be changed while the tracker is running.


At the request of several users, the pitch axis (looking up/down) was split into two curves. Since it is impossible to look 'through your seat' the down axis is limited to 90 degrees. The Up axis can go to 180 degrees, but some games (like DCS-A10C) don't like this and the curve should be limited by the user.


While tracking is ACTIVE, the red circular indicators show the current values used. This makes tweaking the curve(s) easier.


Tracker Source

The Tracker Source is the piece of software, that determines the users head-pose and relays the values of the 6 axis (roll, pitch, yaw and x, y and z) to FaceTrackNoIR. FaceTrackNoIR v170 is 'modular', so new trackers can be easily added. Using the Tracker Source combo-box the Tracker can be selected. The description of each tracker and it's settings can be found in the FaceTrackNoIR Wiki.


2nd Tracker

Currently the selection of the 2nd tracker only applies to users who have the AIC-IHT tracker. This tracker does not (yet) produce translations. If a users insists on having 6DOF, the translations can be retrieved from the second tracker (usually faceAPI or PointTracker).



Unfortunately, most Trackers produce 'jittery' raw-data and a user would get seasick very quickly, when this data is directly translated into in-game movement. The filter is the piece of software that takes the raw values from the Tracker Source and processes it, to obtain smoother movement. Again, since FaceTrackNoIR v170 is modular, new filters can be added easily. The different filters are described in the FaceTrackNoIR Wiki.


The filter can be completely disabled by choosing "None" in this checkbox.



The FTNoIR server was introduced to make it possible to run FaceTrackNoIR on a different PC, so the CPU-load of the 'gaming-PC' can be reduced. To send headpose-data to the 'gaming-PC', the FTNoIR Client must be selected as Protocol. When the tracker is not running, the IP-address and port-number for the remote PC can be edited via the Settings Dialog.


It is very likely that it is necessary to change Firewall settings in Windows to make LAN-communication possible for FaceTrackNoIR.

Camera Name

When the tracker is started, or on program startup, the name of the first usable video-input-device is shown by FaceTrackNoIR (Deskshare IP Camera Source in the example below). Unfortunately the non-commercial version of faceAPI (which is used, because it's free...) only uses the first camera it finds.



To process the raw headpose-data, FaceTrackNoIR has two features: smoothing and EWMA-filtering. Both features are meant to stabilize the raw headpose-data and remove spikes and jitter.

The smoothing setting works for all 6 DOF's at once. It adds the values of the last x raw values and divides them by x, thus creating a 'moving average'. Try to keep this value low, because smoothing will logically lead to a slower response.



From version 1.5 on, FaceTrackNoIR has a new EWMA-filter. It was designed to respond quicker to movement and still provide a smooth image, when not moving.

The parameters:

  •  Min. (frames): influences the filters response to quick movements. The higher, the slower.
  •  Max. (frames): influences the filters response to slow movements. Again, the higher, slower.
  •  Curve (pow): influences the filters readiness to respond to changes in speed. Here, the higher the value, the faster it responds.

Invert axis

Finally, it is possible to invert an axis, by checking it's Invert checkbox. Some games interpret the -/+ directions different than faceAPI does...