Head tracking software for MS Windows, Linux, and Apple OSX
Switch branches/tags
trackmouse-prototype-pre0 trackhat-1.2 trackhat-1.2p7 trackhat-1.2p6 trackhat-1.2p5 trackhat-1.2p4 trackhat-1.2p3 trackhat-1.2p2 trackhat-1.2p1 trackhat-1.1 trackhat-1.1p4 trackhat-1.1p3 trackhat-1.1p2 trackhat-1.1p1 pipeline-work-20180216 opentrack.2.3-rc49p0 opentrack-2.3.49-plus opentrack-2.3.49-pipeline-fix-backup opentrack-2.3.10 opentrack-2.3.9 opentrack-2.3.8 opentrack-2.3.7 opentrack- opentrack- opentrack- opentrack-2.3.1 opentrack-2.3.1_fix3 opentrack-2.3.1_fix2 opentrack-2.3.1+fix1 opentrack-2.3.0 opentrack-2.3-rc99p15 opentrack-2.3-rc99p14 opentrack-2.3-rc99p13 opentrack-2.3-rc99p12 opentrack-2.3-rc99p11 opentrack-2.3-rc49p10 opentrack-2.3-rc49p9 opentrack-2.3-rc49p8 opentrack-2.3-rc49p7 opentrack-2.3-rc49p6 opentrack-2.3-rc49p5 opentrack-2.3-rc49p4 opentrack-2.3-rc49p3 opentrack-2.3-rc49p2 opentrack-2.3-rc49p1 opentrack-2.3-rc49p0 opentrack-2.3-rc21 opentrack-2.3-rc21p11 opentrack-2.3-rc21p10 opentrack-2.3-rc21p9 opentrack-2.3-rc21p8 opentrack-2.3-rc21p7 opentrack-2.3-rc21p6 opentrack-2.3-rc21p5 opentrack-2.3-rc21p4 opentrack-2.3-rc21p3 opentrack-2.3-rc21p2 opentrack-2.3-rc21p1 opentrack-2.3-rc20 opentrack-2.3-rc20p1 opentrack-2.3-rc19 opentrack-2.3-rc19p3 opentrack-2.3-rc19p2 opentrack-2.3-rc19p1 opentrack-2.3-rc18 opentrack-2.3-rc17 opentrack-2.3-rc17p2 opentrack-2.3-rc17p1 opentrack-2.3-rc16 opentrack-2.3-rc15 opentrack-2.3-rc15p1 opentrack-2.3-rc14 opentrack-2.3-rc13 opentrack-2.3-rc13p2 opentrack-2.3-rc13p1 opentrack-2.3-rc12 opentrack-2.3-rc12p1 opentrack-2.3-rc11 opentrack-2.3-rc10 opentrack-2.3-rc9 opentrack-2.3-rc8 opentrack-2.3-rc7 opentrack-2.3-rc6 opentrack-2.3-rc5 opentrack-2.3-rc4 opentrack-2.3-rc3 opentrack-2.3-rc2 opentrack-2.3-prealpha-20141022_1 opentrack-2.3-prealpha-20141021_1 opentrack-2.3-prealpha-20141018_1 opentrack-2.3-20141105 opentrack-2.3-20141102 opentrack-2.2a2 opentrack-2.2a1 opentrack-2.2-stable-20150728 opentrack-2.2-stable-20141113 opentrack-2.2-stable-20141112 opentrack-2.2-end-of-alpha opentrack-2.0rc1 opentrack-2.0b3
Nothing to show
Clone or download
sthalik logic/pipeline: rotation order fix
v2: fix comments

