Skip to content
Head tracking software for MS Windows, Linux, and Apple OSX
C++ Rich Text Format C CMake HTML Makefile Other
Branch: unstable
Clone or download
Latest commit ebf9de1 Oct 30, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github move to dot.github Jul 10, 2018
3rdparty-notices video/ps3eye: WIP May 6, 2019
api api: fix clang build error Oct 28, 2019
bin proto/{wine,freetrack}: add 64-bit version for freetrackclient Oct 29, 2019
cmake proto/{wine,freetrack}: add 64-bit version for freetrackclient Oct 29, 2019
compat fix clang warnings Aug 1, 2019
contrib-noinst contrib: don't install source code Feb 12, 2018
contrib proto/ft: revert npclient to 2.3.10 May 22, 2018
coverity coverity: fix /bin/sh quoting May 3, 2019
csv style/quality only Dec 24, 2018
cv cv: fix logic error May 25, 2019
dinput kill some logspam Apr 29, 2019
ext-falcon-bms-linear-acc extensions: disconnect from build Feb 21, 2019
filter-accela fix clang warnings Aug 1, 2019
filter-ewma2 modernize only Jan 16, 2019
filter-kalman filter/kalman: fix eigen warnings Sep 22, 2019
freetrackclient freetrackclient: kill spurious warning Oct 29, 2019
gui add workaround for obsolete qt versions Aug 1, 2019
installer tracker/realsense: fix installer path Mar 18, 2019
macosx rename our Qt .png icon Jan 20, 2018
main-window fix some mixin stuff, still not done Nov 3, 2018
migration options: fix global ini not saving on Linux Jul 5, 2019
opentrack opentrack: fix pose widget on X11 Oct 6, 2019
options options: use ~/.config on Unix Oct 30, 2019
pose-widget pose-widget: embiggen octopus Oct 28, 2019
proto-flightgear api: expose raw data to protocols Sep 22, 2019
proto-fsuipc proto/fsuipc: fix build Oct 4, 2019
proto-ft proto/ft: fix sign error Sep 22, 2019
proto-iokit-foohid api: expose raw data to protocols Sep 22, 2019
proto-libevdev api: expose raw data to protocols Sep 22, 2019
proto-mouse api: expose raw data to protocols Sep 22, 2019
proto-simconnect api: expose raw data to protocols Sep 22, 2019
proto-udp api: expose raw data to protocols Sep 22, 2019
proto-vjoystick api: expose raw data to protocols Sep 22, 2019
proto-wine proto/wine: add support for setting WINEPREFIX Oct 29, 2019
qxt-mini fix clang warnings Aug 1, 2019
redist tracker/kinect: add CRT dependencies Feb 10, 2019
settings proto/freetrack: fix entry name for DCS Jul 5, 2019
spline spline: fix some NaN results on Unix Oct 6, 2019
tracker-aruco fix clang warnings Oct 27, 2019
tracker-easy tracker/easy: fix some warnings Jul 5, 2019
tracker-freepie-udp style/quality only Dec 24, 2018
tracker-fusion tracker/fusion: kill dylib warnings Mar 28, 2019
tracker-hatire clang-tidy fixes only Jan 16, 2019
tracker-hydra tracker/hydra: fix scary logic error Jan 16, 2019
tracker-joystick modernize only Jan 16, 2019
tracker-kinect-face compat/camera-names: move to original location May 6, 2019
tracker-pt tracker/{pt,aruco}: fix snprintf invocation Jun 21, 2019
tracker-rift-140 tracker/rift: disable on linux Jan 16, 2019
tracker-rs tracker/realsense: fix installer path Mar 18, 2019
tracker-s2bot tracker/s2bot: don't change a setting at random Jan 16, 2019
tracker-steamvr fix clang warnings Oct 27, 2019
tracker-test tracker/test: use for testing yaw wraparound Mar 28, 2019
tracker-udp cruft only Dec 6, 2018
tracker-wii tracker/wii: kill trigraph warning Jun 20, 2019
trackmouse cmake: move around variant directories Mar 28, 2019
variant cmake: move around variant directories Mar 28, 2019
video-opencv video/opencv: remove unused export.hpp Jul 5, 2019
video-ps3eye video/ps3eye: buffer flush Sep 22, 2019
video video: reuse working dpi check Aug 1, 2019
x-plane-plugin fix clang warnings Oct 27, 2019
.clang-format clang-format Jul 5, 2019
.clang-tidy update .clang-tidy Jun 21, 2019
.editorconfig editorconfig: tabs as 4 characters Mar 14, 2019
.gitattributes gitattributes Feb 14, 2019
.gitignore gitignore Jun 22, 2019
.gitmodules add right ps3eyedriver fork Jun 21, 2019 Closes #954 Jun 27, 2019
CMakeLists.txt cmake: add default flags for gcc/clang Jul 5, 2019
OPENTRACK-LICENSING.txt Closes #954 Jun 27, 2019 Closes #954 Jun 27, 2019
WARRANTY.txt add warranty terms into readme Sep 18, 2016
azure-pipelines.yml Update azure-pipelines.yml for Azure Pipelines Sep 7, 2019
sdk-paths-sthalik@Clang-Linux.cmake update my sdk paths Oct 27, 2019
sdk-paths-sthalik@Clang-windows.cmake cruft Jan 16, 2019
sdk-paths-sthalik@GNU-windows.cmake cmake: update sdk-paths Dec 24, 2018
sdk-paths-sthalik@MSVC-windows.cmake cmake: update my paths May 6, 2019


