From 88f36a8fa2fb4849663c5a90973aa9124a40d43c Mon Sep 17 00:00:00 2001 From: mark wonnacott Date: Wed, 8 Apr 2026 15:51:29 +0200 Subject: [PATCH] change VR to XR where appropriate --- ...reen-UI.png => XR-client-on-screen-UI.png} | Bin ...diagram.png => XR_client_flow_diagram.png} | Bin ...connect.mp4 => in-xr-menu_autoconnect.mp4} | Bin ...> in-xr-menu_change-interaction-scale.mp4} | Bin ...=> in-xr-menu_change-interaction-type.mp4} | Bin ...4 => in-xr-menu_change-name-and-color.mp4} | Bin ...u_discover.mp4 => in-xr-menu_discover.mp4} | Bin ...raction.mp4 => in-xr-menu_interaction.mp4} | Bin ...-menu_manual.mp4 => in-xr-menu_manual.mp4} | Bin ...u_move-box.mp4 => in-xr-menu_move-box.mp4} | Bin ...vr-menu_pause.mp4 => in-xr-menu_pause.mp4} | Bin ...n-vr-menu_play.mp4 => in-xr-menu_play.mp4} | Bin ...vr-menu_reset.mp4 => in-xr-menu_reset.mp4} | Bin ...size-box.mp4 => in-xr-menu_resize-box.mp4} | Bin ...n.mp4 => in-xr-menu_switch-simulation.mp4} | Bin ...en-menu.png => in-xr_full-screen-menu.png} | Bin ...-menu.png => in-xr_left-handheld-menu.png} | Bin ...n-vr_main-menu.png => in-xr_main-menu.png} | Bin ...menu.png => in-xr_right-handheld-menu.png} | Bin .../{in-vr_menus.pptx => in-xr_menus.pptx} | Bin source/concepts/applications.rst | 16 +- source/concepts/architecture.rst | 18 +- source/concepts/base-protocol.rst | 6 +- source/conf.py | 4 +- source/highlights.rst | 8 +- source/index.rst | 10 +- source/installation.rst | 46 ++--- source/tutorials/basics.rst | 4 +- source/tutorials/fundamentals.rst | 2 +- source/tutorials/mdanalysis.rst | 8 +- source/tutorials/tutorials.rst | 8 +- .../tutorials/{vrclient.rst => xrclient.rst} | 176 +++++++++--------- 32 files changed, 153 insertions(+), 153 deletions(-) rename source/_static/{VR-client-on-screen-UI.png => XR-client-on-screen-UI.png} (100%) rename source/_static/{VR_client_flow_diagram.png => XR_client_flow_diagram.png} (100%) rename source/_static/{in-vr-menu_autoconnect.mp4 => in-xr-menu_autoconnect.mp4} (100%) rename source/_static/{in-vr-menu_change-interaction-scale.mp4 => in-xr-menu_change-interaction-scale.mp4} (100%) rename source/_static/{in-vr-menu_change-interaction-type.mp4 => in-xr-menu_change-interaction-type.mp4} (100%) rename source/_static/{in-vr-menu_change-name-and-color.mp4 => in-xr-menu_change-name-and-color.mp4} (100%) rename source/_static/{in-vr-menu_discover.mp4 => in-xr-menu_discover.mp4} (100%) rename source/_static/{in-vr-menu_interaction.mp4 => in-xr-menu_interaction.mp4} (100%) rename source/_static/{in-vr-menu_manual.mp4 => in-xr-menu_manual.mp4} (100%) rename source/_static/{in-vr-menu_move-box.mp4 => in-xr-menu_move-box.mp4} (100%) rename source/_static/{in-vr-menu_pause.mp4 => in-xr-menu_pause.mp4} (100%) rename source/_static/{in-vr-menu_play.mp4 => in-xr-menu_play.mp4} (100%) rename source/_static/{in-vr-menu_reset.mp4 => in-xr-menu_reset.mp4} (100%) rename source/_static/{in-vr-menu_resize-box.mp4 => in-xr-menu_resize-box.mp4} (100%) rename source/_static/{in-vr-menu_switch-simulation.mp4 => in-xr-menu_switch-simulation.mp4} (100%) rename source/_static/{in-vr_full-screen-menu.png => in-xr_full-screen-menu.png} (100%) rename source/_static/{in-vr_left-handheld-menu.png => in-xr_left-handheld-menu.png} (100%) rename source/_static/{in-vr_main-menu.png => in-xr_main-menu.png} (100%) rename source/_static/{in-vr_right-handheld-menu.png => in-xr_right-handheld-menu.png} (100%) rename source/assets/{in-vr_menus.pptx => in-xr_menus.pptx} (100%) rename source/tutorials/{vrclient.rst => xrclient.rst} (78%) diff --git a/source/_static/VR-client-on-screen-UI.png b/source/_static/XR-client-on-screen-UI.png similarity index 100% rename from source/_static/VR-client-on-screen-UI.png rename to source/_static/XR-client-on-screen-UI.png diff --git a/source/_static/VR_client_flow_diagram.png b/source/_static/XR_client_flow_diagram.png similarity index 100% rename from source/_static/VR_client_flow_diagram.png rename to source/_static/XR_client_flow_diagram.png diff --git a/source/_static/in-vr-menu_autoconnect.mp4 b/source/_static/in-xr-menu_autoconnect.mp4 similarity index 100% rename from source/_static/in-vr-menu_autoconnect.mp4 rename to source/_static/in-xr-menu_autoconnect.mp4 diff --git a/source/_static/in-vr-menu_change-interaction-scale.mp4 b/source/_static/in-xr-menu_change-interaction-scale.mp4 similarity index 100% rename from source/_static/in-vr-menu_change-interaction-scale.mp4 rename to source/_static/in-xr-menu_change-interaction-scale.mp4 diff --git a/source/_static/in-vr-menu_change-interaction-type.mp4 b/source/_static/in-xr-menu_change-interaction-type.mp4 similarity index 100% rename from source/_static/in-vr-menu_change-interaction-type.mp4 rename to source/_static/in-xr-menu_change-interaction-type.mp4 diff --git a/source/_static/in-vr-menu_change-name-and-color.mp4 b/source/_static/in-xr-menu_change-name-and-color.mp4 similarity index 100% rename from source/_static/in-vr-menu_change-name-and-color.mp4 rename to source/_static/in-xr-menu_change-name-and-color.mp4 diff --git a/source/_static/in-vr-menu_discover.mp4 b/source/_static/in-xr-menu_discover.mp4 similarity index 100% rename from source/_static/in-vr-menu_discover.mp4 rename to source/_static/in-xr-menu_discover.mp4 diff --git a/source/_static/in-vr-menu_interaction.mp4 b/source/_static/in-xr-menu_interaction.mp4 similarity index 100% rename from source/_static/in-vr-menu_interaction.mp4 rename to source/_static/in-xr-menu_interaction.mp4 diff --git a/source/_static/in-vr-menu_manual.mp4 b/source/_static/in-xr-menu_manual.mp4 similarity index 100% rename from source/_static/in-vr-menu_manual.mp4 rename to source/_static/in-xr-menu_manual.mp4 diff --git a/source/_static/in-vr-menu_move-box.mp4 b/source/_static/in-xr-menu_move-box.mp4 similarity index 100% rename from source/_static/in-vr-menu_move-box.mp4 rename to source/_static/in-xr-menu_move-box.mp4 diff --git a/source/_static/in-vr-menu_pause.mp4 b/source/_static/in-xr-menu_pause.mp4 similarity index 100% rename from source/_static/in-vr-menu_pause.mp4 rename to source/_static/in-xr-menu_pause.mp4 diff --git a/source/_static/in-vr-menu_play.mp4 b/source/_static/in-xr-menu_play.mp4 similarity index 100% rename from source/_static/in-vr-menu_play.mp4 rename to source/_static/in-xr-menu_play.mp4 diff --git a/source/_static/in-vr-menu_reset.mp4 b/source/_static/in-xr-menu_reset.mp4 similarity index 100% rename from source/_static/in-vr-menu_reset.mp4 rename to source/_static/in-xr-menu_reset.mp4 diff --git a/source/_static/in-vr-menu_resize-box.mp4 b/source/_static/in-xr-menu_resize-box.mp4 similarity index 100% rename from source/_static/in-vr-menu_resize-box.mp4 rename to source/_static/in-xr-menu_resize-box.mp4 diff --git a/source/_static/in-vr-menu_switch-simulation.mp4 b/source/_static/in-xr-menu_switch-simulation.mp4 similarity index 100% rename from source/_static/in-vr-menu_switch-simulation.mp4 rename to source/_static/in-xr-menu_switch-simulation.mp4 diff --git a/source/_static/in-vr_full-screen-menu.png b/source/_static/in-xr_full-screen-menu.png similarity index 100% rename from source/_static/in-vr_full-screen-menu.png rename to source/_static/in-xr_full-screen-menu.png diff --git a/source/_static/in-vr_left-handheld-menu.png b/source/_static/in-xr_left-handheld-menu.png similarity index 100% rename from source/_static/in-vr_left-handheld-menu.png rename to source/_static/in-xr_left-handheld-menu.png diff --git a/source/_static/in-vr_main-menu.png b/source/_static/in-xr_main-menu.png similarity index 100% rename from source/_static/in-vr_main-menu.png rename to source/_static/in-xr_main-menu.png diff --git a/source/_static/in-vr_right-handheld-menu.png b/source/_static/in-xr_right-handheld-menu.png similarity index 100% rename from source/_static/in-vr_right-handheld-menu.png rename to source/_static/in-xr_right-handheld-menu.png diff --git a/source/assets/in-vr_menus.pptx b/source/assets/in-xr_menus.pptx similarity index 100% rename from source/assets/in-vr_menus.pptx rename to source/assets/in-xr_menus.pptx diff --git a/source/concepts/applications.rst b/source/concepts/applications.rst index e3c2a660..64c6e38d 100644 --- a/source/concepts/applications.rst +++ b/source/concepts/applications.rst @@ -31,7 +31,7 @@ embody themselves with "avatars" and manipulate objects (e.g repositioning the simulation box in MD). Clients can broadcast avatar representations of themselves, the extent -of their walkable VR space, and receive a server suggestion about how to +of their walkable XR space, and receive a server suggestion about how to position themselves relatives to other clients e.g. :ref:`radially oriented ` for distributed setups. @@ -53,10 +53,10 @@ The multi-user application distinguishes between two coordinate spaces: * The **server space** is the coordinate system of the shared virtual space. The 3d poses of avatars, the simulation box, and any other objects are exchanged in this coordinate space. The characteristics are chosen to match - Unity's VR: left-handed, with Y-up, lengths expressed in meters, and the origin + Unity's XR: left-handed, with Y-up, lengths expressed in meters, and the origin at floor level. * A **client space** is the local coordinate space of a given client, and which may differ from - server space. For example, in VR the coordinate system may be fixed in physical + server space. For example, in XR the coordinate system may be fixed in physical space such that it can't be changed directly to match server space. The server is not aware of this and it is the client's responsibility to transform coordinates into server space before communicating them. @@ -81,7 +81,7 @@ Avatars ####### Users may share their presence in the virtual space by creating and continuously -updating an "avatar". For example, in the iMD-VR application, each VR client +updating an "avatar". For example, in the iMD-XR application, each XR client shares their head and hand positions for others to see. Avatars are exchanged via the shared state as a dictionary under keys of the form @@ -111,7 +111,7 @@ a Struct with the following keys: .. note:: - The avatar description currently only supports VR controllers. See `issue #97 in + The avatar description currently only supports controllers. See `issue #97 in nanover-server-py `_ for hand-tracking support. @@ -142,7 +142,7 @@ In summary, an avatar is structured as such: Play area ######### -A client, typically in the case of a VR client, can share a +A client, typically in the case of an XR client, can share a boundary within which that user can safely move. This can be visualised on other clients and is especially useful for colocated setups, or to see the results of the :ref:`radial orient ` function for @@ -255,7 +255,7 @@ the server space as they choose. .. warning:: Any client can add user-origin keys. If used without due care and - responsibility, a VR user could get very nauseous. + responsibility, an XR user could get very nauseous. As a summary, the user origin is specified as follows in the shared state: @@ -817,7 +817,7 @@ Under that key, the value is a Struct with the following keys: * ``positions``: the coordinates of the interaction's origin in simulation space. This is typically a position attached to the controller of the user in - VR, but it does not have to be. By default, this is `[0, 0, 0]`. + XR, but it does not have to be. By default, this is `[0, 0, 0]`. * ``particles``: the indices of the affected particles in the array of particles used by the :ref:`trajectory application `. If the order in this array does not match the order used by the simulation diff --git a/source/concepts/architecture.rst b/source/concepts/architecture.rst index 231e0438..3d56b411 100644 --- a/source/concepts/architecture.rst +++ b/source/concepts/architecture.rst @@ -13,7 +13,7 @@ Overview ######## NanoVer is a set of protocols, libraries and programs for performing interactive simulations, -with a focus on virtual reality (VR). +with a focus on extended reality (XR). At the highest level, NanoVer uses a client/server model, in which a frontend application connects to a server that runs a simulation in real-time, establishing an interactive session. @@ -25,11 +25,11 @@ There a several good reasons for using this model: molecular simulation for a galaxy simulation? Just change the server! * **Scientific software is often written in different programming languages to those that are best suited for visualisation**. For example, most of our - molecular dynamics simulations run using Python, while our VR application + molecular dynamics simulations run using Python, while our XR application is written in C#. * **The server can be running wherever it is convenient**, be it on your desktop, a cluster behind a firewall or on a cloud service, while multiple frontend - applications can connect simultaneously, such as a VR app, + applications can connect simultaneously, such as an XR app, smartphone app, or a Jupyter notebook. | @@ -69,7 +69,7 @@ and the commands. that contain the updated values of each key that has changed. * **The shared state** is a more general store of data, also represented by a dictionary of string keys, that is shared and updated by all clients. For instance, multi-user collaboration is implemented by each client updating the - shared state with the positions of their VR headsets and controllers so that they can be visualised in real time by + shared state with the positions of their XR headsets and controllers so that they can be visualised in real time by other connected clients. This is also where the interactive biasing potentials of iMD are added and updated. Updates are sent as "state" messages that contain the values of each key that has changed, and a list of keys that have been deleted. @@ -86,12 +86,12 @@ in real time. ---- -############ -VR Front End -############ +######### +XR Client +######### -The VR front end app, :ref:`NanoVer iMD-VR `, intended for 3D visualisation and intuitive spatial -iMD (iMD-VR), is a `distinct Unity/C# codebase `_ that follows the +The XR front end client, :ref:`NanoVer iMD-XR `, intended for 3D visualisation and intuitive spatial +iMD (iMD-XR), is a `distinct Unity/C# codebase `_ that follows the :ref:`application conventions ` laid out in this documentation. | diff --git a/source/concepts/base-protocol.rst b/source/concepts/base-protocol.rst index 49139c24..9f088ce2 100644 --- a/source/concepts/base-protocol.rst +++ b/source/concepts/base-protocol.rst @@ -16,8 +16,8 @@ Overview Standard network communication between client and server in NanoVer is divided into three parts: **command requests and responses**, **state updates**, and **simulation -updates**. These are used together, for example, to support VR iMD by providing live -simulation updates to the VR client, which itself sends interactions as state updates, +updates**. These are used together, for example, to support XR iMD by providing live +simulation updates to the XR client, which itself sends interactions as state updates, and can request simulation resets or pauses via commands. **Command requests and responses** allow the client to request actions or information @@ -25,7 +25,7 @@ from the server, such as pausing or resetting the active simulation, or retrievi list of available commands. This is also known as a Remote Procedure Call (RPC). **State updates** provide continuous information about the changes occurring to a -shared dictionary used for synchronising arbitrary data between clients. In the iMD-VR +shared dictionary used for synchronising arbitrary data between clients. In the iMD-XR case, this is used for sharing the head and hand positions of all users, and for the interactive biasing potentials they wish to apply to the simulation. diff --git a/source/conf.py b/source/conf.py index d448a312..b920a73d 100644 --- a/source/conf.py +++ b/source/conf.py @@ -89,8 +89,8 @@ def get_git_commit_count(repo_path="."): html_css_files = ['custom.css'] html_meta = {"description": "Documentation for the NanoVer application", - "keywords": "nanover, imd, virtual reality, vr, molecular simulation," - "documentation, imd-vr, intangible realities lab, irl," + "keywords": "nanover, imd, virtual reality, extended reality, vr, xr, molecular simulation," + "documentation, imd-vr, imd-xr, intangible realities lab, irl," "interactive molecular dynamics, molecular dynamics"} html_context = { diff --git a/source/highlights.rst b/source/highlights.rst index 11a1e169..682f7e27 100644 --- a/source/highlights.rst +++ b/source/highlights.rst @@ -5,11 +5,11 @@ Highlights ========== ############################# -Interact with molecules in VR +Interact with molecules in XR ############################# NanoVer lets you **enter virtual reality and steer molecular dynamics simulations in real time**. -Launch your molecular simulation through the NanoVer server and use your VR controllers to explore rare events such as conformational changes and ligand binding. +Launch your molecular simulation through the NanoVer server and use your XR controllers to explore rare events such as conformational changes and ligand binding. To get up and running, head to :ref:`Installation & Getting Started `. @@ -46,7 +46,7 @@ Use python to control molecular representations, check out the `tutorial. `_ .. image:: /_static/Renderers.gif - :alt: A gif showing a protein within the NanoVer VR environment cycling through several visual states. + :alt: A gif showing a protein within the NanoVer XR environment cycling through several visual states. :align: center :scale: 60% @@ -61,7 +61,7 @@ Develop with NanoVer **Contribute to the code** or **develop your own custom applications**. * `Get the source code for the server `_ -* `Get the source code of the VR client `_ +* `Get the source code of the XR client `_ NanoVer is distributed under the `MIT `_ license. diff --git a/source/index.rst b/source/index.rst index 4fcbe076..f43e5d25 100644 --- a/source/index.rst +++ b/source/index.rst @@ -4,8 +4,8 @@ Welcome to NanoVer's documentation! NanoVer is a free, open-source and flexible software that can be used as: -(1) A **client-server** application for **collaborative interactive molecular dynamics simulations in virtual reality** (iMD-VR). -(2) A **framework** for building **multi-user virtual reality applications** for molecular systems. +(1) A **client-server** application for **collaborative interactive molecular dynamics simulations in extended reality** (iMD-XR). +(2) A **framework** for building **multi-user extended reality applications** for molecular systems. NanoVer is distributed under the `MIT `_ license. @@ -19,9 +19,9 @@ As a client-server application for **interactive molecular dynamics** (iMD), Nan facilitate user interaction with the molecular system. This can be achieved using: * A **python client**: a python script, e.g. a Jupyter notebook. Check out the :ref:`tutorials ` for further information. - * A **VR client**: an instance of the NanoVer iMD-VR program - (see the `latest releases here `_) that enables a user to - visualise and interact with the real-time MD simulation in VR. + * A **XR client**: an instance of the NanoVer iMD-XR program + (see the `latest releases here `_) that enables a user to + visualise and interact with the real-time MD simulation in XR. ---- diff --git a/source/installation.rst b/source/installation.rst index be0a7e22..ba97761a 100644 --- a/source/installation.rst +++ b/source/installation.rst @@ -7,7 +7,7 @@ Installation & Getting Started NanoVer consists of two components: the Python-based libraries for running simulations, and the Unity3D libraries and applications for visualising & interacting with simulations -in VR. +in XR. .. contents:: Contents :depth: 2 @@ -23,8 +23,8 @@ User Installation Guide This guide contains the information required to get NanoVer up and running on your computer! This includes creating a conda environment and installing the server, which is required for setting up and running simulations. You -then have the option to install the iMD-VR client, which you can use for visualising and interacting with your simulations -inside VR. +then have the option to install the iMD-XR client, which you can use for visualising and interacting with your simulations +inside XR. .. _creating_conda_env: @@ -90,29 +90,29 @@ In this case, we recommend creating a new conda environment and reinstalling :co ---- -.. _installing_imdvr_client: +.. _installing_imdxr_client: -Installing the iMD-VR client +Installing the iMD-XR client ############################ -To use NanoVer iMD-VR, you have two options: +To use NanoVer iMD-XR, you have two options: -* **Conda installation of the NanoVer iMD-VR package**, see :ref:`conda_installation_VR_client`. +* **Conda installation of the NanoVer iMD-XR package**, see :ref:`conda_installation_XR_client`. *Please note that this installs the Windows build of the package, thus is not compatible with MacOS or Linux.* -* **Download the latest release of the NanoVer iMD-VR executable**, see :ref:`download_latest_release_VR_client`. +* **Download the latest release of the NanoVer iMD-XR executable**, see :ref:`download_latest_release_XR_client`. This directory includes: (a) the Windows build of the package, and (b) the standalone apk for installation on your Meta Quest headset. *If you are using MacOS or Linux, you must run the program locally on your Meta Quest headset using the standalone apk.* .. admonition:: Important - For more information on how to choose your installation method based on your VR setup and operating system, - please check out the :ref:`choosing your iMD-VR setup` section on the NanoVer iMD-VR + For more information on how to choose your installation method based on your XR setup and operating system, + please check out the :ref:`choosing your iMD-XR setup` section on the NanoVer iMD-XR tutorial page. -.. _conda_installation_VR_client: +.. _conda_installation_XR_client: Conda installation ~~~~~~~~~~~~~~~~~~ @@ -126,13 +126,13 @@ If you have not already created a NanoVer conda environment, please refer to conda activate nanover -#. Install the NanoVer iMD-VR package: +#. Install the NanoVer iMD-XR package: .. code:: bash conda install -c irl nanover-imd-vr -#. Set up your VR headset. +#. Set up your XR headset. #. To start the program, run the following command: @@ -140,22 +140,22 @@ If you have not already created a NanoVer conda environment, please refer to nanover-imd-vr -The page for the Conda package can be found here: ``_. +The page for the Conda package can be found here: ``_. -.. _download_latest_release_VR_client: +.. _download_latest_release_XR_client: Download the latest release ~~~~~~~~~~~~~~~~~~~~~~~~~~~ -#. Download the latest release from the git repo `here `_. +#. Download the latest release from the git repo `here `_. #. Extract the downloaded zip file. -#. The next steps depend on your chosen VR setup: +#. The next steps depend on your chosen XR setup: -.. _using_pc-vr: +.. _using_pc-xr: -.. dropdown:: **Using PC-VR** (wireless or tethered) +.. dropdown:: **Using PC-XR** (wireless or tethered) This includes `Meta Quest Link & AirLink `_, @@ -175,7 +175,7 @@ Download the latest release #. Connect your headset to your computer with a cable and sideload the ``nanover-imd.apk`` from the extracted zip file onto your device. You can use `SideQuest `_ or the `Meta Quest Developer Hub `_ for this. - #. Inside the VR headset, open Apps and filter ``Unknown Sources`` from the drop-down menu in the top right corner. + #. Inside the XR headset, open Apps and filter ``Unknown Sources`` from the drop-down menu in the top right corner. Locate and run ``NanoVer IMD``. @@ -199,7 +199,7 @@ Download the latest release .. admonition:: Key definition - \ **Tethered**: using a cable to connect your VR headset to your computer. + \ **Tethered**: using a cable to connect your XR headset to your computer. ---- @@ -218,7 +218,7 @@ We refer developers to the relevant code bases: `_ in the README of the `nanover-server-py repository `_ on GitHub. -* If you want to customise the NanoVer iMD-VR Unity3D application, instructions for obtaining the source code are available - in the `nanover-imd-vr repository `_ on GitHub . +* If you want to customise the NanoVer iMD-XR Unity3D application, instructions for obtaining the source code are available + in the `nanover-imd-xr repository `_ on GitHub . | diff --git a/source/tutorials/basics.rst b/source/tutorials/basics.rst index 71ba672d..4c87a7c3 100644 --- a/source/tutorials/basics.rst +++ b/source/tutorials/basics.rst @@ -34,7 +34,7 @@ of the GitHub repository: * `recording_and_replaying`: An introductory notebook that demonstrates how NanoVer can be used to record and replay iMD simulations. * `multiple_simulations`: This notebook demonstrates how to load and run multiple simulation files using a single OmniRunner server, - providing default visualizations, and details how to switch between them using the Jupyter notebook and VR interfaces. + providing default visualizations, and details how to switch between them using the Jupyter notebook and XR interfaces. * `nanover_nglview`: A notebook that assumes a server is already running, and visualises it with `NGLView `_. * `runner_GUI`: A notebook that demonstrates how to use the NanoVer GUI to run a server. @@ -243,7 +243,7 @@ For further information about these options, use the :ref:`help function `_ folder of the GitHub repository. It contains: -* `mdanalysis_lsd`: A notebook that demonstrates how to import a pdb into MDAnalysis and visualise this structure in VR, +* `mdanalysis_lsd`: A notebook that demonstrates how to import a pdb into MDAnalysis and visualise this structure in XR, including changing the visualisation of different parts of the system, e.g. protein/ligands/lipids, using MDAnalysis selections. * `mdanalysis_trajectory`: A notebook that demonstrates how to import a trajectory into MDAnalysis from the topology - (pdb) and trajectory (dcd) files and show this in VR. Learn how to hook up python commands such as play/pause/reset to - the corresponding buttons on the handheld menu in the VR application. + (pdb) and trajectory (dcd) files and show this in XR. Learn how to hook up python commands such as play/pause/reset to + the corresponding buttons on the handheld menu in the XR application. * `mdanalysis_nanover_recording`: A notebook that details how to use MDAnalysis to extract data from an iMD simulation recorded with NanoVer, and highlights some of the benefits of recording trajectories using the in-built recording functionality of NanoVer. diff --git a/source/tutorials/tutorials.rst b/source/tutorials/tutorials.rst index 50026f83..174e00ca 100644 --- a/source/tutorials/tutorials.rst +++ b/source/tutorials/tutorials.rst @@ -23,15 +23,15 @@ sets of tutorials: :maxdepth: 1 basics.rst - vrclient.rst + xrclient.rst fundamentals.rst ase.rst mdanalysis.rst openmm.rst -**Our tutorials can be used in conjunction with our iMD-VR application**, -`NanoVer iMD-VR `_, see the instructions for -:ref:`installing_imdvr_client`. +**Our tutorials can be used in conjunction with our iMD-XR application**, +`NanoVer iMD-XR `_, see the instructions for +:ref:`installing_imdxr_client`. .. important:: Our tutorials are provided as `Jupyter notebooks `_, and thus require Jupyter to run. diff --git a/source/tutorials/vrclient.rst b/source/tutorials/xrclient.rst similarity index 78% rename from source/tutorials/vrclient.rst rename to source/tutorials/xrclient.rst index eb7e8c22..55d80826 100644 --- a/source/tutorials/vrclient.rst +++ b/source/tutorials/xrclient.rst @@ -1,19 +1,19 @@ - .. _vr-client-tutorial: + .. _xr-client-tutorial: ============== -NanoVer iMD-VR +NanoVer iMD-XR ============== -You can use the `NanoVer iMD-VR application `_ -to **incorporate VR into your workflow**, including: +You can use the `NanoVer iMD-XR application `_ +to **incorporate XR into your workflow**, including: -* visualising molecular systems in VR, including real-time MD simulations, recorded trajectories, and static structures -* interacting with real-time molecular simulations using VR controllers -* joining together with others for multi-person sessions in VR +* visualising molecular systems in XR, including real-time MD simulations, recorded trajectories, and static structures +* interacting with real-time molecular simulations using XR controllers +* joining together with others for multi-person sessions in XR -To install the NanoVer iMD-VR application, go to :ref:`installation`. -For help choosing your VR setup, see :ref:`choosing_setup_iMD-VR`. -For guidance on using the NanoVer iMD-VR application, see :ref:`navigatingnanoverinvr`. +To install the NanoVer iMD-XR application, go to :ref:`installation`. +For help choosing your XR setup, see :ref:`choosing_setup_iMD-XR`. +For guidance on using the NanoVer iMD-XR application, see :ref:`navigatingnanoverinxr`. .. contents:: Contents :depth: 2 @@ -21,41 +21,41 @@ For guidance on using the NanoVer iMD-VR application, see :ref:`navigatingnanove ---- -.. _navigatingnanoverinvr: +.. _navigatingnanoverinxr: ######################## -Navigating NanoVer in VR +Navigating NanoVer in XR ######################## Introduction ############ -We call an instance of the NanoVer iMD-VR application an iMD-VR client, or simply a **VR client**. +We call an instance of the NanoVer iMD-XR application an iMD-XR client, or simply an **XR client**. This is different to a *python client*, which connects to a NanoVer server from a python script or Jupyter notebook. This distinction is important since the two types of client offer different functionalities. For example, *both* can connect to a NanoVer server to access simulation data, run commands such as play/pause/reset, & apply forces to the molecule system (interactive MD). -However, *only a VR client* allows you to visualise & interact with a simulation in VR, +However, *only an XR client* allows you to visualise & interact with a simulation in XR, and *only a python client* allows you to change the visualisation of the molecular system. .. admonition:: Key point - A **VR Client** or **iMD-VR client** is an instance of the NanoVer iMD-VR application that has connected to a NanoVer server. + An **XR Client** or **iMD-XR client** is an instance of the NanoVer iMD-XR application that has connected to a NanoVer server. | ---- -Your VR controllers +Your XR controllers ################### -Below are diagrams showing the positions of the VR controller buttons that you will use in NanoVer iMD-VR, +Below are diagrams showing the positions of the XR controller buttons that you will use in NanoVer iMD-XR, using the Meta Quest 2 controllers for demonstration. -These buttons are in similar positions on most common VR controllers, -but please refer to your VR headset's documentation if you cannot locate them. +These buttons are in similar positions on most common XR controllers, +but please refer to your XR headset's documentation if you cannot locate them. .. important:: - To press a button on a menu in VR, + To press a button on a menu in XR, **place the end of your controller on the button and click the trigger**. .. list-table:: @@ -84,22 +84,22 @@ but please refer to your VR headset's documentation if you cannot locate them. ---- -A typical iMD-VR workflow +A typical iMD-XR workflow ######################### -You should now have NanoVer iMD-VR and your VR setup ready to go! To begin, follow these steps: +You should now have NanoVer iMD-XR and your XR setup ready to go! To begin, follow these steps: #. **Start your NanoVer server** (see :ref:`basicsrunningaserver`) -#. **Setup your VR kit & open NanoVer iMD-VR** (see :ref:`installing_imdvr_client`) +#. **Setup your XR kit & open NanoVer iMD-XR** (see :ref:`installing_imdxr_client`) #. **Select your option for connecting to a Server**: using either the - :ref:`in-VR main menu` or - :ref:`desktop main menu` (PC-VR only) + :ref:`in-XR main menu` or + :ref:`desktop main menu` (PC-XR only) -#. **Check out your molecular simulation in VR!** See instructions for the - :ref:`VR controls and menus`, or check out the :ref:`tutorials ` page for - examples of how to integrate NanoVer iMD-VR into your workflow +#. **Check out your molecular simulation in XR!** See instructions for the + :ref:`XR controls and menus`, or check out the :ref:`tutorials ` page for + examples of how to integrate NanoVer iMD-XR into your workflow | @@ -119,9 +119,9 @@ Instead, you must use the "Manual" option. | -.. _vrclientinvrmenumainmenu: +.. _xrclientinxrmenumainmenu: -In-VR main menu +In-XR main menu ~~~~~~~~~~~~~~~ .. grid:: 2 @@ -129,14 +129,14 @@ In-VR main menu .. grid-item:: - .. figure:: /_static/in-vr_main-menu.png + .. figure:: /_static/in-xr_main-menu.png :align: center :width: 85% .. grid-item:: .. important:: - To press a button on the in-VR main menu, + To press a button on the in-XR main menu, **place the end of your right controller** on the button and **click the trigger**. @@ -148,7 +148,7 @@ Select from the dropdown options below to see the **video tutorials**: :widths: 40 60 :header-rows: 0 - * - .. video:: /_static/in-vr-menu_autoconnect.mp4 + * - .. video:: /_static/in-xr-menu_autoconnect.mp4 :width: 250 :height: 250 @@ -161,7 +161,7 @@ Select from the dropdown options below to see the **video tutorials**: :widths: 40 60 :header-rows: 0 - * - .. video:: /_static/in-vr-menu_discover.mp4 + * - .. video:: /_static/in-xr-menu_discover.mp4 :width: 250 :height: 250 @@ -175,7 +175,7 @@ Select from the dropdown options below to see the **video tutorials**: :widths: 40 60 :header-rows: 0 - * - .. video:: /_static/in-vr-menu_manual.mp4 + * - .. video:: /_static/in-xr-menu_manual.mp4 :width: 250 :height: 250 @@ -184,12 +184,12 @@ Select from the dropdown options below to see the **video tutorials**: | -.. _vrclientdesktopmenu: +.. _xrclientdesktopmenu: -Desktop main menu (PC-VR only) +Desktop main menu (PC-XR only) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -When you open the NanoVer iMD-VR application on your PC, you will see a small menu on the top left of your monitor with the +When you open the NanoVer iMD-XR application on your PC, you will see a small menu on the top left of your monitor with the below headings. In **Server**, you can connect to your NanoVer server. Select from the dropdown options below for further information and to browse other features: @@ -240,7 +240,7 @@ Select from the dropdown options below for further information and to browse oth +----------------------+---------------------------------------------------------------------------------------------+ | **Reset** | Reset the simulation to the starting positions. | +----------------------+---------------------------------------------------------------------------------------------+ - | **Reset Box** | Move and resize the box to the original dimensions and position in the VR space. | + | **Reset Box** | Move and resize the box to the original dimensions and position in the XR space. | +----------------------+---------------------------------------------------------------------------------------------+ @@ -255,14 +255,14 @@ Select from the dropdown options below for further information and to browse oth | | compatible with players using HTC base | | | stations. | +--------------------------------+----------------------------------------+ - | **Reset Radial Orientation** | Orient players' VR play spaces into a | + | **Reset Radial Orientation** | Orient players' XR play spaces into a | | | mandala. | +--------------------------------+----------------------------------------+ - | **Radial Displacement** | Slide players' VR play spaces inwards | + | **Radial Displacement** | Slide players' XR play spaces inwards | | | and outwards from the centre of the | | | shared space. | +--------------------------------+----------------------------------------+ - | **Rotation Correction** | Adjust the rotation of players' VR | + | **Rotation Correction** | Adjust the rotation of players' XR | | | play spaces to align with the shared | | | space. | +--------------------------------+----------------------------------------+ @@ -293,13 +293,13 @@ Select from the dropdown options below for further information and to browse oth ---- -.. _vrclientvrcontrolsandmenus: +.. _xrclientxrcontrolsandmenus: -VR controls & menus +XR controls & menus ################### Once you have connected to a server, you can visualize & interact with your simulation. -You now have access to your VR controls & several menus: +You now have access to your XR controls & several menus: * :ref:`insimulationcontrols` @@ -325,7 +325,7 @@ Select from the dropdown options below to see the **video tutorials**: :widths: 40 60 :header-rows: 0 - * - .. video:: /_static/in-vr-menu_interaction.mp4 + * - .. video:: /_static/in-xr-menu_interaction.mp4 :width: 250 :height: 250 @@ -339,7 +339,7 @@ Select from the dropdown options below to see the **video tutorials**: :widths: 40 60 :header-rows: 0 - * - .. video:: /_static/in-vr-menu_move-box.mp4 + * - .. video:: /_static/in-xr-menu_move-box.mp4 :width: 250 :height: 250 @@ -352,7 +352,7 @@ Select from the dropdown options below to see the **video tutorials**: :widths: 40 60 :header-rows: 0 - * - .. video:: /_static/in-vr-menu_resize-box.mp4 + * - .. video:: /_static/in-xr-menu_resize-box.mp4 :width: 250 :height: 250 @@ -365,7 +365,7 @@ Select from the dropdown options below to see the **video tutorials**: :widths: 40 60 :header-rows: 0 - * - .. video:: /_static/in-vr-menu_change-interaction-scale.mp4 + * - .. video:: /_static/in-xr-menu_change-interaction-scale.mp4 :width: 250 :height: 250 @@ -389,7 +389,7 @@ Here you can adjust aspects of your interaction with the molecules, such as: .. grid-item:: - .. figure:: /_static/in-vr_right-handheld-menu.png + .. figure:: /_static/in-xr_right-handheld-menu.png :align: center :width: 65% @@ -408,7 +408,7 @@ Open the dropdown below to see the **video tutorial**: :widths: 40 60 :header-rows: 0 - * - .. video:: /_static/in-vr-menu_change-interaction-type.mp4 + * - .. video:: /_static/in-xr-menu_change-interaction-type.mp4 :width: 250 :height: 250 @@ -436,7 +436,7 @@ Here you can access the fullscreen menu and run simulation commands such as: .. grid-item:: - .. figure:: /_static/in-vr_left-handheld-menu.png + .. figure:: /_static/in-xr_left-handheld-menu.png :align: center :width: 60% @@ -455,7 +455,7 @@ Select from the dropdown options below to see the **video tutorials**: :widths: 40 60 :header-rows: 0 - * - .. video:: /_static/in-vr-menu_pause.mp4 + * - .. video:: /_static/in-xr-menu_pause.mp4 :width: 250 :height: 250 @@ -467,7 +467,7 @@ Select from the dropdown options below to see the **video tutorials**: :widths: 40 60 :header-rows: 0 - * - .. video:: /_static/in-vr-menu_play.mp4 + * - .. video:: /_static/in-xr-menu_play.mp4 :width: 250 :height: 250 @@ -479,7 +479,7 @@ Select from the dropdown options below to see the **video tutorials**: :widths: 40 60 :header-rows: 0 - * - .. video:: /_static/in-vr-menu_reset.mp4 + * - .. video:: /_static/in-xr-menu_reset.mp4 :width: 250 :height: 250 @@ -503,7 +503,7 @@ Here you can: .. grid-item:: - .. figure:: /_static/in-vr_full-screen-menu.png + .. figure:: /_static/in-xr_full-screen-menu.png :align: center :width: 85% @@ -522,7 +522,7 @@ Select from the dropdown options below to see the **video tutorials**: :widths: 40 60 :header-rows: 0 - * - .. video:: /_static/in-vr-menu_switch-simulation.mp4 + * - .. video:: /_static/in-xr-menu_switch-simulation.mp4 :width: 250 :height: 250 @@ -535,7 +535,7 @@ Select from the dropdown options below to see the **video tutorials**: :widths: 40 60 :header-rows: 0 - * - .. video:: /_static/in-vr-menu_change-name-and-color.mp4 + * - .. video:: /_static/in-xr-menu_change-name-and-color.mp4 :width: 250 :height: 250 @@ -553,54 +553,54 @@ Select from the dropdown options below to see the **video tutorials**: ---- -.. _choosing_setup_iMD-VR: +.. _choosing_setup_iMD-XR: ########################## -Choosing your iMD-VR setup +Choosing your iMD-XR setup ########################## -If you wish to visualise and/or interact with your simulations in VR, you will need to use an iMD-VR client. -We focus on `NanoVer iMD-VR `_ as the prototypical iMD-VR client, but these instructions can be generalised to any iMD-VR client, -e.g. your own custom VR application that uses the NanoverUnityPlugin. +If you wish to visualise and/or interact with your simulations in XR, you will need to use an iMD-XR client. +We focus on `NanoVer iMD-XR `_ as the prototypical iMD-XR client, but these instructions can be generalised to any iMD-XR client, +e.g. your own custom XR application that uses the NanoverUnityPlugin. -Please feel free to use the instructions below to help you choose your VR setup, +Please feel free to use the instructions below to help you choose your XR setup, then search online (or follow the links given below) for the documentation of your chosen method for the latest instructions on configuring your setup. -#. For help choosing your VR setup, see our flow diagram in :ref:`choosingyourvrsetup` -#. Once you know your VR setup, head to :ref:`choosingyourinstallationmethod` +#. For help choosing your XR setup, see our flow diagram in :ref:`choosingyourxrsetup` +#. Once you know your XR setup, head to :ref:`choosingyourinstallationmethod` #. Once you're ready, head to :ref:`installation` .. note:: - VR is developing fast and there are constantly new features/apps/ways of doing things. Therefore, - these instructions may not be an exhaustive list of all the possible VR setups. Please feel free to choose whichever - one you are most comfortable with! We also recommend checking out the online documentation for your VR headset if you - run into any problems relating to setting up your VR kit. + XR is developing fast and there are constantly new features/apps/ways of doing things. Therefore, + these instructions may not be an exhaustive list of all the possible XR setups. Please feel free to choose whichever + one you are most comfortable with! We also recommend checking out the online documentation for your XR headset if you + run into any problems relating to setting up your XR kit. | -.. _choosingyourvrsetup: +.. _choosingyourxrsetup: -Choosing your VR setup +Choosing your XR setup ###################### Below is a flow diagram to help you decide which setup to choose based on: the operating system of your computer, -the type of network you have access to, your VR headset, and your desired configuration (single-/multi-person VR). +the type of network you have access to, your XR headset, and your desired configuration (single-/multi-person XR). -.. image:: /_static/VR_client_flow_diagram.png +.. image:: /_static/XR_client_flow_diagram.png :width: 600 .. admonition:: Key definition - \ **Tethered**: using a cable to connect your VR headset to your computer. + \ **Tethered**: using a cable to connect your XR headset to your computer. For a **wireless setup** you will need to have a strong and stable internet connection that allows communication over the network. Note that this option is **often not possible with public & institutional networks such as Eduroam** (see below for further details). In this case, you can **use either a VPN service or mobile hotspot**. -You must ensure that all devices are connected to the same VPN or hotspot, including the computer running the NanoVer server and your VR headset(s). +You must ensure that all devices are connected to the same VPN or hotspot, including the computer running the NanoVer server and your XR headset(s). .. dropdown:: Further information about institutional networks (e.g.Eduroam) @@ -613,7 +613,7 @@ You must ensure that all devices are connected to the same VPN or hotspot, inclu One way to bypass these restrictions is to use a virtual private network (VPN) service. One such service that we tested is `Tailscale `_ but there are many others available. Note that when using a VPN you cannot use the "Autoconnect" or "Discover Services" features. - Instead, you must select "Direct Connect" (PC-VR menu) or "Manual" (in-VR menu) and type your IP address. + Instead, you must select "Direct Connect" (PC-XR menu) or "Manual" (in-XR menu) and type your IP address. | @@ -622,38 +622,38 @@ You must ensure that all devices are connected to the same VPN or hotspot, inclu Choosing your installation method ################################# -Please choose from the dropdown options below to learn about how to install NanoVer iMD-VR with your chosen VR setup: +Please choose from the dropdown options below to learn about how to install NanoVer iMD-XR with your chosen XR setup: -.. dropdown:: Using PC-VR (Windows only) +.. dropdown:: Using PC-XR (Windows only) - This option is compatible with the following VR setups: + This option is compatible with the following XR setups: * `Meta Quest Link `_ (tethered) * `Meta Quest AirLink `_ (wireless) * `SteamVR `_ (tethered) * `Steam Link `_ (wireless) - You can use either NanoVer iMD-VR installation method: + You can use either NanoVer iMD-XR installation method: - * **Downloading the latest release of the NanoVer iMD-VR executable**, see :ref:`download_latest_release_VR_client`. + * **Downloading the latest release of the NanoVer iMD-XR executable**, see :ref:`download_latest_release_XR_client`. - * **Conda installation of the NanoVer iMD-VR package**, see :ref:`conda_installation_VR_client`. + * **Conda installation of the NanoVer iMD-XR package**, see :ref:`conda_installation_XR_client`. .. dropdown:: Running locally on a Meta Quest headset - This option is compatible with the following VR setups: + This option is compatible with the following XR setups: * Run directly on the App store of a Meta Quest headset (wireless) * `Meta Quest Link `_ with `Meta Quest Developer Hub `_ (tethered) - You must use the following NanoVer iMD-VR installation method: + You must use the following NanoVer iMD-XR installation method: - * **Download the latest release of the NanoVer iMD-VR apk** and sideload this onto your headset, see - :ref:`download_latest_release_VR_client`. If you wish to use your VR headset wirelessly, + * **Download the latest release of the NanoVer iMD-XR apk** and sideload this onto your headset, see + :ref:`download_latest_release_XR_client`. If you wish to use your XR headset wirelessly, then you must meet the requirements for a wireless setup (see above). - Choosing this option means that you cannot run NanoVer iMD-VR via conda. + Choosing this option means that you cannot run NanoVer iMD-XR via conda. .. warning::