Skip to main content

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:

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

pyheadtracker-0.1.4.tar.gz (3.4 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pyheadtracker-0.1.4-py3-none-any.whl (3.4 MB view details)

Uploaded Python 3

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

Hashes for pyheadtracker-0.1.4.tar.gz
Algorithm Hash digest
SHA256 483a6e0eb65e46c8ce6c51252ba788018bf6c6e848e403fe4658aaf305e79282
MD5 bc442dcce270e635738463933bafadcc
BLAKE2b-256 f179d601aca1e47b9e59e57718745d5e79518a5f1020fdd08813b67a4e10daf3

See more details on using hashes here.

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

Hashes for pyheadtracker-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 e190ab56bb799a8b4a63d906c4804df34d2a77aaaa7130edc5df2a9b9c621b26
MD5 47c0e1f138071528132dbabbc6781f34
BLAKE2b-256 afff4eed5ff149a9f2ab5ad1eb5173a98c81a6046acefdf78f782ef573613d5a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page