WebXR "MiniMol" molecule viewer features

MiniMol 4 with impostors. You can see 6vak or 6crv (>20000 atoms) in the Oculus Go at ~72 FPS and 4cr2 (80139 atoms) at ~20 FPS.
MiniMol 32 - atom colors by protein chain.
MiniMol 31 - multi-color ribbons (by protein chain).
MiniMol 3 - all HETATMs are collected in one buffer.
MiniMol 2 - new cartoon arrows.
MiniMol - load files from URL, old cartoon, (C grey, N blue, O red, S yellow, H white, Fe orange, P light orange, F green) atoms.

Simplified VR viewers are made with cartoon ribbons and hetero atoms only. All HETATMs are collected in one buffer.
"MicroMol 3" - normals are used to calculate colors. "Holes" in protein chains are shown. Hetero atoms as "92" spheres.
"MicroMol 2" - fixed colors (with ribbon colors by protein chain, no "holes").
"MicroMol" - red/blue ribbons. Int32 index buffer. Hetero atoms as "32" spheres.

Simple ray-casted sphere impostors
2 impostors test based on Learning Modern 3D Graphics Programming by J.McKesson. 4K impostors and 32K impostors speed test. Frequency drops from 72 to 10-20 FPS when we get nearer to a model. Since the fragment shader writes gl_FragDepth and uses discard the program can't use the early Z-test. So Z-sorted atoms are useless?
Due to relatively low Z-test accuracy impostors intersections are not very smooth. Is it just pixels? What about anti-aliasing? Can we improve Z-testing accuracy in WebXR?
Due to small head movement we see flicker at intersections. See Impostors test without head controls (no view.transform.inverse.matrix).

There are more accurate ray-casted impostors algorithms (e.g. "GPU-Based Ray-Casting of Quadratic Surfaces" C.Sigg et al) and NGL viewer: web-based molecular graphics for large complexes library can be used for VR.
4k instanced Spheres with 92 vertexes, Spheres with 32 vertexes, Spheres with 12 vertexes.

I get 72Hz mode and Fixed Foveated Rendering on my Oculus Go. The light background flicker is gone.
Optimizing Oculus Go for Performance (Oculus Blog 2018).
Down The Rabbit Hole w/ Oculus Quest Chris Pruett|3 May 2019.
The Quest's thumbstick controls are added. Controls work in the Go and Quest (they say). Not sure about all the rest HWs.

No drop-down list in html select in my Oculus Go browser.
Can't turn off AntiAliasing (the same FPS with and without AA). I had different frame delay earlier (22 June 2020). Firefox Reality (without AA) is faster but flickers more.

Protein "black holes" mystery? Many protein 3D PDB models have "holes" in amino sequences. Moving areas may not be visible on x-rays. The RCSB.org viewer ignores them and shows continuous ribbons (it is dashed to the right) but GLMol "shows" these holes (to the left).

A very big hole in 1HUW protein (atoms: 1347, hole: 129 - 155).
1FHA 1341 161 - 170, 4ZF7 2107 74 - 77, 9LDB 5245 many holes, 1FUS 773 65 - 67, 9PAP 1713 24 - 26, 6VAK 22781 87 - 97, 4CR2 80139 14-holes.


"MiniMol" molecule viewer     updated 15 Oct 2020