opentrack project home is located at <>.

For the latest downloads visit <> Download an .exe installer or a .7z archive. Currently installers and portable versions for Windows are available for each release. It supports USB stick truly "portable" installations

Please first refer to <> for new user guide, frequent answers, specific tracker/filter documentation. See also the gameplay video with opentrack set up.

Looking for railway planning software?

Railway planning software <> had the name opentrack first. Apologies for the long-standing naming conflict.


opentrack is an application dedicated to tracking user's head movements and relaying the information to games and flight simulation software.

opentrack allows for output shaping, filtering, and operating with many input and output devices and protocols; the codebase runs Microsoft Windows, Apple OSX (currently unmaintained), and GNU/Linux.

Don't be afraid to submit an issue/feature request if you have any problems! We're a friendly bunch.

Tracking input

  • PointTracker by Patrick Ruoff, freetrack-like light sources
  • Oculus Rift DK1, DK2, CV, and legacy/knockoff versions (Windows only)
  • Paper marker support via the ArUco library <>
  • Razer Hydra
  • Relaying via UDP from a different computer
  • Relaying UDP via FreePIE-specific Android app
  • Joystick analog axes (Windows)
  • Windows Phone tracker over opentrack UDP protocol
  • Arduino with custom firmware
  • Intel RealSense 3D cameras (Windows)
  • BBC micro:bit, LEGO, sensortag support via Smalltalk(1)(2) S2Bot
  • Wiimote (Windows)

Output protocols

  • SimConnect for newer Microsoft Flight Simulator (Windows)
  • freetrack implementation (Windows)
  • Relaying UDP to another computer
  • Virtual joystick output (Windows, Linux, OSX)
  • Wine freetrack glue protocol (Linux, OSX)
  • X-Plane plugin (Linux)
  • Tablet-like mouse output (Windows)
  • FlightGear
  • FSUIPC for Microsoft Flight Simulator 2002/2004 (Windows)
  • SteamVR through a bridge (Windows; see <> by @r57zone)

Credits, in chronological order

  • Stanisław Halik (maintainer)
  • Wim Vriend -- author of FaceTrackNoIR that served as the initial codebase for opentrack. While the code was almost entirely rewritten, we still hold on to many of FaceTrackNoIR's ideas.
  • Chris Thompson (aka mm0zct, Rift and Razer Hydra author and maintainer)
  • Patrick Ruoff (PT tracker author)
  • Xavier Hallade (Intel RealSense tracker author and maintainer)
  • furax49 (hatire tracker author)
  • Michael Welter (contributor)
  • Alexander Orokhovatskiy (Russian translation; profile repository maintenance; providing hardware; translating reports from the Russian community)
  • Attila Csipa (Micro:Bit author)
  • Eike "e4z9" (OSX joystick output driver)
  • Wei Shuai (Wiimote tracker)
  • Stéphane Lenclud (Kinect Face Tracker, Easy Tracker)


  • uglyDwarf (high CON)
  • Andrzej Czarnowski (FreePIE tracker and Google Cardboard assistance, testing)
  • Wim Vriend (original codebase author and maintainer)
  • Ryan Spicer (OSX tester, contributor)
  • Donovan Baarda (filtering/control theory expert)
  • Mathijs Groothuis (@MathijsG, dozens of bugs and other issues reported; NL translation)
  • The Russian community from the IL-2 Sturmovik forums (reporting bugs, requesting important features)
  • OpenCV authors and maintainers <>.


Code, translations,

Please see basic rules for contributing. There's also a guide for working with core code. For writing input and output modules you don't need this guide except for

License and warranty

Almost all code is licensed under the ISC license. There are very few proprietary dependencies. There is no copyleft code. See individual files for licensing and authorship information.

See WARRANTY.txt for applying warranty terms (that is, disclaiming possible pre-existing warranty) that are in force unless the software author specifies their own warranty terms. In short, we disclaim all possible warranty and aren't responsible for any possible damage or losses.

The code is held to a high-quality standard and written with utmost care; consider this a promise without legal value. Despite doing the best we can not to injure users' equipment, software developers don't want to be dragged to courts for imagined or real issues. Disclaiming warranty is a standard practice in the field, even for expensive software like operating systems.

Building opentrack from source

On Windows, use either mingw-w64 or MS Visual Studio 2015 Update 3/newer. On other platforms use GNU or LLVM. Refer to Visual C++ 2015 build instructions.

You can’t perform that action at this time.