Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

QoL grab-bag: Tickbox for hand visibility, keep SteamVR worldspace when visionOS recenters #55

Merged
merged 10 commits into from
Feb 26, 2024

Conversation

shinyquagsire23
Copy link
Collaborator

@shinyquagsire23 shinyquagsire23 commented Feb 24, 2024

Summary:

  • Added world tracking/plane tracking perms and hand tracking perms (for future work)
  • Added options tickboxes in main window:
    • Added hand visibility tickbox
    • Added recentering behavior tickbox
  • Added per-room/per-playspace origin anchoring
    • WorldAnchors send an .added event on entry to VR mode, so we can check the distance to them and set them as the origin if they're within 3.5m
    • Playspaces can be recentered by holding the crown button 3 times in quick succession. This also purges all origin anchors within 3.5m.
    • If no existing anchors are found, it functions as it did before: A WorldAnchor is added at (0,0,0), and that anchor becomes the new origin for that room.
  • Improved launch reliability when backgrounded.
  • Fixed a regression which caused the world to wobble and SteamVR overlay to judder (maybe? I definitely fixed the wobble though.) moved to another PR, it does in fact cause judder in SteamVR tho, but the world sloshing will cause sickness so that's what's important

Recentering behavior:
The visionOS immersive space is tiny, but we can actually mitigate this slightly: WorldTrackingProvider allows us to add WorldAnchors, which means that if we add an anchor at (0,0,0), we will receive updates about where this anchor is. When the Crown Button is held, it will recenter the visionOS coordinate space, and notify us that the origin anchor has moved.

By applying the inverse transform, we can maintain the SteamVR centering even though visionOS has a new origin, effectively extending the playspace, albeit with some manual intervention. Works great for moving between the couch and standing though.

Settings:
Currently they aren't saved anywhere, if it's a simple fix I can add it but otherwise let's just kick the can down the road. Dunno how visionOS app storage works tbh.

Pictures:
new-gui

Video of anchoring in action: https://youtu.be/DGSGwOfSahU

@zarik5
Copy link
Member

zarik5 commented Feb 24, 2024

Settings:
Currently they aren't saved anywhere, if it's a simple fix I can add it but otherwise let's just kick the can down the road. Dunno how visionOS app storage works tbh.

For settings, alvr_client_core uses the app storage to save the hostname, but this internal storage is not exposed. ALVR way to store settings is through the server. PR #48 will allow to read settings upon connection. It will require a simple PR on ALVR upstream to add the related entries.

@shinyquagsire23 shinyquagsire23 merged commit b507a7c into alvr-org:main Feb 26, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants