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

RF: Update Rift class to use PsychXR 0.2+ #2655

Merged
merged 38 commits into from
Oct 21, 2019
Merged

RF: Update Rift class to use PsychXR 0.2+ #2655

merged 38 commits into from
Oct 21, 2019

Conversation

mdcutone
Copy link
Member

@mdcutone mdcutone commented Oct 16, 2019

Here's the big one. This is the update to the Rift class for PsychXR 0.2+. This adds loads of new features to the Rift class that come with nearly a year's worth of development to PsychXR in a laboratory environment.

  • You are now able to easily use arbitrary head pose data to compute eye locations.
  • Added tweaks specific for the Rift S.
  • Removes all of the math functions from the Oculus library in favor of the new LibOVRPose. This greatly simplifies rigid body transformations in VR scenes. If you want to do some math that is not available through LibOVRPose's methods, nearly all of it is in mathtools library now. Furthermore, PsychXR returns vectors, matrices, and quaternions as numpy arrays. So you can use them more readily with your code. The LibOVRPose object will have a common interface with the incoming RigidBody class for the 3D stim class. This allows you to directly use pose data from the Rift to transform 3D stimuli.
  • Added the ability to make movies of what your participant is seeing.
  • Added the ability to get tracker information (Rift CV1 only).
  • The tracking capabilities of the HMD are now accessible.
  • Included support for PsychXR's visibility culling feature, this allows you to selectively render objects only if they appear in the FOV of a given eye. This requires using the new LibOVRBounds object and attaching it to a LibOVRPose representing your scene object.
  • You can now track additional touch controllers in a scene using the getDevicePoses method.
  • You can disable ASW using the headLocked attribute.
  • Support for additional mirror texture modes.
  • Oculus runtime debug, info, and error log messages are now logged in PsychoPy.
  • Tracking state information is now available through the new LibOVRTrackingState object which reports device poses and tracking status.
  • getTrackingState and getDevicePoses gives information about dynamics such as linear and angular velocity and acceleration.
  • Added some helper functions to convert arrays to formats understood by Pyglet's OpenGL interface.
  • Documentation has been improved with more examples. There are also links to PsychXR's website for more information about PsychXR objects exposed to PsychoPy.
  • Demos have been updated to show off newer features.
  • Support for haptics has been added. This allows you to control touch controller vibration. The LibOVRHapticsBuffer object can be used to map vibration samples stored in numpy arrays to the haptics engine for playback.
  • Performance statistics from the LibOVR runtime is now accessible. It can report instances were frames were dropped by the application.
  • The origin of the scene can be specified and used to transform eye poses.

@lgtm-com
Copy link

lgtm-com bot commented Oct 16, 2019

This pull request introduces 4 alerts and fixes 5 when merging b2f62ed into 2fbff14 - view on LGTM.com

new alerts:

  • 2 for Unused exception object
  • 1 for Unused local variable
  • 1 for Unused import

fixed alerts:

  • 2 for Module is imported with 'import' and 'import from'
  • 1 for Missing call to __init__ during object initialization
  • 1 for 'import *' may pollute namespace
  • 1 for Non-iterable used in for loop

@lgtm-com
Copy link

lgtm-com bot commented Oct 17, 2019

This pull request introduces 1 alert and fixes 5 when merging 45c4e3c into 2fbff14 - view on LGTM.com

new alerts:

  • 1 for Unused import

fixed alerts:

  • 2 for Module is imported with 'import' and 'import from'
  • 1 for Missing call to __init__ during object initialization
  • 1 for 'import *' may pollute namespace
  • 1 for Non-iterable used in for loop

@lgtm-com
Copy link

lgtm-com bot commented Oct 17, 2019

This pull request introduces 1 alert and fixes 5 when merging 99d35b9 into 2fbff14 - view on LGTM.com

new alerts:

  • 1 for Unused import

fixed alerts:

  • 2 for Module is imported with 'import' and 'import from'
  • 1 for Missing call to __init__ during object initialization
  • 1 for 'import *' may pollute namespace
  • 1 for Non-iterable used in for loop

@lgtm-com
Copy link

lgtm-com bot commented Oct 19, 2019

This pull request fixes 1 alert when merging 0c1863d into fc51f9e - view on LGTM.com

fixed alerts:

  • 1 for 'import *' may pollute namespace

@lgtm-com
Copy link

lgtm-com bot commented Oct 20, 2019

This pull request fixes 1 alert when merging 2483d49 into fc51f9e - view on LGTM.com

fixed alerts:

  • 1 for 'import *' may pollute namespace

@peircej peircej merged commit a0d27ce into psychopy:master Oct 21, 2019
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.

3 participants