{"id":20671079,"url":"https://github.com/valvesoftware/openxr-canonical-pose-tool","last_synced_at":"2025-04-19T18:38:24.406Z","repository":{"id":229824672,"uuid":"621048165","full_name":"ValveSoftware/OpenXR-Canonical-Pose-Tool","owner":"ValveSoftware","description":"A tool to help OpenXR runtime developers match their poses to other runtimes' poses.","archived":false,"fork":false,"pushed_at":"2023-03-30T21:14:35.000Z","size":7909,"stargazers_count":10,"open_issues_count":0,"forks_count":2,"subscribers_count":20,"default_branch":"main","last_synced_at":"2024-04-19T22:27:10.789Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ValveSoftware.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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}},"created_at":"2023-03-29T22:18:51.000Z","updated_at":"2024-03-17T10:33:00.000Z","dependencies_parsed_at":"2024-03-26T13:42:05.510Z","dependency_job_id":null,"html_url":"https://github.com/ValveSoftware/OpenXR-Canonical-Pose-Tool","commit_stats":null,"previous_names":["valvesoftware/openxr-canonical-pose-tool"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ValveSoftware%2FOpenXR-Canonical-Pose-Tool","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ValveSoftware%2FOpenXR-Canonical-Pose-Tool/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ValveSoftware%2FOpenXR-Canonical-Pose-Tool/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ValveSoftware%2FOpenXR-Canonical-Pose-Tool/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ValveSoftware","download_url":"https://codeload.github.com/ValveSoftware/OpenXR-Canonical-Pose-Tool/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":224967636,"owners_count":17399906,"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":[],"created_at":"2024-11-16T20:24:55.302Z","updated_at":"2024-11-16T20:24:55.967Z","avatar_url":"https://github.com/ValveSoftware.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# OpenXR Canonical Pose Tool\n\nAssesses pose positioning from different runtimes to help runtime vendors implement the \"canonical\" poses that the\nvendors of the hardware intend.\n\n## Usage\n\nStart by cloning the repository with submodules:\n\n* `git clone ... --recurse-submodules`\n\nOr, if you already cloned and didn't clone submodules:\n\n* `git submodule update --init`\n\n### PC\n\nBuild the project with CMake:\n\n* `mkdir build \u0026\u0026 cd build`\n* `cmake ..`\n\nOpen the solution and run the project. The tool will use whatever the runtime is currently active.\n\n### Quest Standalone\n\nSetup:\n\n* Follow: https://developer.oculus.com/documentation/native/android/mobile-device-setup/\n* Make sure developer mode is enabled on Quest (have to use mobile app).\n\nInstall:\n\n* https://developer.android.com/studio\n    * NDK\n    * Android SDK\n* https://developer.oculus.com/downloads/package/oculus-developer-hub-win\n\nOpen the root of the repository in Android Studio. Press Run.\n\n### Output\n\n* PC: the directory where the executable is located.\n* Quest: external data path. Looking at the Quest storage on the PC, this\n  is `Android/data/com.danwillm.oxr_canonical_pose_tool/files`.\n\n## Configuration\n\nConfiguration for the tool is done in `cpt_config.xml`.\n\nEach item will output one file on each run of the tool. Items that will output files on run can be configured\nunder `outputs`.\n\n### Inputs\n\nConfiguration for inputs (items that require the use of an interaction profile) is done under the `inputs` node.\n\nInteraction profiles to suggest binding profiles for are defined in the `interaction_profiles` node. Each child node\nshould have a name of `interaction_profile` and a value of the interaction profile path. Available attributes of\nthe `interaction_profile` node are:\n\n* `requires_extension` - Interaction profiles that require an extension to be used can specify the extension to request\n  in this attribute.\n\nActions defined in the `actions` node.\n\nEach child `action` node can have the following attributes:\n\n* `name` - The name of the action.\n* `type` - The type of action. Supported values:\n    * `pose` - Pose action\n* `suggested_binding` - The binding to suggest the action be bound to in the interaction profile. If subaction paths are\n  used, these are prefixed to the `suggested_binding`\n* `reference` - If `reference` is true, then the action won't be output to the resultant file, but can be used for other\n  actions to use as a reference space when retrieving the pose.\n* `base` - The name of the action to get the current action's pose space in relation to.\n* `requires_extension` - If the action requires an extension to be used, this can be specified using this attribute.\n\n### Runtimes\n\nRuntimes can add their own canonical reference files to `runtimes`, along with a way to match their `runtimeName` in the\nOpenXR instance properties to a name to define the runtime by in the tool.\n\nFiles output from the tool can be added directly to `cpt_config.xml`, under `runtimes`.\n\nReference files for inputs should be in `inputs`, with a child node called `input` and must have\nan `interaction_profile` attribute specifying the interaction profile that the reference file represents. The value of the node must be the\nrelative path from the executable to the reference file.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvalvesoftware%2Fopenxr-canonical-pose-tool","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvalvesoftware%2Fopenxr-canonical-pose-tool","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvalvesoftware%2Fopenxr-canonical-pose-tool/lists"}