[chimerax-users] ChimeraX VR Feedback

Tom Goddard goddard at sonic.net
Tue Jul 6 10:31:37 PDT 2021


Hi Gökhan,

  Those are good suggestions.  Thanks!  Unfortunately they are hard to do in VR.  Here is an explanation why.

  I would love to have pointing at an atom in VR show you its residue number, chain, atom name.  But the ChimeraX code to find what is under the mouse takes a little time to run.  If you are showing 50,000 atoms it checks every one to see if it is under your pointer.  That is no big deal on a conventional display, might take just a few milliseconds.  But in VR the graphics rendering has to update very fast and calculations like checking all the atoms to see if they are in front of the pointer can be too slow causing the graphics to not draw fast enough, causing flicker in the headset, which makes you sick.  Current high-end headsets like Valve Index or Vive Pro 2 update at 120 frames per second in each eye.  So ChimeraX needs to render 240 frames per second -- that is 4 milliseconds per frame.  Any calculation like seeing what atom is in front of your hand controller that takes more than a few milliseconds will cause frame drop and visual glitching.  The solution for that is to either code those calculation in a very efficient way.  Like put all the atoms in an oct-tree data structure so the code does not need to check each atom.  Or a more general method is to put those calculations in a separate thread, a separate CPU core runs them so the graphics can keep going.  We have not had the time and funding to make that kind of optimization for VR.

  ChimeraX VR shows the hand-controller button positions in about the right positions for Vive and Oculus hand controllers.  I could do the same for Windows Mixed Reality controllers but have not had time.  Unfortunately Microsoft seems to have dropped any effort to improve WMR, and its market share is tiny (about 5%) and decreasing as the Steam monthly hardware survey shows

	https://store.steampowered.com/hwsurvey/Steam-Hardware-Software-Survey-Welcome-to-Steam?platform=pc

The grip buttons on the WMR and Oculus controllers are very easy to accidentally press, on on Vive controllers they are very hard to press even when you want to.  So ChimeraX uses different button assignments for Oculus and Vive.  Again WMR has been left out and just defaults to Vive -- it would be better to default to Oculus behavior.  I made a ChimeraX request to make that change (https://www.rbvi.ucsf.edu/trac/ChimeraX/ticket/4865 <https://www.rbvi.ucsf.edu/trac/ChimeraX/ticket/4865>).  I don't like the idea of having an X second delay to register a button press.  It makes it really annoying when you actually want to use the button to have to hold it.  And accidental presses often hold the button down for a long time, so I don't think it would solve the problem.  You can reassign the grip button do some other action beside centering with the "vr button" command.

  Thanks for the suggestions.  I have worked about 20% time developing VR in ChimeraX and that is the entire effort.  To do it well would take 100 times as much effort -- I am not exaggerating.  You should try Nanome, the most seriously developed molecular VR available, by a company with 15 people where that is pretty much their only product -- so about 75 times the resources put into their VR.  I think you will find it is good, but could be much better.  This is the story of VR -- much much harder to do well than conventional software, and no one is investing enough resources to get a good result.

	Tom


> On Jul 2, 2021, at 7:10 PM, Gökhan Tolun via ChimeraX-users <chimerax-users at cgl.ucsf.edu> wrote:
> 
> Hi,
>  
> Thanks for all your hard work in getting ChimeraX going in VR and also for implementing a Meeting component.
>  
> Here is some feedback after trying a VR meeting for the first time today:
>  
> Is it possible to have the same functionality of mouse-hover showing the labels, in VR?
> Is it possible to add a button to the toolbar to turn labels for all residues on/off?
> The VR cones do not show the correct controller layout while using a WMR controller (they still show the Vive controller layout). Is it possible to show the correct controller layout?
> While using WMR controllers, the grip button is very easy to press by mistake, resetting the view. Can this be changed to a “hold for X seconds” behavior instead of being instantaneous?
> While adding labels in VR, especially since the hover does not show the label (indicating you’re at the correct place to add a label), a misplaced click removes all labels. May the removal all labels upon clicking to an empty area also changed to “hold for X seconds” or asking for a confirmation?
>  
> Thanks,
>  
> Gökhan
>  
> _______________________________________________
> ChimeraX-users mailing list
> ChimeraX-users at cgl.ucsf.edu <mailto:ChimeraX-users at cgl.ucsf.edu>
> Manage subscription:
> https://www.rbvi.ucsf.edu/mailman/listinfo/chimerax-users <https://www.rbvi.ucsf.edu/mailman/listinfo/chimerax-users>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://plato.cgl.ucsf.edu/pipermail/chimerax-users/attachments/20210706/56c6b84b/attachment-0001.html>


More information about the ChimeraX-users mailing list