Facetracker FAQ
Does Facetracker Support Hand Tracking?
No. Facetracker is purely a wrapper for OpenSeeFace — meaning Facetracker itself contains no tracking logic of its own, but instead passes camera data to OpenSeeFace and processes its output. Since OpenSeeFace does not support hand tracking, Facetracker is currently unable to offer this feature.
We are, however, investigating whether it is possible to integrate external hand trackers such as MediaPipe into Facetracker as an additional component. You can find more information on this in the following ticket.
Is Facetracker GPU-Accelerated?
No. Facetracker currently uses onnxruntime — a runtime environment for executing machine learning models, developed by Microsoft, that runs cross-platform on the CPU.
It would technically be possible to use onnxruntime-gpu as a drop-in replacement, meaning a direct substitute that could be swapped in without any code changes. However, this variant requires additional components for hardware acceleration to actually work. Based on current observations, onnxruntime-gpu also only runs on NVIDIA graphics cards and requires different runtime components depending on the locally installed CUDA version. CUDA is NVIDIA's proprietary platform for performing general-purpose computations on the GPU.
The only practical option would be to provide additional plugins for Facetracker that enable GPU acceleration for CUDA 11.x, CUDA 12.x, and CUDA 13.x — or alternatively, CPU-only operation. Users would then need to install the appropriate plugin themselves, depending on their system configuration.
Since our goal is for Facetracker to require as little setup effort as possible, and since OpenSeeFace already runs very efficiently even on weaker CPUs, we are currently not pursuing the addition of GPU acceleration.
Current developments can nonetheless be followed in this ticket. The topic is not off the table — however, we cannot guarantee that hardware acceleration will ever make it into Facetracker.
Where Can I Find the Source Code for Facetracker?
The source code is available on Codeberg. Codeberg is a European open-source platform for code hosting and version control, comparable to GitHub.
Where Can I Install Facetracker From?
We officially distribute Facetracker through Flathub. Flathub is the central package repository for Flatpak applications and is available on most common Linux distributions.
It is also possible that individual Linux distributions include Facetracker in their own package repositories. However, we provide no warranty or support for those packages.
Does Facetracker Support RPM, DEB, or PKGBUILD — or Only Flatpak?
Currently, Facetracker does not support any native package formats; it exclusively supports Flatpak.
For context: RPM is the package format used by distributions such as Fedora and openSUSE, DEB is used by Debian and Ubuntu, and PKGBUILD is the build script format of Arch Linux. Flatpak, by contrast, is a distribution-agnostic package format that runs on all common Linux systems — which is why there is little need to offer Facetracker in additional formats. Flatpak is therefore the only officially supported package format.
There are, however, efforts underway to support additional package formats. To make this happen, we need someone who is willing to actively maintain these packages — ideally someone who uses them personally, so that issues can be identified and resolved early.
If you would like to contribute to Facetracker in this area, feel free to reach out in this ticket.
Does Facetracker Support ARM Devices?
Yes. Since version 26.8.1, Facetracker also supports aarch64-based systems. aarch64 is the 64-bit variant of the ARM processor architecture, found in many single-board computers and mobile devices — including the Raspberry Pi 4, 400, 5, 500, and 500+, as well as the Librem 5 and PinePhone.
On a Raspberry Pi 400, Facetracker achieved a face tracking speed of approximately 7 frames per second.
Why Doesn't Facetracker Use Portals to Access Webcams?
Some background: Portals are an interface defined by the XDG standard through which sandboxed applications — that is, applications running in an isolated environment without direct system access, as is the case with Flatpak — can access system resources such as cameras in a controlled manner. This communication is handled via PipeWire, a modern audio and video framework for Linux.
Facetracker could theoretically use Portals to access webcams. The actual problem, however, lies with OpenSeeFace, which internally uses OpenCV to interface with cameras. OpenCV has a hard dependency on Video4Linux2 (V4L2) — an established but older kernel interface for accessing cameras on Linux and Unix-based operating systems.
To work with Portals, the application would need to interact with the webcam through PipeWire. However, the Portals API does not create a V4L2 device inside the sandbox — meaning OpenCV cannot communicate with PipeWire and simply finds no compatible device.
It would theoretically be conceivable to emulate a virtual V4L2 device that communicates with the webcam internally via PipeWire. However, we will not be implementing this in Facetracker.