v3: fix reltrans
Latest commit c172c32 Aug 3, 2018
Failed to load latest commit information.
.github move to dot.github Jul 10, 2018
3rdparty-notices 3rdparty-notices: add WiiYourself license Jan 21, 2018
api appease analyzer Jul 13, 2018
bin proto/ft: revert npclient to 2.3.10 May 22, 2018
cmake irrelevant busywork Aug 3, 2018
compat logic/pipeline: rotation order fix Aug 4, 2018
contrib-noinst contrib: don't install source code Feb 12, 2018
contrib proto/ft: revert npclient to 2.3.10 May 22, 2018
coverity stuff Oct 13, 2017
csv modernize C++ syntax Jun 26, 2018
cv modernize only Jul 8, 2018
dinput dinput: comment Jul 31, 2018
ext-falcon-bms-linear-acc ext/falcon-bms: build only on win32 Mar 14, 2018
filter-accela modernize only Jul 8, 2018
filter-ewma2 modernize only Jul 8, 2018
filter-kalman modernize only Jul 8, 2018
freetrackclient freetrackclient: mark volatile Oct 28, 2017
gui appease analyzer Jul 13, 2018
installer installer: fix path Feb 28, 2018
logic logic/pipeline: rotation order fix Aug 4, 2018
macosx rename our Qt .png icon Jan 20, 2018
main-window add maintainer mode for building WIP main-window mixins Jul 31, 2018
migration migration: actualy batch the updates Jul 8, 2018
options irrelevant busywork Aug 3, 2018
pose-widget modernize only Jul 8, 2018
proto-flightgear modernize only Jul 8, 2018
proto-fsuipc modernize C++ syntax Jun 26, 2018
proto-ft nothing important Jul 2, 2018
proto-iokit-foohid modules: now use i18n Apr 5, 2018
proto-libevdev the hell? Apr 5, 2018
proto-mouse core, modules: modernize syntax only Jun 26, 2018
proto-simconnect modernize only Jul 8, 2018
proto-udp fix lrelease class name conflicts Apr 27, 2018
proto-vjoystick modernize only Jul 8, 2018
proto-wine core, modules: modernize syntax only Jun 26, 2018
qxt-mini compat/macros: rename portability macros Jun 26, 2018
settings csv: update game list Mar 13, 2018
spline spline: appease static analyzer Jul 31, 2018
tracker-aruco tracker/aruco: simplify abi test Jul 10, 2018
tracker-freepie-udp modernize C++ syntax Jun 26, 2018
tracker-fusion modernize only Jul 8, 2018
tracker-hatire appease analyzer Jul 13, 2018
tracker-hydra modernize only Jul 8, 2018
tracker-joystick appease analyzer Jul 13, 2018
tracker-pt tracker/pt: fix center with dynamic pose set Aug 4, 2018
tracker-rift-140 tracker/rift: fix build Aug 4, 2018
tracker-rs modernize only Jul 8, 2018
tracker-s2bot modernize only Jul 8, 2018
tracker-steamvr appease analyzer Jul 13, 2018
tracker-test appease analyzer Jul 13, 2018
tracker-udp fix lrelease class name conflicts Apr 27, 2018
tracker-wii appease analyzer Jul 13, 2018
variant WIP Jul 23, 2018
x-plane-plugin x-plane: cleanup, reformat Jul 23, 2018
.clang-tidy appease analyzer Jul 13, 2018
.gitattributes variant/trackmouse: flush Jan 13, 2018
.gitignore gitignore Jan 12, 2018
.gitmodules nix submodule Feb 1, 2015
AUTHORS.md {README,AUTHORS}.md: add Wei Shuai Jan 21, 2018
CMakeLists.txt cmake: spew out effective flags Jul 10, 2018
OPENTRACK-LICENSING.txt documentation and attribution Jul 11, 2017
README.md Update README.md Feb 5, 2018
WARRANTY.txt add warranty terms into readme Sep 18, 2016
sdk-paths-sthalik@MSVC-windows.cmake add maintainer mode for building WIP main-window mixins Jul 31, 2018



opentrack project home at <http://github.com/opentrack/opentrack>.

For the latest downloads visit <https://github.com/opentrack/opentrack/releases> 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 <https://github.com/opentrack/opentrack/wiki> 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 <http://opentrack.ch> 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 <https://github.com/opentrack/aruco>
  • 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 <https://github.com/r57zone/OpenVR-OpenTrack> 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)


  • 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 <https://github.com/opencv/opencv/>.


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.