WebXR "MiniMol" molecule viewer
Google images search "RCSB server big bio molecules PDB"
shows, that complexity of bio-molecules exceeds imagination and
triangles budget of hardware (quickly enough in my Oculus Go).
We need not an artist to create complex VR scenes, Nature makes them easy :)
VR is tested in Oculus Go browser and new Firefox Reality 10.1.
VR samples work in Chrome on Android 10 too.
For tests on a desktop the "inline" webxr session is used (non-VR).
See also Hardware for VR.
Contents
in progress
I'm testing my models on Oculus Quest 2.
Controls work with one of my Quest's thumbsticks (randomly :)
Mini4 with simple ray-casted sphere impostors.
You can see 6vak or 6crv
(>20000 atoms) in the Oculus Go at ~72 FPS and
4cr2 (80139 atoms) at ~20 FPS.
C atoms are grey balls, N - blue, O - red, S - yellow, H - white, Fe - orange,
P - light orange, F - green.
For big molecules you can set colors corresponding to protein chains.
There are more accurate ray-casted impostors algorithms
(e.g. "GPU-Based Ray-Casting of Quadratic Surfaces" C.Sigg et al) and
Mol* (/'molstar/) a modern web-based open-source toolkit for visualisation
and analysis of large-scale molecular data can be used for VR.
2m4j 40-residue beta-amyloid fibril derived from Alzheimer's disease brain.
1CGD collagen.
test
VR models scaling
1CRN molecule maximum size is 27.4Å. You can compare
27.4cm and 27.4m 1CRN models.
Due to the parallax effect the small model looks more voluminous for me,
but you can get into large molecules.
With 6DoF HW you can walk around small molecules,
if touchpad controls do not work for you.
Concepts
To test the usefulness of VR for protein structure investigation
I'm making a tiny "MiniMol" viewer (open-sourced and based on GLMol).
It is intended for mobile chips (stand-alone Oculus or smartphones)
and uses pure JavaScript + WebGL + WebXR (~50kb yet). The main features:
- One buffer (x,y,z coordinates + atom type) to render atoms and bonds.
- Instanced ray-casted impostors or low polygon spheres to render atoms
(only one call for all atoms).
- gl.drawElements(gl.LINES,...) to render bonds (one more call).
- Hetero atoms and protein interaction rendering mode (only a few important residues).
- Cartoon (ribbons) rendering mode.
- Feedback transfer is used for protein morphing on GPU. Multi-model PDB files,
spline interpolation of frames for smooth animations.
- 72Hz mode and Fixed Foveated Rendering are used on Oculus Go
- See also Design
and Architecture of GLmol.
VR biomolecule viewers:
github.com/SBUtltmedia/aframe-glmol-component
durrantlab.com/pvr/.
VRmol.net.
Links
Proteopedia
Ramachandran
principle
Molecules in web augmented reality
Hydrogen
in macromolecular models.
GLmol surface
surfaceTest
WebXR samples
updated 12 Mar 2021
twitter/EvgenyDemidov
"demidov at ipm.sci-nnov.ru"