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

3DOF support in tracked-controls, daydream-controls, head/arm model #2538

Merged
merged 11 commits into from Apr 7, 2017

Conversation

Projects
None yet
4 participants
@machenmusik
Collaborator

machenmusik commented Mar 31, 2017

This PR adds support to tracked-controls for non-6DOF controllers, for example the Google Daydream controller, by using camera position and a primitive arm model to emulate positional data. As they should now be supported, this PR also adds daydream-controls and gearvr-controls alongside oculus-touch-controls and vive-controls. Lastly, it includes support for allowing zero-DOF controllers, for example Gear VR Touchpad, by using camera orientation (disabled by default, but enabled for examples/showcase/tracked-controls/ since otherwise that does nothing in zero-DOF cases).

@ngokevin ngokevin added this to the 0.6.0 milestone Mar 31, 2017

@machenmusik

This comment has been minimized.

Show comment
Hide comment
@machenmusik

machenmusik Apr 3, 2017

Collaborator

is there a need to back it out? won't do anything unless you explicitly enable zero-DOF, and then you presumably want it to do something (with the current trackpad)

Collaborator

machenmusik commented Apr 3, 2017

is there a need to back it out? won't do anything unless you explicitly enable zero-DOF, and then you presumably want it to do something (with the current trackpad)

@ngokevin

This comment has been minimized.

Show comment
Hide comment
@ngokevin

ngokevin Apr 3, 2017

Member

We can't test the 3DOF GearVR until it's released, and it's code baggage until then. Would make PR quick to test/review. The 0DOF trackpad style of interaction will start to lose relevance and in the long-term completely disappear, I'd leave it as a community feature.

Member

ngokevin commented Apr 3, 2017

We can't test the 3DOF GearVR until it's released, and it's code baggage until then. Would make PR quick to test/review. The 0DOF trackpad style of interaction will start to lose relevance and in the long-term completely disappear, I'd leave it as a community feature.

@machenmusik

This comment has been minimized.

Show comment
Hide comment
@machenmusik

machenmusik Apr 3, 2017

Collaborator

if we think that 0.6.0 will be shipped before the GearVR controllers are available, I would agree. but the controller release is happening quite soon (3 weeks from now)

Collaborator

machenmusik commented Apr 3, 2017

if we think that 0.6.0 will be shipped before the GearVR controllers are available, I would agree. but the controller release is happening quite soon (3 weeks from now)

@ngokevin

This comment has been minimized.

Show comment
Hide comment
@ngokevin

ngokevin Apr 3, 2017

Member

We're shipping sooner than that. 3 weeks is forever, and then there's the time to wait in line for the controllers and wait for shipment.

Member

ngokevin commented Apr 3, 2017

We're shipping sooner than that. 3 weeks is forever, and then there's the time to wait in line for the controllers and wait for shipment.

@machenmusik

This comment has been minimized.

Show comment
Hide comment
@machenmusik

machenmusik Apr 3, 2017

Collaborator

ok, let me see if i can split into this PR for controllers we can exercise now (Daydream; any other 3DOF gamepads?) and a separate one for GearVR once we can confirm with those. Ideally we would be able to confirm support to be available before or at launch, not afterward. (The existing code in this PR may just work.)

Collaborator

machenmusik commented Apr 3, 2017

ok, let me see if i can split into this PR for controllers we can exercise now (Daydream; any other 3DOF gamepads?) and a separate one for GearVR once we can confirm with those. Ideally we would be able to confirm support to be available before or at launch, not afterward. (The existing code in this PR may just work.)

@ngokevin

This comment has been minimized.

Show comment
Hide comment
@ngokevin

ngokevin Apr 3, 2017

Member

Cool, thanks. GearVR's not too urgent, the controllers will take time to roll out amongst the GearVR + WebVR developer community and consumers as well.

Member

ngokevin commented Apr 3, 2017

Cool, thanks. GearVR's not too urgent, the controllers will take time to roll out amongst the GearVR + WebVR developer community and consumers as well.

@ngokevin ngokevin changed the title from Tracked controls 3DOF to 3DOF support in tracked-controls, daydream-controls, head/arm model Apr 3, 2017

@machenmusik

This comment has been minimized.

Show comment
Hide comment
@machenmusik

machenmusik Apr 4, 2017

Collaborator

(got the change in between reboots.)

Collaborator

machenmusik commented Apr 4, 2017

(got the change in between reboots.)

@caseyyee

This comment has been minimized.

Show comment
Hide comment
@caseyyee

caseyyee Apr 5, 2017

Contributor

@machenmusik the controller motions are pretty laggy/slow to update. Is the pose data coming through slow, or is this something else? Also noticed this with the aframe-daydream-controller component.

Also regarding handedness. Shouldn't this be exposed in the controller API? The component should set that up for you.

Contributor

caseyyee commented Apr 5, 2017

@machenmusik the controller motions are pretty laggy/slow to update. Is the pose data coming through slow, or is this something else? Also noticed this with the aframe-daydream-controller component.

Also regarding handedness. Shouldn't this be exposed in the controller API? The component should set that up for you.

@machenmusik

This comment has been minimized.

Show comment
Hide comment
@machenmusik

machenmusik Apr 5, 2017

Collaborator

handedness: yeah we discussed just above, #2538 (review)

laggy/slow - when I was using, there was a bit of delay after doing daydream enter-vr dance and then it would settle down to be fast. what were you using, got a URL / codepen / glitch / etc.?

Collaborator

machenmusik commented Apr 5, 2017

handedness: yeah we discussed just above, #2538 (review)

