Skip to content

Add PicoVR 4 Ultra controller models and profile #275

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

Merged
merged 1 commit into from
Jun 13, 2025

Conversation

ziliang-bd
Copy link
Contributor

Hi, This PR upload models that PICO 4U uses and it's expected to resolve the incorrect orientation pointed out by #269. Once it's been merged, we can start to work on that "overwriting issue" (also mentioned in #269). It's appreciated if anyone can help review it. :-)

@toji
Copy link
Member

toji commented Jun 9, 2025

Checked it out locally and the rigging looks good! Thanks!

The only concern that I have is that the controller appears to be fairly low on the Y axis, at least compared to other assets in the repo. You can see the difference between this asset and the Meta Quest Plus controller in this overlay:

Controller-comparison

This may be intentional, as the device itself may be returning a grip space that is offset from the physical controller location by a bit and this is what's required to align it. Since I don't have a PicoVR headset I have no way to confirm that. I will note that if this kind of offset is required to align with the headset reported values then it's likely that any app-provided meshes that are intended to be held by the user (ie: a sword, gun, paintbrush, etc) will be mis-aligned on this device. A preferable solution would be to adjust the coordinates that the browser is returning to negate the offset so that the controller asset can be positioned at the origin. That would ensure the best compatibility with WebXR content.

Regardless, I'm happy to merge this is you can confirm that it is well aligned when rendered on the actual hardware.

@ziliang-bd
Copy link
Contributor Author

ziliang-bd commented Jun 12, 2025

@toji Yes, this offset is used to solve the orientation issue. Thanks for pointing out!

And I agree that it's more appropriate to adjust coordinates in Browser so I upload a newest one and it centers at (0, 0) and faces one axis.

We will adjust this mis-align issue in browser. When we release that version, any app-provided meshes designed by the user will be aligned correctly on this device. (so as this model) :-) Thanks for you support!!

@toji
Copy link
Member

toji commented Jun 12, 2025

Thank you for fixing the offset! I'm glad to hear that the browser will be updated for better compatibility with the rest of the WebXR ecosystem.

Looking at the latest change, though, the orientation is now off. It's been rotated so that the button faces point up but the desired orientation is that the handle is aligned with the Z axis (as you had before). Compare again with the Meta Quest Plus controller:
controller-orientation

This is so that developers can create custom meshes with the handle at the origin, pointing down the Z axis, and when transformed by the grip space they should feel as if they are being held in the user's hand. Your previous change had the orientation correct, it was only the offset that needed adjusting.

(It should be noted that I just now saw that the Pico 4 and Pico Neo 3 controller assets are also oriented the wrong way. The other Pico controllers in the repo are correct, though.)

Thank you for iterating on this! I really appreciate the effort to get it right!

@ziliang-bd
Copy link
Contributor Author

Thanks for providing this context, it's helpful to know this. I submit a new one with handles at the origin, pointing down the Z axis. And I will leave a notice about this to make sure our designers provide well-fit models in the future.

@toji
Copy link
Member

toji commented Jun 13, 2025

This looks great now, thank you! I really appreciate the effort. I'll merge it once it passes the checks and then get a new version deployed to NPM.

@toji
Copy link
Member

toji commented Jun 13, 2025

The check failure is not related to this patch, it's a repo configuration issue. I'm going to merge this now, thanks again!

@toji toji merged commit d480f3d into immersive-web:main Jun 13, 2025
1 check failed
@ziliang-bd
Copy link
Contributor Author

Thank you :-). And the unexpected orientation of model of PICO 4, I will adjust the coordinates in the browser first to negate the offset, required by this new pico-4u model, and then submit a new PR for that model.

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.

2 participants