VR picking distance is too large
| Reported by: |
goddard@… |
Owned by: |
Tom Goddard |
|
Priority:
|
normal
|
Milestone:
|
|
|
Component:
|
VR
|
Version:
|
|
|
Keywords:
|
|
Cc:
|
Elaine Meng, m-schmid@…, phil.cruz@…
|
|
Blocked By:
|
|
Blocking:
|
|
|
Notify when closed:
|
|
Platform:
|
all
|
|
Project:
|
ChimeraX
|
|
|
The following bug report has been submitted:
Platform: Windows-10-10.0.19044
ChimeraX Version: 1.6.dev202302032137 (2023-02-03 21:37:53 UTC)
Description
VR atom selection with hand controller can pick very distant atoms by accident. The maximum picking distance is controlled by the vr command clickRange option that defaults to 5 and is documented to be in scene units (Angstroms). But in fact it is treated as if it is meters in the room units. I think it is good to use room units. But the default click range should be 0.10 (10 centimeters) to avoid accidentally picking distant objects.
Log:
Startup Messages
---
warnings | QWindowsWindow::setDarkBorderToWindow: Unable to set dark window
border.
QWindowsWindow::setDarkBorderToWindow: Unable to set dark window border.
Could not find tool "Tabbed Toolbar"
UCSF ChimeraX version: 1.6.dev202302032137 (2023-02-03)
© 2016-2023 Regents of the University of California. All rights reserved.
How to cite UCSF ChimeraX
OpenGL version: 3.3.0 NVIDIA 430.39
OpenGL renderer: Quadro P6000/PCIe/SSE2
OpenGL vendor: NVIDIA Corporation
Python: 3.9.11
Locale: en_US.cp1252
Qt version: PyQt6 6.4.1, Qt 6.4.2
Qt runtime version: 6.4.2
Qt platform: windows
Manufacturer: Gigabyte Technology Co., Ltd.
Model: To be filled by O.E.M.
OS: Microsoft Windows 10 Home (Build 19044)
Memory: 66,135,482,368
MaxProcessMemory: 137,438,953,344
CPU: 8 Intel(R) Core(TM) i7-6700K CPU @ 4.00GHz
OSLanguage: en-US
Installed Packages:
alabaster: 0.7.13
appdirs: 1.4.4
asttokens: 2.2.1
Babel: 2.11.0
backcall: 0.2.0
blockdiag: 3.0.0
build: 0.10.0
certifi: 2022.12.7
cftime: 1.6.2
charset-normalizer: 3.0.1
ChimeraX-AddCharge: 1.5.8
ChimeraX-AddH: 2.2.3
ChimeraX-AlignmentAlgorithms: 2.0.1
ChimeraX-AlignmentHdrs: 3.3.1
ChimeraX-AlignmentMatrices: 2.1
ChimeraX-Alignments: 2.8
ChimeraX-AlphaFold: 1.0
ChimeraX-AltlocExplorer: 1.0.3
ChimeraX-AmberInfo: 1.0
ChimeraX-Arrays: 1.1
ChimeraX-Atomic: 1.43.7
ChimeraX-AtomicLibrary: 10.0.3
ChimeraX-AtomSearch: 2.0.1
ChimeraX-AxesPlanes: 2.3.2
ChimeraX-BasicActions: 1.1.2
ChimeraX-BILD: 1.0
ChimeraX-BlastProtein: 2.1.2
ChimeraX-BondRot: 2.0.1
ChimeraX-BugReporter: 1.0.1
ChimeraX-BuildStructure: 2.7.2
ChimeraX-Bumps: 1.0
ChimeraX-BundleBuilder: 1.2.1
ChimeraX-ButtonPanel: 1.0.1
ChimeraX-CageBuilder: 1.0.1
ChimeraX-CellPack: 1.0
ChimeraX-Centroids: 1.3.2
ChimeraX-ChangeChains: 1.0.2
ChimeraX-CheckWaters: 1.3.1
ChimeraX-ChemGroup: 2.0.1
ChimeraX-Clashes: 2.2.4
ChimeraX-ColorActions: 1.0.3
ChimeraX-ColorGlobe: 1.0
ChimeraX-ColorKey: 1.5.3
ChimeraX-CommandLine: 1.2.5
ChimeraX-ConnectStructure: 2.0.1
ChimeraX-Contacts: 1.0.1
ChimeraX-Core: 1.6.dev202302032137
ChimeraX-CoreFormats: 1.1
ChimeraX-coulombic: 1.4.2
ChimeraX-Crosslinks: 1.0
ChimeraX-Crystal: 1.0
ChimeraX-CrystalContacts: 1.0.1
ChimeraX-DataFormats: 1.2.3
ChimeraX-Dicom: 1.1
ChimeraX-DistMonitor: 1.3.3
ChimeraX-DockPrep: 1.1
ChimeraX-Dssp: 2.0
ChimeraX-EMDB-SFF: 1.0
ChimeraX-ESMFold: 1.0
ChimeraX-ExperimentalCommands: 1.0
ChimeraX-FileHistory: 1.0.1
ChimeraX-FunctionKey: 1.0.1
ChimeraX-Geometry: 1.3
ChimeraX-gltf: 1.0
ChimeraX-Graphics: 1.1.1
ChimeraX-Hbonds: 2.4
ChimeraX-Help: 1.2.1
ChimeraX-HKCage: 1.3
ChimeraX-IHM: 1.1
ChimeraX-ImageFormats: 1.2
ChimeraX-IMOD: 1.0
ChimeraX-IO: 1.0.1
ChimeraX-ItemsInspection: 1.0.1
ChimeraX-Label: 1.1.7
ChimeraX-ListInfo: 1.1.1
ChimeraX-Log: 1.1.5
ChimeraX-LookingGlass: 1.1
ChimeraX-Maestro: 1.8.2
ChimeraX-Map: 1.1.4
ChimeraX-MapData: 2.0
ChimeraX-MapEraser: 1.0.1
ChimeraX-MapFilter: 2.0.1
ChimeraX-MapFit: 2.0
ChimeraX-MapSeries: 2.1.1
ChimeraX-Markers: 1.0.1
ChimeraX-Mask: 1.0.2
ChimeraX-MatchMaker: 2.0.11
ChimeraX-MDcrds: 2.6
ChimeraX-MedicalToolbar: 1.0.2
ChimeraX-Meeting: 1.0.1
ChimeraX-MLP: 1.1.1
ChimeraX-mmCIF: 2.11
ChimeraX-MMTF: 2.2
ChimeraX-Modeller: 1.5.8
ChimeraX-ModelPanel: 1.3.6
ChimeraX-ModelSeries: 1.0.1
ChimeraX-Mol2: 2.0
ChimeraX-Mole: 1.0
ChimeraX-Morph: 1.0.2
ChimeraX-MouseModes: 1.2
ChimeraX-Movie: 1.0
ChimeraX-Neuron: 1.0
ChimeraX-Nucleotides: 2.0.3
ChimeraX-OpenCommand: 1.10
ChimeraX-PDB: 2.6.13
ChimeraX-PDBBio: 1.0
ChimeraX-PDBLibrary: 1.0.2
ChimeraX-PDBMatrices: 1.0
ChimeraX-PickBlobs: 1.0.1
ChimeraX-Positions: 1.0
ChimeraX-PresetMgr: 1.1
ChimeraX-PubChem: 2.1
ChimeraX-ReadPbonds: 1.0.1
ChimeraX-Registration: 1.1.1
ChimeraX-RemoteControl: 1.0
ChimeraX-RenderByAttr: 1.0
ChimeraX-RenumberResidues: 1.1
ChimeraX-ResidueFit: 1.0.1
ChimeraX-RestServer: 1.1
ChimeraX-RNALayout: 1.0
ChimeraX-RotamerLibMgr: 3.0
ChimeraX-RotamerLibsDunbrack: 2.0
ChimeraX-RotamerLibsDynameomics: 2.0
ChimeraX-RotamerLibsRichardson: 2.0
ChimeraX-SaveCommand: 1.5.1
ChimeraX-SchemeMgr: 1.0
ChimeraX-SDF: 2.0.1
ChimeraX-Segger: 1.0
ChimeraX-Segment: 1.0.1
ChimeraX-SelInspector: 1.0
ChimeraX-SeqView: 2.8.1
ChimeraX-Shape: 1.0.1
ChimeraX-Shell: 1.0.1
ChimeraX-Shortcuts: 1.1.1
ChimeraX-ShowSequences: 1.0.1
ChimeraX-SideView: 1.0.1
ChimeraX-Smiles: 2.1
ChimeraX-SmoothLines: 1.0
ChimeraX-SpaceNavigator: 1.0
ChimeraX-StdCommands: 1.10.1
ChimeraX-STL: 1.0.1
ChimeraX-Storm: 1.0
ChimeraX-StructMeasure: 1.1.1
ChimeraX-Struts: 1.0.1
ChimeraX-Surface: 1.0.1
ChimeraX-SwapAA: 2.0.1
ChimeraX-SwapRes: 2.2.1
ChimeraX-TapeMeasure: 1.0
ChimeraX-Test: 1.0
ChimeraX-Toolbar: 1.1.2
ChimeraX-ToolshedUtils: 1.2.1
ChimeraX-Topography: 1.0
ChimeraX-Tug: 1.0.1
ChimeraX-UI: 1.26.1
ChimeraX-uniprot: 2.2.2
ChimeraX-UnitCell: 1.0.1
ChimeraX-ViewDockX: 1.2
ChimeraX-VIPERdb: 1.0
ChimeraX-Vive: 1.1
ChimeraX-VolumeMenu: 1.0.1
ChimeraX-VTK: 1.0
ChimeraX-WavefrontOBJ: 1.0
ChimeraX-WebCam: 1.0.2
ChimeraX-WebServices: 1.1.1
ChimeraX-Zone: 1.0.1
colorama: 0.4.6
comm: 0.1.2
comtypes: 1.1.14
contourpy: 1.0.7
cxservices: 1.2.2
cycler: 0.11.0
Cython: 0.29.33
debugpy: 1.6.6
decorator: 5.1.1
docutils: 0.19
entrypoints: 0.4
executing: 1.2.0
filelock: 3.9.0
fonttools: 4.38.0
funcparserlib: 1.0.1
grako: 3.16.5
h5py: 3.8.0
html2text: 2020.1.16
idna: 3.4
imagecodecs: 2022.9.26
imagesize: 1.4.1
importlib-metadata: 6.0.0
ipykernel: 6.19.2
ipython: 8.7.0
ipython-genutils: 0.2.0
ipywidgets: 8.0.4
jedi: 0.18.2
Jinja2: 3.1.2
jupyter-client: 7.4.8
jupyter-core: 5.2.0
jupyterlab-widgets: 3.0.5
kiwisolver: 1.4.4
line-profiler: 4.0.2
lxml: 4.9.2
lz4: 4.3.2
MarkupSafe: 2.1.2
matplotlib: 3.6.3
matplotlib-inline: 0.1.6
msgpack: 1.0.4
nest-asyncio: 1.5.6
netCDF4: 1.6.2
networkx: 2.8.8
numexpr: 2.8.4
numpy: 1.23.5
openvr: 1.23.701
packaging: 23.0
pandas: 1.5.3
ParmEd: 3.4.3
parso: 0.8.3
pep517: 0.13.0
pickleshare: 0.7.5
Pillow: 9.3.0
pip: 23.0
pkginfo: 1.9.6
platformdirs: 2.6.2
prompt-toolkit: 3.0.36
psutil: 5.9.4
pure-eval: 0.2.2
pycollada: 0.7.2
pydicom: 2.3.0
Pygments: 2.14.0
PyOpenGL: 3.1.5
PyOpenGL-accelerate: 3.1.5
pyparsing: 3.0.9
pyproject-hooks: 1.0.0
PyQt6: 6.4.1
PyQt6-Qt6: 6.4.2
PyQt6-sip: 13.4.1
PyQt6-WebEngine: 6.4.0
PyQt6-WebEngine-Qt6: 6.4.2
python-dateutil: 2.8.2
pytz: 2022.7.1
pywin32: 305
pyzmq: 25.0.0
qtconsole: 5.4.0
QtPy: 2.3.0
RandomWords: 0.4.0
requests: 2.28.2
scipy: 1.9.3
setuptools: 65.1.1
sfftk-rw: 0.7.3
six: 1.16.0
snowballstemmer: 2.2.0
sortedcontainers: 2.4.0
sphinx: 6.1.3
sphinx-autodoc-typehints: 1.22
sphinxcontrib-applehelp: 1.0.4
sphinxcontrib-blockdiag: 3.0.0
sphinxcontrib-devhelp: 1.0.2
sphinxcontrib-htmlhelp: 2.0.1
sphinxcontrib-jsmath: 1.0.1
sphinxcontrib-qthelp: 1.0.3
sphinxcontrib-serializinghtml: 1.1.5
stack-data: 0.6.2
tables: 3.7.0
tcia-utils: 1.0.2
tifffile: 2022.10.10
tinyarray: 1.2.4
tomli: 2.0.1
tornado: 6.2
traitlets: 5.9.0
urllib3: 1.26.14
wcwidth: 0.2.6
webcolors: 1.12
wheel: 0.37.1
wheel-filename: 1.4.1
widgetsnbextension: 4.0.5
WMI: 1.5.1
zipp: 3.12.0
Fixed.
I've changed the definition of the vr command clickRange value so it is now in meters in the room and defaults to 0.10 (10 centimeters = 4 inches). Some current VR users who were used to the 5 meter picking range may be surprised by this new behavior if they actually use it to pick objects further away than 10 centimeters. For example, when placing a marker on a electron microscopy surface using the hand controller a user click much further than 10 centimeters away because the surface is zoomed to a large size of many meters. Then no marker will be placed. Will have to see if the 10 centimeter maximum range causes problems for some VR hand controller modes.
Elaine, could you change the vr command documentation to say that the clickRange option has units of meters in the room, and not Angstroms in the scene, with default 0.10. Also it may be worth noting in a more prominent location in VR hand controller documentation that the picking maximum range is in general 10 centimeters.