laggy/slow - when I was using, there was a bit of delay after doing daydream enter-vr dance and then it would settle down to be fast. what were you using, got a URL / codepen / glitch / etc.?

@machenmusik

This comment has been minimized.

Show comment
Hide comment
@machenmusik

machenmusik Apr 5, 2017

Collaborator

(if you are using more complicated models with daydream controller, daydream GPU is still way worse than any desktop so you may be running into scene complexity issues?)

Collaborator

machenmusik commented Apr 5, 2017

(if you are using more complicated models with daydream controller, daydream GPU is still way worse than any desktop so you may be running into scene complexity issues?)

@dmarcos

This comment has been minimized.

Show comment
Hide comment
@dmarcos

dmarcos Apr 6, 2017

Collaborator

This is pretty close! :) Thanks for the patience

Collaborator

dmarcos commented Apr 6, 2017

This is pretty close! :) Thanks for the patience

@caseyyee

This comment has been minimized.

Show comment
Hide comment
@caseyyee

caseyyee Apr 6, 2017

Contributor

@machenmusik I don't think it's the model. Though I will experiment by taking it out to see if that helps to improve performance. I'll whip up a a-frame example that works with the controller since the existing motion controls one doesn't work for 3dof.

Contributor

caseyyee commented Apr 6, 2017

@machenmusik I don't think it's the model. Though I will experiment by taking it out to see if that helps to improve performance. I'll whip up a a-frame example that works with the controller since the existing motion controls one doesn't work for 3dof.

@caseyyee

This comment has been minimized.

Show comment
Hide comment
@caseyyee

caseyyee Apr 6, 2017

Contributor

@machenmusik update: definetly not the model. removing it doesn't seem to help performance. I should also mention that in-headset, the performance is good and it seems to be just the controller that laggy/slow.

Contributor

caseyyee commented Apr 6, 2017

@machenmusik update: definetly not the model. removing it doesn't seem to help performance. I should also mention that in-headset, the performance is good and it seems to be just the controller that laggy/slow.

@machenmusik

This comment has been minimized.

Show comment
Hide comment
@machenmusik

machenmusik Apr 6, 2017

Collaborator

@dmarcos mentioned yesterday that three.js does the same thing so doesn't seem like A-Frame has much to do with it (maybe browser)

Collaborator

machenmusik commented Apr 6, 2017

@dmarcos mentioned yesterday that three.js does the same thing so doesn't seem like A-Frame has much to do with it (maybe browser)

@ngokevin

This comment has been minimized.

Show comment
Hide comment
@ngokevin

ngokevin Apr 6, 2017

Member

Could it be the browser not sending the pose frequent enough?

Member

ngokevin commented Apr 6, 2017

Could it be the browser not sending the pose frequent enough?

@caseyyee

This comment has been minimized.

Show comment
Hide comment
@caseyyee

caseyyee Apr 6, 2017

Contributor

OK, so some further testing. It seems like the pose updates are just not very frequent. I see this also in three.js examples as well. So it's not something specific to the work here.

After some more testing, I definetly see some lag in native daydream apps as well, so it's definetly possible that it's a limitation with the controller itself. It could be that they are doing some kind of interpolation with the pose that makes it less noticeable.

Edit: Guess what I'm saying is that the perf issues are not something that should hold this patch back. It seems that there is more of a general problem here to solve with the controller.

Contributor

caseyyee commented Apr 6, 2017

OK, so some further testing. It seems like the pose updates are just not very frequent. I see this also in three.js examples as well. So it's not something specific to the work here.

After some more testing, I definetly see some lag in native daydream apps as well, so it's definetly possible that it's a limitation with the controller itself. It could be that they are doing some kind of interpolation with the pose that makes it less noticeable.

Edit: Guess what I'm saying is that the perf issues are not something that should hold this patch back. It seems that there is more of a general problem here to solve with the controller.

@machenmusik

This comment has been minimized.

Show comment
Hide comment
@machenmusik

machenmusik Apr 6, 2017

Collaborator

yes that was the conclusion @dmarcos and I came to yesterday (perf not us, hand --> defaultHand) -- looks like some editorial nits but very close now

Collaborator

machenmusik commented Apr 6, 2017

yes that was the conclusion @dmarcos and I came to yesterday (perf not us, hand --> defaultHand) -- looks like some editorial nits but very close now

DEFAULT_HAND => DEFAULT_HANDEDNESS; daydream-controls should provide …
…hand, so use it to filter, and attach to both hand-controls
@machenmusik

This comment has been minimized.

Show comment
Hide comment
@machenmusik

machenmusik Apr 7, 2017

Collaborator

ok?

Collaborator

machenmusik commented Apr 7, 2017

ok?

@dmarcos

This comment has been minimized.

Show comment
Hide comment
@dmarcos

dmarcos Apr 7, 2017

Collaborator

Thanks! I'm going to merge this but I think we need a better example to illustrate the capabilities of a 3DOF a controller.

Collaborator

dmarcos commented Apr 7, 2017

Thanks! I'm going to merge this but I think we need a better example to illustrate the capabilities of a 3DOF a controller.

@dmarcos dmarcos merged commit cb1399e into aframevr:master Apr 7, 2017

3 checks passed

codecov/patch 52.11% of diff hit (target 1%)
Details
codecov/project 86.63% (target 70%)
Details
continuous-integration/travis-ci/pr The Travis CI build passed
Details
@ngokevin

This comment has been minimized.

Show comment
Hide comment
@ngokevin

ngokevin Apr 7, 2017

Member

Woo, thanks @mchen! When you have time, can you throw in some unit tests too?

Member

ngokevin commented Apr 7, 2017

Woo, thanks @mchen! When you have time, can you throw in some unit tests too?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment