ReTiNaVR Wiki

W**elcome to the ReTiNaVR Wiki!**This project is a VR software for teaching, research and outreach in molecular physics and 2D materials.

At the atomic scale, correlation between form and function is key. Electron transport is no exception to the rule. Any subtle change in lattice structure, defect or external contamination can change radically the transmission of a given low-dimensional system. However, making accurate theoretical predictions of the transport properties of a single configuration can be very computation heavy, which prohibits rapid testing. This ultimately makes the development of an intuition for the phenomena involved at the atomic-scale an extremely slow proces.

The goal of this project is to leverage the interactivity and intuitivity of VR, to allow the user to experiment and obtain a grasp of how physical properties of 2D materials and nano-scaled structures
evolve with geometry and various interaction. Ultimately, we would like to offer a comprehensive package of tools to learn and research in electronic transport, photonics, and molecular mechanics.

The software is divided in two sub programs. The VR part and graphics are handled by UE4, while the actual physics calculation happen on a python server. We will refer to these as the VR part and Physics part respectively. The two modules are connected using TCP/IP protocole.

## Requirements

Hardware requirements:

* a HTC Vive (this is currently the only supported VR equipment.)
* a computer capable of running VR, typically a stationnary computer with i7, and a NVDIA GTX 1060 graphics card. [1](link to constructor page for more details on minimum specs)
* A CUDA enabled GPU if you want to run transport in GPU

Software requirements:

* Windows 10
* python3. We recommend the Anaconda distribution as it comes with a handful of usefull libraries, in use in this project.
* numpy (for python)
* ASE (https://wiki.fysik.dtu.dk/ase/index.html) (for python)
* matplotlib (for python)
* plotly (for python)
* CUDA toolkit (if you want to run transport on GPU. Might not work on all platforms) [2]
* cupy (if you want to run transport on GPU. Might not work on all platforms) (for python)

If you intend on editing the code for the VR part you also need to install:

* Unreal Engine 4.20.3 [3]
* Object Deliverer for UE 4.20.3 (available on the engine store in the Epic Games Launcher that comes with Unreal Engine)

## Getting started

### Quick start

To simply use the software, download the latest Demo build from the following link on itch.io ([4]) and then unzip the project. A good practice is to first launch from the command prompt .\Demo0.#.#\VRmolecularBuilderV2\Content\ExternalScripts\TCPPhysics.py to check that it doesn't crash on launch. This will ensure that you have installed all libraries correctly. Else it will fail and tell you which library is missing. If all goes well, you should simply see the following message appear in a loop: "opening connection
<class 'ConnectionRefusedError'>"

Then you can launch the software from the executable .\Demo0.#.#\VRMolecularBuilderV2.exe

*Note*:*To launch a program from the command prompt, navigate to* *the required folder, and in the adress bar of windows explorer, type cmd and then enter. This will open the command prompt window in the right folder. Then simply type* python TCPPhysics.py

*Note: The game currently comes with no relaxation script attached as we are currently using code that we do not have the rights to share (GULP). You can easily obtain an academics license for GULP on their website and uncomment the corresponding line in TCPPhysics.py to get it up and running. We are working on an open source solution.*

### Editing the code

To solely mess with the physics part, to use your favourite transport script for instance, simply navigate to the .\Demo0.#.#\VRmolecularBuilderV2\Content\ExternalScripts\ folder and open the scripts in your favourite python IDE.

If you want to contribute to the project as a whole, clone the GitHub repository [5] and launch the uproject file in Unreal Engine.

## Code Documentation

* VR part
* Physics part
* Electronic transport
* Relaxation
* Where To Find What ?
* Q&A