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

Wolvic on Lynx missing input profile #1103

Closed
Utopiah opened this issue Nov 17, 2023 · 8 comments
Closed

Wolvic on Lynx missing input profile #1103

Utopiah opened this issue Nov 17, 2023 · 8 comments
Labels
bug Something isn't working

Comments

@Utopiah
Copy link

Utopiah commented Nov 17, 2023

Configuration

Wolvic version: 1.4.1
Wolvic build ID: 97 (versionCode)

Hardware: Lynx R1

Steps to Reproduce

  1. navigate on an AFrame page with laser controls
  2. nothing shown

By using remote debugging I checked the value of AFRAME.scenes[0].xrSession.inputSources[0] while showing hands. It does get filled properly for some values, e.g handedness but not .profiles which is used to determine how to handle then represent inputs.

Current

Expected Behavior

Show lasers when hands move, just like https://immersive-web.github.io/webxr-samples/input-tracking.html?usePolyfill=0 does.

Possible Solution

AFrame laser controls fallbacks fails because AFRAME.scenes[0].xrSession.inputSources[0] expects a value in .profiles but is currently empty. See WebXR specifications https://github.com/immersive-web/webxr-input-profiles/blob/main/packages/registry/profiles/generic/generic-hand.json maybe generic-hand-select as input profile.

Context

Error Logs and Stack Traces

@Utopiah
Copy link
Author

Utopiah commented Nov 17, 2023

Multiple solutions tried on https://glitch.com/edit/#!/lynx-aframe?path=index.html

A custom component could be tried until a working build is available, but that would needlessly complexify a selection process already quite complex.

@dmarcos
Copy link

dmarcos commented Nov 17, 2023

Ideally we would have WebXR hand input support since it's the only input method available on Lynx. For that

Physical hand input sources MUST include the input profile name of "generic-hand-select" in their profiles.

As a workaround adding the generic-hand profile as Fabien mentioned will help content make better decisions instead of an empty array. Keep up the great work

@dmarcos
Copy link

dmarcos commented Nov 17, 2023

On second thought generic-hand-select profile might be more appropriate. I'm assuming the Lynx implementation emits select events on pinch gesture? Either way I think better than an empty array

@svillar
Copy link
Member

svillar commented Nov 20, 2023

On second thought generic-hand-select profile might be more appropriate. I'm assuming the Lynx implementation emits select events on pinch gesture? Either way I think better than an empty array

Nice to see you here @dmarcos. Yeah sending an empty array is a bug indeed on the Lynx port, we'll fix that once we have some slack.

That said, for the Gecko port we cannot use hand profiles because Gecko does not support WebXR hand tracking APIs. It works for most of the other cases because we effectively emulate a controller. We'll very likely use a generic controller profile for this case which should be supported by AFrame in any case.

We'll enable that for the Chromium port though because we've already added the machinery to support WebXR hand tracking with Chromium in Wolvic.

@Utopiah
Copy link
Author

Utopiah commented Nov 20, 2023

The Lynx R1 is a great device due to it's more open philosophy and in practice allowing rooting https://lynx.miraheze.org/wiki/Rooting_Process , but they already started shipping. Wolvic is one of the very few apps available so I believe having a solution for interaction for WebXR ASAP would insure a growing audience who might be a lot more participatory than on other ecosystems where they would only consume content than build. In a way I see this, interaction in WebXR, for this platform as something rather pressing for the ecosystem to keep on growing.

Anyway happy to try on a test build, or compile a test branch if necessary, whenever that profile is in and report back!

@svillar svillar added the bug Something isn't working label Nov 20, 2023
@javifernandez
Copy link
Member

This issue has been fixed by PR #1019 which has been integrated in Wolvic 1.5.1

@Utopiah
Copy link
Author

Utopiah commented Dec 15, 2023

Neat, is there a 1.5.1 or 1.5.2 build for Lynx?

@Utopiah
Copy link
Author

Utopiah commented Feb 28, 2024

Here is my built from Github latest version yesterday https://fabien.benetou.fr/pub/home/Wolvic-lynx-arm64-gecko-generic-release.apk

Note that the application Id name has been changed from com.igalia.wolvic to uto.igalia.wolvic due to Wolvic 1.5 comes pre-installed on the Lynx as a system app. Consequently it can't be removed or updated without rooting.

PS: this build is also available on https://apps.lynx-community.workers.dev/

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

4 participants