FaceTracking with just your webcam!
Joystick Logo Forward

Joystick Tracker: Use your joystick and/or a virtual joystick to control in-game camera-movement.


Supports any DirectX compatible (virtual) joystick, like EDTracker.


The Joystick-tracker plugin is brand new. Some FaceTracknoIR users have requested (simultaneous) support for a virtual joystick (like EDTracker) and a "real" joystick (like my old Speedlink Black Widow). EDtracker supplies the rotations: yaw, pitch and roll. The "real" joystick can be used to supply the X, Y or Z translations.


The new Joystick tracker was intensively tested by my good friend Willem and has been approved by the EDTracker developers, who generously sent me an EDTracker Pro, to do the development with.



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


Info for developers, who want to send joystick data to FaceTrackNoIR:

The Joystick tracker reads the first 6 entries from the DIJOYSTATE2 structure:

typedef struct DIJOYSTATE2 {
LONG lX; /* x-axis position */
LONG lY; /* y-axis position */
LONG lZ; /* z-axis position */
LONG lRx; /* x-axis rotation */
LONG lRy; /* y-axis rotation */
LONG lRz; /* z-axis rotation */

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 head-tracking!


  • Reduce CPU-load for your gaming PC;
  • Possible to use any external tracker, which offers joystick data;
  • Very simple setup.


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


 Joystick Tracker settings

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


Joystick: Select the joystick from the list. For most joysticks counts: you can only select it, if it is connected to your PC. The EDTracker software must run to be able to select EDTracker Pro.


Tracker active: Displays "Yes", when data is succesfully read from the selected joystick (the tracker must be running).


Enable and Configure Axis

The Joystick Tracker reads 6 values from the selected joystick and shows their (raw) values. For each of these values, the following settings can be configured:

  • FaceTrackNoIR axis: This listbox gives you the option to assign the value to an in-game axis. Selecting "None" leaves the value "untouched", so it can be used by the secondary tracker.
  • Minimum input value. The lowest value the joystick writes to this field.
  • Maximum input value. The highest value the joystick writes to this field. The settings in the picture above apply to EDTracker.
  • FaceTrackNoIR input:  The tracker scales the raw values to a standard range of -50 to +50. The scaled value is shown here. You can use the Curves in FaceTrackNoIR to convert this range to the appropriate in-game range.
  • Invert Value: You can check this box, to invert the axis.

General Settings

  • Joystick software handles Center: Check this box, if the joystick can handle the "Center" command (like EDTracker can). This prevents "double centering".


Known Issues and limitations:

None so far...