MolVR: Explore Molecular Complexity with UE4 and VR

Hi everyone,

I have been developing a test project MolVR for the past few days now. I am a scientist and my goal is to assess the benefits of combining UE4 and VR for Molecular Visualization and Big Data analysis (later phase). MolVR is an early stage prototype but I decided it might be time to let you know about the project and have some feedbacks and advices.

So without further due… You can retrieve the last version here:

Small documentation:

  • alt + enter] to toggle fullscreen and enter VR mode (my tests are done on an Oculus DK2).

  • Left mouse click + mouse X/Y]: rotate the view

  • Right mouse click + mouse Y]: go up and down

  • Up/Down/Left/Right arrows: respectively go forward/backward/left/right

  • l’ key: toggle on/off the Automatic Label Display of atoms (basically, if you are sufficiently close to an atom, it will show its identifiers)

  • m’ or ‘escape’ keys: show/hide the main menu

  • Load Examples in main menu to load different examples of molecular structures

  • Load from DB in main menu to retrieve molecular structures from a database using REST API / JSON. For the moment, you will only be able to load one of the 60 examples of that list: by typing its code (i.e. 1a00, 1acb, etc). In a later version, I plan to give access to the 115 000 available molecular structures

  • Color Mapping in main menu is used to highlight different properties of a molecule. Atom CPK color code is the most common one. As ‘atoms’ are organized in blocks called ‘residues’, you can also color the structures to highlight those blocks with the Residue Groups option. And as ‘residues’ are linked together to form a single chain protein, you can see the distinct ‘chains’ of proteins in an assembly with the Chains ID option. BFactor is a measure of uncertainty on the atom position, whereas Local Density represents the quantity of atoms inside a small radius. Other LDs gives an insight on the local composition of neutral (hydrophob) and charged residues (cationic + and anionic -).

  • d’ key to toggle on/off the Depth of Field. The focus distance can be changed by pressing

  • shift + up arrow] and shift + down arrow] to respectively increase and lower the focal distance

  • shift + left arrow] and shift + right arrow] to respectively lower and increase the focal region
    PS: I found out that the step value is too low so I’ll have to increase it…

  • s’ key to toggle on/off the Skylight (main light)

  • b’ key to toggle on/off Spot Light tied to the character

As a base reference, if you have a gtx 970, you should be at 75 fps in VR mode for the first examples, but the last ones are bigger molecules and unless you have a 980 or sli, I expect that you will scale down to 37.5 fps


  • MolVR uses DFAO during runtime to improve the visualization of depth
  • The submenus Representation / MeshQuality/ Materials / Settings although visible are not yet activated


MolVR Screenshot:

Really cool idea! Navigation and scale could be done differently in VR as it’s not entirely intuitive IMO. Also the settings need better tweaking because even on an overclocked Titan X the larger molecules lag.

Very curious where you will take this.

Thanks getnamo for your feedback :slight_smile:

Navigation and scale:

  • I wanted something similar to what we have with common Molecular Visualization softwares. But yes, I feel that I should do things differently; and at the very least all translations/rotations should be controllable with only the mouse
  • I am also a Leap Motion user, so … I really want to give it a try ! The idea to see some hands manipulating atoms/molecules in a Virtual World is quite fun ! Imagine “opening” molecular complexes with those hands to see the contact interfaces and inside ? And of course, the possibility to manually “dock” two molecules together… that’s something I would really wish to see and that seems feasible. I imagine VR gloves with Haptic feedbacks (unavailable but some are plans for Q2 2016 !) would even give a spectacular and insightful feeling when docking those molecules

For the lag:

  • I plan to use LOD for the spheres and anyhow the quality of mesh will be customizable, as well as materials. For the moment I use shared Dynamic Materials so I can easily change color mapping (often needed during visualization), but I understand it renders more slowly ? I’ll have to do some tests.
  • I have not yet set the max draw distance for the spheres and this might changes things a lot… !
  • Perhaps some tweaking regarding DFAO & distance of occlusion…

Next phases:

  • add functionalities & representations common to molecular visualization
  • leap motion :slight_smile:
  • UE physics engine to animate those molecules: they are not static objects and they fluctuate from that average position depending on the environment and partners


I am really excited about your work here! I would like to see your software developed so that it would simulate molecular orbitals and molecular interactions such as hydrogen bonding. Then I would like to see a biologic simulation of a lipid bilayer large enough to “nicely” surround a dopamine 2 receptor along with associated G-protein. Then I would like to see how that interacts with antipsychotic agents and in particular partial agonists. May have to throw in an environment of water molecules, the usual ions, and others with enough kinetic energy so that they bounce around realistically.