Python package for easy interaction with head tracker hardware.
Project description
PyHeadTracker
This package provides an interface for interacting with head tracking hardware in Python.
The use of head trackers can greatly enhance the user experience in applications such as immersive audio, virtual reality, gaming, and assistive technologies. By providing precise head position and orientation data, developers can create more immersive and responsive environments for their users. However, interacting with different head trackers and their APIs can be a tedious process. PyHeadTracker aims to simplify this process by providing a unified interface for various head tracking devices in python.
A detailed documentation is available here.
Overview
PyHeadTracker is designed to provide a simple and consistent interface for accessing head tracking data from various devices. The library abstracts the complexities of dealing with different hardware and APIs, allowing developers to focus on building their applications without worrying about the underlying details.
Typically, each head tracker is instantiated as object before opening the connection, e.g.
import pyheadtracker as pht
ht = pht.diy.MrHeadTracker(
device_name="MrHeadTracker 1",
orient_format="q",
)
ht.open()
Now you can access the head tracking data using the read_orientation() or read_position() method:
while True:
orientation = ht.read_orientation()
if orientation is not None:
w, x, y, z = orientation
# Print the quaternion values for debugging
print(f"WXYZ: {w:7.2f} {x:7.2f} {y:7.2f} {z:7.2f}", end="\r")
Orientation data is provided as Quaternion or YPR (yaw/pitch/roll) object, which can easily be converted to a list or NumPy array. when requesting the poition, a Position object is returned to access Cartesian coordinates.
Examples how to use this package can be found here.
Supported devices
Currently the following head tracking devices are supported:
- Supperware Head Tracker 1
- IEM MrHeadTracker
- Webcam-based head tracking using MediaPipe Face Landmarker
- Head mounted displays using openXR (only on Windows/Linux)
If you are missing a device, feel free to contact us or open an issue.
Roadmap
In future releases, we plan to support additional head tracking devices and improve the overall functionality of the library. Some of the planned features include:
- Support for
- SteamVR HMDs (e.g. HTC Vive)
- OptiTrack
- Standalone CLI tool
License
This project is licensed under the MIT License
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pyheadtracker-0.1.4.tar.gz.
File metadata
- Download URL: pyheadtracker-0.1.4.tar.gz
- Upload date:
- Size: 3.4 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.11 {"installer":{"name":"uv","version":"0.9.11"},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
483a6e0eb65e46c8ce6c51252ba788018bf6c6e848e403fe4658aaf305e79282
|
|
| MD5 |
bc442dcce270e635738463933bafadcc
|
|
| BLAKE2b-256 |
f179d601aca1e47b9e59e57718745d5e79518a5f1020fdd08813b67a4e10daf3
|
File details
Details for the file pyheadtracker-0.1.4-py3-none-any.whl.
File metadata
- Download URL: pyheadtracker-0.1.4-py3-none-any.whl
- Upload date:
- Size: 3.4 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.11 {"installer":{"name":"uv","version":"0.9.11"},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e190ab56bb799a8b4a63d906c4804df34d2a77aaaa7130edc5df2a9b9c621b26
|
|
| MD5 |
47c0e1f138071528132dbabbc6781f34
|
|
| BLAKE2b-256 |
afff4eed5ff149a9f2ab5ad1eb5173a98c81a6046acefdf78f782ef573613d5a
|