{"id":16207969,"url":"https://github.com/barakchamo/openvr-osc","last_synced_at":"2025-06-28T11:04:23.735Z","repository":{"id":92683261,"uuid":"127873123","full_name":"BarakChamo/OpenVR-OSC","owner":"BarakChamo","description":"A Python utility for sending OpenVR over OSC","archived":false,"fork":false,"pushed_at":"2018-04-03T12:57:17.000Z","size":11,"stargazers_count":25,"open_issues_count":1,"forks_count":3,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-06-28T11:04:22.363Z","etag":null,"topics":["motion-tracking","openvr","osc","python","steamvr","vr"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/BarakChamo.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-04-03T08:05:24.000Z","updated_at":"2024-10-20T14:16:26.000Z","dependencies_parsed_at":null,"dependency_job_id":"b14b8c58-cdf3-4762-b18e-baa061779c8d","html_url":"https://github.com/BarakChamo/OpenVR-OSC","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/BarakChamo/OpenVR-OSC","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BarakChamo%2FOpenVR-OSC","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BarakChamo%2FOpenVR-OSC/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BarakChamo%2FOpenVR-OSC/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BarakChamo%2FOpenVR-OSC/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/BarakChamo","download_url":"https://codeload.github.com/BarakChamo/OpenVR-OSC/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BarakChamo%2FOpenVR-OSC/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262419748,"owners_count":23308098,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["motion-tracking","openvr","osc","python","steamvr","vr"],"created_at":"2024-10-10T10:14:57.959Z","updated_at":"2025-06-28T11:04:23.719Z","avatar_url":"https://github.com/BarakChamo.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# OpenVR OSC\r\n\u003e Easily track pose data from OpenVR devices via OSC\r\n\r\nOpenVR OSC is a compact Python utility for tracking OpenVR devices (HMDs, controllers, trackers) and getting their position and rotation values over OSC. It can be used in VR as well as AR and any other position-based project and fed to any OSC-capable client.\r\n\r\nThis project is inspired by and used Triad's [Python OpenVR wrapper](https://github.com/TriadSemi/triad_openvr).\r\n\r\n## Setup\r\n\r\n### Requirements\r\n\r\nThis project requires Python `3` to run as dependencies are incompatible with Python `2.7`.\r\nIt also required an existing OpenVR installation (SteamVR etc.) and compatible hardware (HTC Vive etc.).\r\n\r\n### Installation\r\n\r\nTo install the project dependencies run `pip install -r requirements.txt`.\r\n\r\n## How to use\r\n\r\nTo run OpenVR-OSC enter the following in your terminal:\r\n  `python3 openvr-osc.py`\r\n\r\n### Tracked devices\r\n\r\nThe following devices are tracked and sent via OSC:\r\n- headsets (HMDs)\r\n- controllers\r\n- tracker units\r\nThe OSC messages sent are formated in as follows:\r\n`\\{DEVICE_TYPE}\\{DEVICE_ID} - [f,f,f,f,f,f]`\r\n\r\n### OSC message format\r\n\r\nEach message contains multiple float values in an order set by the `pose mode`:\r\n\r\nIn `Euler` mode:\r\n- x position\r\n- y position\r\n- z position\r\n- yaw\r\n- pitch\r\n- roll\r\n\r\nIn `Quaternion` mode:\r\n - `TBC`\r\n\r\nEach tracking cycle is sent as a bundle of individual messages, per device, that are time synced.\r\n\r\n### Configuration options\r\nThere are several configuration options to customize the OSC feed and the tracking\r\n\r\n\u003cdetails\u003e\r\n  \u003csummary\u003eOSC server ip\u003c/summary\u003e\r\n  \r\n  Set the ip of the OSC server - `--ip 169.78.65.21`\r\n  Defaults to `127.0.0.1 (localhost)`.\r\n\u003c/details\u003e\r\n\r\n\u003cdetails\u003e\r\n  \u003csummary\u003eOSC server port\u003c/summary\u003e\r\n  \r\n  Set the port of the OSC server - `--port 5000`\r\n  Defaults to `7000`.\r\n\u003c/details\u003e\r\n\r\n\u003cdetails\u003e\r\n  \u003csummary\u003etracked device type\u003c/summary\u003e\r\n \r\n  By default all device types are tracked but that can lead to unnecesary OSC traffic.\r\n  If you know which device type you'd like to track (HMD, controllers, trackers), you can limit the tracking:\r\n  \r\n  `--track=[hmd|controller|tracker]`\r\n\u003c/details\u003e\r\n\r\n\u003cdetails\u003e\r\n  \u003csummary\u003etracking frequency (coming soon)\u003c/summary\u003e\r\n  \u003e coming soon\r\n\u003c/details\u003e\r\n\r\n\u003cdetails\u003e\r\n  \u003csummary\u003epose mode (coming soon)\u003c/summary\u003e\r\n  \r\n  \u003e coming soon\r\n\u003c/details\u003e\r\n\r\n## Using SteamVR without a headset\r\n\r\nTo use the trackers and controllers without the need for a headset follow in the instructions in [this tutorial](http://help.triadsemi.com/steamvr-tracking/steamvr-tracking-without-an-hmd).\r\n\r\n## Roadmap\r\n\r\n- [ ] period check for device state and new tracked devices\r\n- [ ] adjustable tracking frequency\r\n- [ ] adjustable pose tracking mode (euler/quaternion)\r\n- [ ] unique tracked device ids\r\n\r\n\u003e Made at ITP NYU\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbarakchamo%2Fopenvr-osc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbarakchamo%2Fopenvr-osc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbarakchamo%2Fopenvr-osc/lists"}