meta-quest / immersive-web-emulator

Browser extension that emulates Meta Quest devices for WebXR development. Lead: Felix Zhang (fe1ix@meta.com)
https://developer.oculus.com/blog/webxr-development-immersive-web-emulator/
MIT License
298 stars 34 forks source link

[Feature] MVP Immersive AR Support #10

Closed HexaField closed 1 year ago

HexaField commented 1 year ago

Simply adds immersive-ar support to the WebXR polyfill supported modes, as well as runs the correct logic in various matrix calculations to render an immersive VR session the same as an immersive AR session.

Future considerations include mobile (non-immersive) AR compatibility. I believe the original Mozilla WebXR Emulator included a primitive version of this (with no AR specific WebXR features) but a lot of those code paths seem to not be included in this revamp.

References

https://github.com/meta-quest/immersive-web-emulator/issues/1

This contibution is funded by Ethereal Engine

facebook-github-bot commented 1 year ago

Hi @HexaField!

Thank you for your pull request and welcome to our community.

Action Required

In order to merge any pull request (code, docs, etc.), we require contributors to sign our Contributor License Agreement, and we don't seem to have one on file for you.

Process

In order for us to review and merge your suggested changes, please sign at https://code.facebook.com/cla. If you are contributing on behalf of someone else (eg your employer), the individual CLA may not be sufficient and your employer may need to sign the corporate CLA.

Once the CLA is signed, our tooling will perform checks and validations. Afterwards, the pull request will be tagged with CLA signed. The tagging process may take up to 1 hour after signing. Please give it that time before contacting us about it.

If you have received this in error or have any questions, please contact us at cla@meta.com. Thanks!

felixtrz commented 1 year ago

upport to the WebXR polyfill supported modes, as well as runs the correct logic in various matrix calculations to render an immersive VR session the same as an immersive AR session.

Future considerations include mobile (non-immersive) AR compatibility. I believe the original Mozilla WebXR Emulator included a primitive version of this (with no AR specific WebXR features) but a lot of those

Hey @HexaField , thank you for the PR! I will start taking a look at this on Monday, in the meantime, can you sign the Open Source contributor license agreement here: https://code.facebook.com/cla ? Thanks!

The reason I intentionally left out the ar code in the polyfill folder is that I have been working on AR support myself too, I didn't necessarily agree with what Mozilla's direction with the AR feature of the emulator was, and as a result I have a different implementation that deviated from the existing code paths. AR support is my current priority and I was planning to ship this soonish. Still, thank you very much for your contribution here, I am sure this will be helpful to me in the coming days.

HexaField commented 1 year ago

Hey @HexaField , thank you for the PR! I will start taking a look at this on Monday, in the meantime, can you sign the Open Source contributor license agreement here: https://code.facebook.com/cla ? Thanks!

The reason I intentionally left out the ar code in the polyfill folder is that I have been working on AR support myself too, I didn't necessarily agree with what Mozilla's direction with the AR feature of the emulator was, and as a result I have a different implementation that deviated from the existing code paths. AR support is my current priority and I was planning to ship this soonish. Still, thank you very much for your contribution here, I am sure this will be helpful to me in the coming days.

Will get that signed ASAP.

No worries. I am currently working on implementing the detected planes API on top of this API, and will look at implementing other APIs.

My intention is to make small PRs that implement absolute base functionality, simply implementing the WebXR APIs, leaving any custom features (like a sophisticated phone orientation simulation tool) for Meta & the rest of the open source community. I am very fond of the ideas spoken to here about extending the API to make programatic debugging & testing more viable, and am wanting to get the base AR implementing out of the way to enable this to be more readily available.

felixtrz commented 1 year ago

sophisticated

Huh! You are moving really fast! In this case, we are definitely going to bump into each other. I already have a hacked together version of ar-support + plane detection + anchor support. It is not ready to be made public but since you are quite deep into this milestone already, do you mind if we find a time to sync up and exchange ideas? This way we can avoid doing duplicate work. Thanks!

HexaField commented 1 year ago

sophisticated

Huh! You are moving really fast! In this case, we are definitely going to bump into each other. I already have a hacked together version of ar-support + plane detection + anchor support. It is not ready to be made public but since you are quite deep into this milestone already, do you mind if we find a time to sync up and exchange ideas? This way we can avoid doing duplicate work. Thanks!

Fantastic, let's!

felixtrz commented 1 year ago

sophisticated

Huh! You are moving really fast! In this case, we are definitely going to bump into each other. I already have a hacked together version of ar-support + plane detection + anchor support. It is not ready to be made public but since you are quite deep into this milestone already, do you mind if we find a time to sync up and exchange ideas? This way we can avoid doing duplicate work. Thanks!

Fantastic, let's!

Great! I will DM you on Twitter to coordinate, if that works?

HexaField commented 1 year ago

sophisticated

Huh! You are moving really fast! In this case, we are definitely going to bump into each other. I already have a hacked together version of ar-support + plane detection + anchor support. It is not ready to be made public but since you are quite deep into this milestone already, do you mind if we find a time to sync up and exchange ideas? This way we can avoid doing duplicate work. Thanks!

Fantastic, let's!

Great! I will DM you on Twitter to coordinate, if that works?

Yes, sounds good. I am https://twitter.com/HexaField

felixtrz commented 1 year ago

sophisticated

Huh! You are moving really fast! In this case, we are definitely going to bump into each other. I already have a hacked together version of ar-support + plane detection + anchor support. It is not ready to be made public but since you are quite deep into this milestone already, do you mind if we find a time to sync up and exchange ideas? This way we can avoid doing duplicate work. Thanks!

Fantastic, let's!

Great! I will DM you on Twitter to coordinate, if that works?

Yes, sounds good. I am https://twitter.com/HexaField

Thanks! Will do so tomorrow, btw, what timezone are you in?

HexaField commented 1 year ago

Thanks! Will do so tomorrow, btw, what timezone are you in?

Australia

facebook-github-bot commented 1 year ago

@felixtrz has imported this pull request. If you are a Meta employee, you can view this diff on Phabricator.

facebook-github-bot commented 1 year ago

Thank you for signing our Contributor License Agreement. We can now accept your code for this (and any) Meta Open Source project. Thanks!

facebook-github-bot commented 1 year ago

@felixtrz merged this pull request in meta-quest/immersive-web-emulator@0aa5a2a591806d11927aa9ac632c3456d4449555.

felixtrz commented 1 year ago

Merged, thanks again @HexaField