ESA XR Plugin

Download available after registering with an email from an EU-affiliated organization. Send an email to xr@esa.int to receive access after registration.
The ESA XR Plugin is an optional standard framework designed by ESA to streamline efforts, avoid redundancies, and focus on advancing XR solutions for space applications.
It proposes a modular, building-blocks solution made for Unreal Engine that allows organizations and independent creators to contribute.
Components
The tool supports both Desktop and XR applications, offering modular and inter-compatible Components that can be easily added, removed, or modified as needed:
- Menu: Flexible menu for a unified User Experience with save and load, restart or accesibiliy settings.
- Movement: Different ways to navigate including spawn points, teleporting, climbing, walking, fly-mode and more.
- Multiplayer: Collaboration among multiple users in the same virtual environment. (Advanced Sessions Plugin).
- Procedural Grip: Realistic, physics-driven hand-object interactions. (VR Expansion Plugin - VRE).
- Gravity: Dynamically switch your virtual world’s gravity to Earth, Moon, Mars, or microgravity.
- Procedures: Step-by-step procedure authoring and visualization with multimedia, highlights, blockers and conditional movements.
- Annotations: Add comments, measurements, drawings or take snapshots dynamically in the virtual space.
- Replay: Recording and visualization of past exercises in XR, allowing users to review sessions and correct mistakes.
- Supervisor: Enables a local desktop instructor with elevated controls to guide and oversee the user within the XR experience.
- Mixed Reality: Allows switching between fully immersive environments and virtual objects blended into the real world.
- Minimap: Shows a navigational map of your surroundings with zoom, multi-axis views, teleportation, and pin placement.
- Controls: Displays the mappings needed to control the experience across supported input devices.
- Objects: Choose from a library of space objects and dynamically spawn them into your environment.
- Avatar: Customize your appearance in the virtual experience, such as wearing a spacesuit.
- Clock: Time management tool featuring alarms, timers, and a stopwatch to track and control time during sessions.
- AI assistant:Interact with a virtual assistant using local or online LLMs with contextual awareness and agentic capabilities.
Installation
Note: We recommend using the ESA XR Example to start developing. Simply download your preferred model for the AI Assistant, and you’re ready to begin. If you want to integrate the ESA XR Plugin in an existing project, follow these steps:
- Download the right version of Unreal Engine (same as the Plugin version).
- Download and Install Microsoft Visual Studio Community with the following individual components: .NET Desktop Development and Game Development with C++. Make sure that the individual components match the requirements of the Unreal Engine version.
- Create or use an existing Unreal Engine Project.
- If the project is not C++, make sure to add a C++ class to convert it. This will create a "Source" folder in your project.
- Make sure you do not have any GameMode override in your World Settings.
- Create a folder in your projet called "Plugins" (if not already existing) and add the following:
- (VR Expansion Plugin) (https://vreue4.com/binaries). Select the right version according to your Unreal Engine version and extract the files here.
- (Advanced Sessions Plugin) (https://vreue4.com/advanced-sessions-binaries). Select the right version according to your Unreal Engine version and extract the files here.
- The ESA XR Plugin folder.
- If you would like to use the AI assistant, you have to use an online or local LLM.
- We recommend you installing ollama (ollama.com/downlad).
- For example, you can setup an online model by running this in your Terminal after the installation:
ollama run gemini-3-flash-preview
- Start the .uproject file and let everything Build.
- When running the project for the first time, please execute the ESA-XR Setup automation tool to update your Project Settings. If your project already exists, you can opt to dismiss this step but manual adjustments in Project Settings will be needed.
How to contribute?
Everyone is invited to participate in the ESA XR Plugin by creating Components. Contributors will be able to publish their developments while retaining their own Intellectual Property and Commercialization Rights. Development ideas can be found in https://xr.esa.int/. For more information: xr@esa.int
Troubleshooting
If you find any problem, use the ESA button at the top of the Unreal Engine Editor to run ESA XR Setup and perform a clean build. Alternatively, delete the Binaries and Intermediate folders and launch the project again.
This repository is currently in active development and may contain bugs or incomplete features. If you encounter any issues, we appreciate bug reports and contributions. Please contact us via xr@esa.int.
Contact
xr@esa.int