pyopenxr


Namepyopenxr JSON
Version 1.1.5001 PyPI version JSON
download
home_pageNone
SummaryUnofficial Python bindings for OpenXR VR/AR device access
upload_time2025-08-10 18:25:09
maintainerNone
docs_urlNone
authorNone
requires_python>=3.9
licenseNone
keywords openxr vr ar bindings python 3d graphics
VCS
bugtrack_url
requirements glfw numpy pyopengl
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # pyopenxr
### Unofficial Python bindings for the [OpenXR SDK](https://github.com/KhronosGroup/OpenXR-SDK) to access VR and AR devices

**pyopenxr** is a Python developer SDK for device tracking and rapid virtual reality prototyping using the headset-agnostic OpenXR API. It provides a clean, Pythonic interface to the OpenXR runtime, enabling cross-platform AR/VR development with minimal boilerplate.

![Build Status](https://github.com/cmbruns/pyopenxr/actions/workflows/python-package.yml/badge.svg)
[![Pages Doc Status](https://github.com/cmbruns/pyopenxr/actions/workflows/pages/pages-build-deployment/badge.svg)](https://github.com/cmbruns/pyopenxr/actions/workflows/pages/pages-build-deployment)
[![Documentation](https://img.shields.io/badge/docs-pyopenxr-blue)](https://cmbruns.github.io/pyopenxr/)
![License](https://img.shields.io/badge/license-Apache%202.0-blue.svg)

![hello_xr1](https://user-images.githubusercontent.com/2649705/172025969-5cf276bd-2a6c-42a2-852a-0605fe72a716.PNG)

---

## ๐Ÿš€ Installation

```bash
pip install pyopenxr
```

## ๐Ÿงช Quick Start
```python
import xr

# Query the available VR/AR extensions
available = xr.enumerate_instance_extension_properties()

# Replace with whatever extensions are required for your application...
required = [xr.KHR_OPENGL_ENABLE_EXTENSION_NAME]
for prop in required:
    assert prop in available
```

Explore the complete working example 
[`hello_xr.py`](https://github.com/cmbruns/pyopenxr_examples/examples)
for a hands-on introduction.

## Pythonic naming conventions

| symbol      | Python example                       | C example                             |
| ----------- | ------------------------------------ | ------------------------------------- |
| function    | `xr.create_instance(...)`            | `xrCreateInstance(...)`               |
| constant    | `xr.MAX_SYSTEM_NAME_SIZE`            | `XR_MAX_SYSTEM_NAME_SIZE`             |
| struct name | `xr.ExtensionProperties`             | `XrExtensionProperties`               |
| type alias  | `xr.Version`                         | `XrVersion`                           |
| enum type   | `xr.FormFactor`                      | `xrFormFactor`                        |
| enum value  | `xr.FormFactor.HEAD_MOUNTED_DISPLAY` | `XR_FORM_FACTOR_HEAD_MOUNTED_DISPLAY` |
| handle      | `xr.Instance`                        | `XrInstance`                          |

## ๐Ÿ“š Documentation
Full API reference and guides are [available](https://cmbruns.github.io/pyopenxr/)

## ๐Ÿ“ฆ License
This project is licensed under the [Apache License 2.0](https://www.apache.org/licenses/LICENSE-2.0).

Copyright ยฉ 2021 Christopher Bruns.

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "pyopenxr",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.9",
    "maintainer_email": null,
    "keywords": "OpenXR, VR, AR, bindings, Python, 3D, graphics",
    "author": null,
    "author_email": "\"Christopher M. Bruns\" <cmbruns@rotatingpenguin.com>",
    "download_url": "https://files.pythonhosted.org/packages/d9/7b/a13a9f8e6d1712c0b9de6ea3b8552f8c3f42971e7155a5a9264b83f7702c/pyopenxr-1.1.5001.tar.gz",
    "platform": null,
    "description": "# pyopenxr\r\n### Unofficial Python bindings for the [OpenXR SDK](https://github.com/KhronosGroup/OpenXR-SDK) to access VR and AR devices\r\n\r\n**pyopenxr** is a Python developer SDK for device tracking and rapid virtual reality prototyping using the headset-agnostic OpenXR API. It provides a clean, Pythonic interface to the OpenXR runtime, enabling cross-platform AR/VR development with minimal boilerplate.\r\n\r\n![Build Status](https://github.com/cmbruns/pyopenxr/actions/workflows/python-package.yml/badge.svg)\r\n[![Pages Doc Status](https://github.com/cmbruns/pyopenxr/actions/workflows/pages/pages-build-deployment/badge.svg)](https://github.com/cmbruns/pyopenxr/actions/workflows/pages/pages-build-deployment)\r\n[![Documentation](https://img.shields.io/badge/docs-pyopenxr-blue)](https://cmbruns.github.io/pyopenxr/)\r\n![License](https://img.shields.io/badge/license-Apache%202.0-blue.svg)\r\n\r\n![hello_xr1](https://user-images.githubusercontent.com/2649705/172025969-5cf276bd-2a6c-42a2-852a-0605fe72a716.PNG)\r\n\r\n---\r\n\r\n## \ud83d\ude80 Installation\r\n\r\n```bash\r\npip install pyopenxr\r\n```\r\n\r\n## \ud83e\uddea Quick Start\r\n```python\r\nimport xr\r\n\r\n# Query the available VR/AR extensions\r\navailable = xr.enumerate_instance_extension_properties()\r\n\r\n# Replace with whatever extensions are required for your application...\r\nrequired = [xr.KHR_OPENGL_ENABLE_EXTENSION_NAME]\r\nfor prop in required:\r\n    assert prop in available\r\n```\r\n\r\nExplore the complete working example \r\n[`hello_xr.py`](https://github.com/cmbruns/pyopenxr_examples/examples)\r\nfor a hands-on introduction.\r\n\r\n## Pythonic naming conventions\r\n\r\n| symbol      | Python example                       | C example                             |\r\n| ----------- | ------------------------------------ | ------------------------------------- |\r\n| function    | `xr.create_instance(...)`            | `xrCreateInstance(...)`               |\r\n| constant    | `xr.MAX_SYSTEM_NAME_SIZE`            | `XR_MAX_SYSTEM_NAME_SIZE`             |\r\n| struct name | `xr.ExtensionProperties`             | `XrExtensionProperties`               |\r\n| type alias  | `xr.Version`                         | `XrVersion`                           |\r\n| enum type   | `xr.FormFactor`                      | `xrFormFactor`                        |\r\n| enum value  | `xr.FormFactor.HEAD_MOUNTED_DISPLAY` | `XR_FORM_FACTOR_HEAD_MOUNTED_DISPLAY` |\r\n| handle      | `xr.Instance`                        | `XrInstance`                          |\r\n\r\n## \ud83d\udcda Documentation\r\nFull API reference and guides are [available](https://cmbruns.github.io/pyopenxr/)\r\n\r\n## \ud83d\udce6 License\r\nThis project is licensed under the [Apache License 2.0](https://www.apache.org/licenses/LICENSE-2.0).\r\n\r\nCopyright \u00a9 2021 Christopher Bruns.\r\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "Unofficial Python bindings for OpenXR VR/AR device access",
    "version": "1.1.5001",
    "project_urls": {
        "bug_tracker": "https://github.com/cmbruns/pyopenxr/issues",
        "homepage": "https://github.com/cmbruns/pyopenxr"
    },
    "split_keywords": [
        "openxr",
        " vr",
        " ar",
        " bindings",
        " python",
        " 3d",
        " graphics"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "0d7354f596bf790bc5f75c900747754bfe68453cf2de5ee6197f26d4de04ff93",
                "md5": "bba60386183c8f6405099be81bb55cff",
                "sha256": "e0688f7c48a83ec414f09bbef5bdcef0409bfb1bdf54eab274dbfee4155173ad"
            },
            "downloads": -1,
            "filename": "pyopenxr-1.1.5001-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "bba60386183c8f6405099be81bb55cff",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.9",
            "size": 4482618,
            "upload_time": "2025-08-10T18:25:04",
            "upload_time_iso_8601": "2025-08-10T18:25:04.683423Z",
            "url": "https://files.pythonhosted.org/packages/0d/73/54f596bf790bc5f75c900747754bfe68453cf2de5ee6197f26d4de04ff93/pyopenxr-1.1.5001-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "d97ba13a9f8e6d1712c0b9de6ea3b8552f8c3f42971e7155a5a9264b83f7702c",
                "md5": "d377c4ece5e49b97f34052ee618113b2",
                "sha256": "a2ddd20714a430099f0a5f6749e39f159a95fae9881bbf00632376f17315cc9a"
            },
            "downloads": -1,
            "filename": "pyopenxr-1.1.5001.tar.gz",
            "has_sig": false,
            "md5_digest": "d377c4ece5e49b97f34052ee618113b2",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.9",
            "size": 4425813,
            "upload_time": "2025-08-10T18:25:09",
            "upload_time_iso_8601": "2025-08-10T18:25:09.352120Z",
            "url": "https://files.pythonhosted.org/packages/d9/7b/a13a9f8e6d1712c0b9de6ea3b8552f8c3f42971e7155a5a9264b83f7702c/pyopenxr-1.1.5001.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-08-10 18:25:09",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "cmbruns",
    "github_project": "pyopenxr",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [
        {
            "name": "glfw",
            "specs": []
        },
        {
            "name": "numpy",
            "specs": []
        },
        {
            "name": "pyopengl",
            "specs": []
        }
    ],
    "tox": true,
    "lcname": "pyopenxr"
}
        
Elapsed time: 1.36115s