Lunar Simulation in Unreal Engine 5

Elliott Wobler
61 min readMar 19, 2023

--

Making a digital twin of the Moon.

Create 3D projects for space exploration. Simulate NASA Artemis missions. Contribute to the burgeoning lunar economy. The possibilities are endless!

NOTE: This post is Very Long. Medium says 60+ minutes to read. For those who prefer the `tl;dr` mix, check this alternative slideshow version. Maybe get the gist of the work there first, to decide where you want more details.

Abstract

This report explores the suitability of Unreal Engine 5 as a simulation environment for lunar research. The study evaluates the engine’s capabilities in regards to importing, visualizing, and interacting with external scientific datasets. Some of the datasets that were successfully integrated include optical lunar surface imagery, digital elevation models (DEMs), locations of lunar subsurface access points, and three-dimensional lava tube maps from a lunar-analog location on Earth. Development methodologies and implementation details are described throughout the report.

The primary aim of this study is to determine if Unreal Engine can provide an accurate and efficient simulation platform for both near-term lunar science and future deep space mission planning, and if it can be used to effectively analyze large volumes of scientific data. Although dynamic high-resolution data ingestion workflows have not yet been fully implemented, a literature review and initial testing indicate that such functionality is possible to achieve. Batch imports of subsurface maps in the form of 3D models are integrated, along with a simulated robotic swarm mesh network for lava tube exploration.

This report concludes with a Future Work section that outlines various additional ideas; lines of inquiry which could be explored in later evaluations. Results from the conducted investigations suggest that Unreal Engine is a powerful tool for lunar research. It provides a realistic and interactive simulation environment for the study of both lunar surface and subsurface locations of interest.

1. Simulation Software Selection

The environment used for this project is Unreal Engine 5 (UE5), the fifth edition of the 3D computer graphics game engine produced by Epic Games, Inc. in 1998. An American video game and software development company headquartered in North Carolina, Epic Games has global operations with offices around the world [1].

Unreal Engine is an extremely flexible development environment, allowing significant custom logic within projects. Developers have the option to use both raw C++ code as well as the native Blueprint visual scripting system, a visual programming language with a node-based user interface and object-oriented paradigm.

Although there are other simulation software products available on the market that offer similar features — such as the Unity Game Engine originally released by Unity Technologies in 2005 [2] — the visual quality and breadth of features available in Unreal Engine have attracted some of the most prominent names in the scientific and space technology communities.

At the three-day Unreal Fest 2022 event in New Orleans, Louisiana, the satellite manufacturer and imagery company Maxar discussed its strategic investment in Blackshark.ai to “create a high-performance, video-game quality representation of the entire planet with buildings that reflect the region where they’re located for flight simulation, visualization, mixed reality applications, business simulations, and the metaverse” [3]. This serves as one example of the global trend towards digital twins for actionable data insights and situational awareness, both on Earth and beyond.

In another presentation at Unreal Fest 2022, researchers from the National Aeronautics and Space Administration (NASA) — an independent agency of the United States federal government devoted to space technology and exploration — described its “Lunar Terrain Visualization in Unreal Engine 5” [4]. Along with practical workflows for building tools with planetary data, including references to the Geospatial Data Abstraction Library (GDAL), this presentation discussed the advantages of Unreal Engine’s newly released virtualized geometry system called Nanite.

One benefit of Nanite is the overall geometric complexity, measured by the number of polycounts (i.e. number of 3D object surfaces, or faces) which can be rendered in real-time. It also boasts a frame budget that is “no longer limited by polycounts, draw calls, or mesh memory usage” and an automatic level-of-detail (LOD) feature where levels of rendering details “are now automatically set up upon importing, thus removing the need for manual individual mesh LOD set-ups” [5].

Even before the release of Nanite, the visual quality achievable with Unreal Engine made it a top choice for creators in various fields. It has, for example, been used for photorealistic animation in a popular science-fiction anthology series on Netflix [6]. This proves that Unreal Engine is not only a powerhouse product for scientific simulation, but can also be utilized by NewSpace companies to create cinematic-quality marketing material to express their vision of future space developments, such as a bustling lunar economy.

2. Laboratory and Development Environment

It is important to note that given the industry-leading graphics capabilities of Unreal Engine 5, running the software requires a relatively high-powered graphics processing unit (GPU) such as the GeForce RTX series from Nvidia. Although there are various laptops available on the market that have sufficient hardware to run Unreal Engine, the price points are non-trivial and were out of scope within the context of this particular project.

Furthermore, in October 2022, Nvidia unveiled the latest hardware in their RTX series — the flagship RTX 4090 — which at the time of release had a retail price of around €2,000 (as a standalone unit) [7]. It was therefore decided that any personal investment into powerful graphics hardware should be postponed until market prices are driven down in response to the latest Nvidia hardware being integrated into new laptops, most likely sometime in 2023.

Given all of the above, the Unreal Engine implementation for this project was carried out on hardware provided by the University of Luxembourg’s Interdisciplinary Space Master (ISM) program. The desktop computers utilized are located inside of the ISM program’s LunaLab, “one of the few facilities across the globe that simulates lunar conditions for testing applications such as autonomous navigation of lunar robots, multi-robot interaction, lunar surface extraction, manipulation and transportation, additive manufacturing, and regolith analysis” [8].

Two different desktop computers were employed at different stages of the project, both of which are equipped with Nvidia GeForce RTX 2080 graphics processing units. The first computer used the Ubuntu Linux operating system and performed reasonably well, but the second computer using Microsoft’s Windows 10 operating system had notably better performance and was therefore favored as the project matured. This individual experience was confirmed by online forums hosted on the Unreal Engine website and contributed to by the wider community, which indicated that project development is often smoother on Windows systems [9].

3. Initial Simulation Setup

Software Installation

As indicated above, Unreal Engine 5 is supported on all major operating systems including not only Microsoft Windows and Linux but also Apple’s macOS. However, given the hardware requirements for a pleasant development experience in Unreal Engine, most developers opt for a Windows or Linux OS which ship on computers with more hardware customization options.

In order to download the software installer for the operating system of choice, an Epic Games account must first be created which can be done in a number of ways. For the purposes of this project, a personal Github account was used to sign up through Epic Games and access the Unreal Engine installers for both Windows and Linux. Walk-through guides for software installation, including system requirements and recommendations, are available on the Unreal Engine website [10]. The installation process is slightly different depending on the operating system used for development.

Project Setup

After installing and opening the Unreal Engine 5 software, there are several options of project templates for various different use cases. The top-level project categories are “Games”, “Film / Video & Live Events”, “Architecture”, and “Automotive Product Design & Manufacturing”.

For this project, the “Empty” option was selected within the “Games” category, ensuring a clean project workspace. In Unreal Engine’s “Outliner” UI tab, three top-level folders were then created to store the components that would later be added to the main simulation view: “Moon”, “Stars”, “Lighting”, and “GamePlayActors”.

Spherical Moon Mesh

Once the initial project has been created, the first step is to create a basic sphere mesh which will serve as the three-dimensional representation of the Moon. In the top left of the Unreal Engine project environment, there is a “Select Mode” dropdown from which “Modeling Mode” should be selected. A new tab will then appear with several additional dropdown options, the first of which is labeled “Shapes”. Under this “Shapes” header, the “Sphere” option should be selected, which will open yet another UI tab titled “Modeling”.

Inside of the new “Modeling” tab are various option categories specific to the sphere model that will be added to the project. The first is “Output Type” which should retain its default value of “Static Mesh”.

The next category is “Shape” which contains important geometric properties. In this section, the “Subdivision Type” should be changed from the default “Box” to “Lat Long”. The “Horizontal Slices” and “Vertical Slices” should each default to a value of 16, and can be left alone or changed at the discretion of the developer.

The “Radius” should then be changed from the default of 50 to 1737.4, which is the radius of the Moon in kilometers. It is important to note that this value actually corresponds to the number of Unreal Engine Units, a unit which can be changed in the Project Settings but represents 1 centimeter (cm) by default. This means that by inputting the kilometer (km) value of 1737.4, we are actually creating a virtual object that is orders of magnitude smaller than the physical Moon. However, inputting a value of 173,740,000 is currently not possible using the default Unreal Engine settings, and furthermore is not necessary for the purposes of this project. Therefore, the decision was made to stick with 1737.4 unless or until a change is required further into project development.

The next category — “Asset” — can be left alone, and in the following category called “Positioning”, only the “Pivot Location” needs to be changed from its default value of “Base” to “Centered”. The final category describes the “Material” styling to be applied on the sphere mesh, which does not need to be changed at this time. Later on, the material is where real lunar data will be included such as the RGB visual imagery and digital elevation model (DEM).

Once the properties have been changed as described above, a click inside of the main project viewport will add an instance of the sphere. In case it is not immediately visible due to the lack of material and lighting, this can be confirmed by seeing that a new “StaticMeshActor” has appeared in the “Outliner” UI list. This mesh instance can be renamed to “MoonMesh” or similar, and moved inside of the “Moon” folder created previously.

Background Stars Mesh

Following the creation of the basic Moon mesh inside of the project, the next step is to create the background mesh where the fixed stars will be added. The “Select Mode” dropdown can be changed back to “Select Mode” from “Modeling Mode”, since the star map can be easily created by simply duplicating the existing Moon mesh. Inside of the “Outliner” tab, right-clicking on the “MoonMesh” instance will display a variety of dropdown options amongst which is a duplication option. After duplicating the “MoonMesh” instance, the new copy can be renamed to “StarMap” and moved inside of the “Stars” folder created earlier.

To edit the new “StarMap” mesh, a “Details” UI tab will need to be opened. This is usually open by default, but in case it is not then it can be re-opened by selecting “Details” from the “Window” option in the application’s topbar menu. The “Details” tab is, like many UI components in Unreal Engine, context-sensitive. This means that the “StarMap” mesh must be selected in the “Outliner” tab in order for its details to be shown in the “Details” tab.

Inside of the “Details” tab for the “StarMap” mesh, there is a category of parameters titled “Transform”. The three primary options under “Transform” are three-dimensional vector values for “Location”, “Rotation”, and “Scale”. In case it is not already, the “Location” vector should be changed to the origin of (0, 0, 0). If a change is needed here, it means that the “Location” vector of the “MoonMesh” component should also be changed (0, 0, 0). Both the “StarMap” and “MoonMesh” components should also have their “Rotation” vector set to (0, 0, 0).

The final option for “Scale” should be (1, 1, 1) for the “MoonMesh”, but changed to (1000, 1000, 1000) for the “StarMap” to make the component one thousand times larger than the Moon. Values can be changed individually or all at once if the “Scale” parameter is locked. According to the UI tooltip on the “Scale” lock icon: “When locked, scales uniformly based on the current xyz scale values so the object maintains its shape in each direction when scaled”.

Although it is of course not scientifically accurate to represent the fixed stars with an encompassing sphere that is centered on the Moon and only 1000 times larger, this particular methodology is suitable within the scope of the current project. Possible future enhancements are described in the Future Work section at the end of this report.

Basic Solid Color Materials

Having created the two primary mesh instances for the Moon and Stars, some basic materials can then be created to test the whole system before diving into the complexities of real lunar datasets.

In the “Content Drawer” at the bottom of the Unreal Engine project interface, two new folders can be created: one called “Moon” and one called “Stars”. Unlike the “Outliner” UI tab which corresponds to the component instances within a specific project view (i.e. “level”), the “Content Drawer” is where image and data resources can be uploaded into Unreal Engine and accessed during the creation of new component instances. Additionally, custom Unreal Engine data types such as meshes and materials can be generated and stored there.

In each of the new folders within the “Content Drawer”, a new custom Material should be added by right-clicking and selecting the appropriate option. The material inside of the “Moon” folder can be called “M_Moon” and the one inside of the “Stars” folder can be called “M_StarMap”. Double-clicking one of these new Material references inside of the “Content Drawer” will open up a new project-level window or tab to edit Material properties using the Blueprint visual scripting system. Right-clicking inside of the Blueprint editor window will bring up a context-sensitive dropdown menu enabling the addition of new Blueprint nodes supporting a wide range of complex functionality.

Starting with the “M_Moon” material, two new “Constant3Vector” Blueprint nodes should be created. These will store the Red, Green, and Blue values for two solid colors that we will apply to the mesh. These will be removed later on, so their specific color values are arbitrary. The first should be attached to the “Base Color” input of the “M_Moon” node, and the second should be attached to the “Normal” input.

Figure 1: Blueprint implementation of basic solid color “M_Moon” material

Next, inside of the “M_StarMap” Blueprint editor, another “Constant 3 Vector” color should be created. The specific RGB values are again arbitrary since we will later replace this with a real star map image, but for testing purposes it should be visibly distinct from the base color chosen for the “M_Moon” material above. This new node should be attached to the “Base Color” input of the “M_StarMap” node. Then, a “Sky Atmosphere Light Disk Luminance” node should be created and attached to the “Emissive Color” input of the “M_StarMap” node.

To the left of the gridded Blueprint editor section, there is another “Details” tab for the currently selected material — which should still be “M_StarMap”. The top two sections of this “Details” tab are “Physical Material” and “Material”. Under the “Material” header, the “Blend Mode” should be changed from “Opaque” to “Translucent”, and the checkbox for “Two Sided” should be checked. This will enable users to see the inside of the spherical “StarMap” mesh encompassing the “MoonMesh” object at 1,000 times the scale. This is therefore a critical setting for the final implementation when the real star map image is expected to effectively surround the Moon at a distance.

Figure 2: Blueprint implementation of basic solid color “M_StarMap” material

The material editors for both “M_StarMap” and “M_Moon” can then be closed, since the basic implementation is complete and ready for testing. Back in the primary project editor view, the freshly created materials need to be added to the “MoonMesh” and “StarMap” instances listed in the “Outliner”. Opening up the “Details” view again, underneath the “Transform” section described above, there is a “Static Mesh” configuration section. This should already have a basic sphere mesh selected. Underneath “Static Mesh” is another section called “Materials” which is where the new materials should be selected. While “MoonMesh” is selected in the “Outliner”, the “M_Moon” material should be selected from the “Materials” section dropdown. While “StarMap” is selected in the “Outliner”, the “M_StarMap” material should be selected from its “Materials” dropdown as well.

Directional Lighting

Before the “MoonMesh” and “StarMap” mesh instances will appear as expected in the main project viewport, some simple directional lighting will need to be created and applied to the scene. Using the quick-add project button (directly to the right of the “Select Mode” dropdown), the “Directional Light” option under “Lights” should be selected. This will result in a “DirectionalLight” instance being added to the viewport and “Outliner” list.

Inside the “Outliner” list, this new item can be moved to the “Lighting” folder. While “DirectionalLight” is selected in the “Outliner” list, the “Details” tab will show parameter sections specific to lighting. At the bottom of the “Light” section, the “Intensity” parameter can be changed from “10 lux” to “1 lux”.

In the top left of the project viewport window, there are a few toggle options including one that says “Perspective”. To the right of this “Perspective” option is the “View Mode” selector, which should be switched to “Lit”. This will ensure that the effects of the “DirectionalLight” are visible in the project viewport. While holding down the “Ctrl + L” keyboard keys, the mouse can be moved around in the viewport window to change the direction of the “DirectionalLight”. While holding down “Alt + LeftMouseClick” buttons — with the “MoonMesh” selected in the “Outliner” tab — the view can be dragged and rotated around the instantiated “MoonMesh”. This enables viewing both the lit and unlit sides of the moon.

Figure 3: Project viewport showing basic “Moon”, background “StarMap”, and simple “DirectionalLight”

It is important to note that the “DirectionalLight” as implemented at this stage is not a scientifically accurate simulation of the Sun. However, it is sufficient for the purposes of this particular project. Although applications for scientifically accurate solar simulations are out of scope for now, they are certainly possible within Unreal Engine 5 and are therefore still briefly discussed in the Future Work section towards the end of this report.

Gameplay Actor

So far, everything described has been part of the Unreal Engine editor interfaces. In order to fly around the scene in actual gameplay mode, a gameplay actor must be added to the project. The simplest way to do this is to once again navigate to the quick-add project button next to the “Select Mode” dropdown, and choose the “Place Actors Panel” option.

From within the “Place Actors” tab that opens as a result, the “Player Start” option can be clicked and dragged onto a location in the project viewport. Just like with the static mesh components, the Actor will be added to the “Outliner” list where it can be moved into the “GamePlayActors” folder. Also like the static mesh components, the Actor has associated three-dimensional “Location” and “Rotation” vectors. These can be changed to alter the starting location and direction that the first-person player is facing when gameplay begins. Now, when the green triangle “Play” button is pressed, the gameplay mode initializes and the user can navigate by flying around with standardized computer game controls (e.g. the W, A, S, D, and arrow keyboard keys).

Enabling Click Events

In order to enable click events during gameplay, it is necessary to create a custom project-level “Player Controller” class, and then a custom “Game Mode” class to connect it to [11].

A new “Player Controller” can be created by right-clicking inside of the “Content Drawer” and selecting the appropriate option for a new Blueprint class. Inside of the Blueprint Editor, in the “Details” tab, there is a subsection called “Mouse Interface”. Within this subsection, the “Enable Click Events” checkbox should be checked. There are other related checkboxes as well, including “Enable Mouse Over Events” and “Show Mouse Cursor”. More advanced options include the “Default Click Trace Channel” and “Trace Distance”. Line traces and their importance are discussed below. Once the desired settings are selected, the Blueprint should then be recompiled, saved, and named something descriptive such as “MoonController”.

The process for creating a new “Game Mode” is very similar, starting with a right-click inside of the “Content Drawer” and selecting the correct option to enter the Blueprint editor for a custom “Game Mode”. Inside of the Blueprint Editor “Details” tab, the new custom “MoonController” should be selected as the value for the “Player Controller Class” parameter. Again, this Blueprint should be recompiled, saved, and renamed to something descriptive like “MoonGameMode”.

Once the custom “MoonController” and “MoonGameMode” classes are created, they must be connected to the existing project. This can be done by using the application topbar’s “Edit” dropdown to open the “Project Settings” popup and selecting the “Maps & Modes” option. Then, the “Default GameMode” can be switched to “MoonGameMode” which should also change the “Player Controller Class” value to “MoonController”.

Figure 4: Custom project settings to enable click events during gameplay

After click events have been enabled in the controller settings, new Blueprint event nodes will be available to use. “OnClicked” actions can be captured for individual mesh components, or the project-level “Left Mouse Button” node can be applied more generally. There are also options that offer more complexity, like “Get Hit Result Under Cursor For Objects”, which performs a line trace from the location of the mouse cursor and returns any “hits” on meshes in that direction. This node should be used in the project-level event graph, distinguishable by the “Level Blueprint” text in the bottom-right corner of the Blueprint Editor.

The “Get Hit Result Under Cursor For Objects” node requires two inputs. One is for a “Get Player Controller” reference, and the other is for an array of “Object Types” that can be created using a “Make Array” node. The “Hit Result” output should be passed into a “Break Hit Result” node which offers a range of related outputs including the “Impact Point” vector. Passing the “Impact Point” vector into a “Break Vector” node will yield the separated X, Y, and Z world coordinates where the line trace collided with a target Actor or Component.

For the purposes of this lunar simulation project, it is useful to return Latitude and Longitude values at the point where a click occurs on the Moon mesh’s surface. This can be achieved with the following formulas, using the XYZ component values and lunar radius as inputs (note that the lunar radius value must match the sphere mesh radius specified above) [12]:

Longitude = atan( X / Y )

Latitude = asin( Z / RadiusMoon )

Unreal Engine provides Blueprint nodes for basic mathematical operations such as division, the inverse tangent function (“atan”), the inverse sine function (“asin”), and scalar constants. Combining all of these together, a left-mouse click on the Moon mesh’s surface can return the lunar coordinate in Latitude and Longitude format, which can then be printed to the logs and viewport with “Print String” nodes for analysis and verification.

Figure 5: Level Blueprint view showing the conversion from XYZ to Latitude and Longitude on click events

Trigger Spheres and Boxes

In addition to cursor and click events, Unreal Engine actions can be initiated when the gameplay actor’s current position intersects with a certain “Trigger Actor”. The “Trigger Actor” class supports different shapes — for instance, both boxes and spheres. These shapes are invisible once gameplay begins but can be resized, reshaped, and relocated just like standard meshes.

Once a “Trigger Actor” has been added to the project and appears in the “Outliner” list, it can be referenced with a Blueprint event node called “On Actor Begin Overlap”. This functionality is useful to trigger some kind of change when the player crosses a certain threshold. For example, it could be used in conjunction with the “Open Level (by Name)” node to load a new scene dynamically during gameplay. This could be triggered when the player approaches a specific lunar coordinate.

Figure 6: Example of a TriggerBox Actor outside of gameplay with Blueprint event node overlaid on top

4. Connecting to Real Scientific Data

Sky Map

To expedite and enhance the implementation of scientific visualization projects such as the one described by this report, NASA’s Goddard Space Flight Center (GSFC) hosts a variety of free data resources through a service called the Scientific Visualization Studio (SVS): https://svs.gsfc.nasa.gov/ . One such resource provided through SVS is the “Tycho Catalog Skymap — Version 2.0”, which is “a skymap of stars from the Tycho and Hipparcos star catalogs, provided by the ESO/ECF generic catalog server” [13].

ESO refers to the “European Southern Observatory”, and ECF (or ST-ECF) refers to the “Space Telescope — European Coordinating Facility”. Together, these organizations jointly operated the ESO/ST-ECF Science Archive Facility until the closure of ST-ECF in December 2010, at which point it became simply the ESO Science Archive Facility [14]. The archive hosts over 40 Terabytes of data from a variety of astronomical instruments, including the Hubble Space Telescope (HST), the New Technology Telescope (NTT) at La Silla Observatory in Chile, as well as the Very Large Telescope (VLT) and Event Horizon Telescope / Atacama Pathfinder Experiment (APEX) both located in the Atacama desert in Chile. The dark skies and absence of light pollution in the Atacama desert region make it an ideal hub for astronomical observations, and its extreme topologies also lend themselves to space-analog robotic experiments [15].

The sky map image assets provided by SVS via the ESO Science Archive Facility are plotted “using a plate carrée projection (cylindrical-equidistant) with celestial coordinates, making them suitable for mapping onto spheres in many popular animation programs” [13]. One interesting aspect of the SVS service is that it provides a few different image asset options, with different “threshold magnitude” values. SVS explains that “stars fainter than the threshold magnitude, usually selected as 5th magnitude, have their magnitude-intensity curve adjusted so they appear brighter than they really are” [13]. This means that depending on the simulation developer’s intentions and stylistic preferences, different images can be selected that make more or less of the Milky Way visible.

For this particular project, the JPEG format option with a threshold magnitude of 4.0 was selected, which has a size of 4096 x 2048 pixels. Both the threshold magnitude (“t4”) and the image pixel resolution are indicated directly in the filename: “TychoSkymap.t4_04096x02048.jpg”. From a stylistic perspective, this image is reasonably visible in the background without overpowering the more important “MoonMesh” in the foreground of the project.

Starting with the Blueprint implementation depicted in Figure 2 of the Basic Solid Color Materials section above, there are only a few changes needed to integrate the real sky map data into Unreal Engine.

First, the solid color node should be disconnected from the “Base Color” input of the “M_StarMap” node. The solid color node can then be deleted, since we will not be using it in the final implementation. Next, the “Sky Atmosphere Light Disk Luminance” node should be disconnected from the “Emissive Color” input of the “M_StarMap” node, and connected instead to the “A” input of a brand new “Add” node. The “B” input of the “Add” node should be connected to the output of a new “Multiply” node, which also has “A” and “B” inputs.

The “A” input to the “Multiply” node is where we will connect the real star map data. To do this, we first create a new “Texture Sample” node and connect it to the “TychoSkymap.t4_04096x02048.jpg” image file. The “B” input to the “Multiply” node should be a new scalar value node which can be tuned based on developer preference to reduce the intensity of the background image. A value of 0.1 was found to be sufficient for this particular implementation.

Finally, since the “Blend Mode” was already changed from “Opaque” to “Translucent” and the checkbox for “Two Sided” was already checked in the “Details” tab of the “M_StarMap” node, there are no further actions required. The Blueprint can be saved and re-compiled, at which point the main “Viewport” should now show the background star map as expected.

Figure 7: Blueprint implementation of the Sky Map material with real scientific data

Lunar Surface

Sphere Mesh Material

Optical imagery and elevation maps of the lunar surface are also provided through the NASA GSFC Scientific Visualization Studio website described above. The specific resource selected for this project — called “CGI Moon Kit” — was “created from data assembled by the Lunar Reconnaissance Orbiter Camera (LROC) and laser altimeter instrument teams” and released online in September of 2019 [16]. The optical imagery color map was “adapted from the Hapke Normalized WAC Mosaic, a composite built by the camera team from over 100,000 WAC (Wide Angle Camera) images.”

To create the closest approximation of what the human eye sees, three out of the seven LROC wavelength bands were modified and combined together. After various calculations and mappings were applied, final adjustments were made using the COTS photo-editing software, Photoshop.

Importantly, the source data only covers the latitude range of 70°N to 70°S — a result of the Moon’s axial and orbital tilts which results in polar latitudes remaining in shadow after many camera orbits. Since the SVS data is “optimized for aesthetics, not science,” the latitudes with missing source data are simply colored with alternative methods. A combination of “monochromatic LROC data and an albedo map (LDAM) from LRO’s laser altimeter” are used to fill in these gaps.

Global digital elevation models (DEMs) — also referred to as displacement or height maps — can be downloaded from the same webpage. They are taken from the gridded data products created by the Lunar Orbiter Laser Altimeter (LOLA) instrument team. Higher-resolution LOLA DEMs can be found from the astrogeology section of the United States Geological Survey website [17]. However, a size of 8 gigabytes is significantly larger than Unreal Engine can handle without it being cropped and processed first. For the purposes of this project’s spherical Moon view, it is also unnecessary to have such a high resolution.

The reference surface for all of the SVS data is “a sphere of radius 1737.4 km”, which perfectly matches the mesh radius configured above in the Spherical Moon Mesh section. As described further by the SVS webpage: “Each pixel in these texture maps corresponds to a point on the lunar surface defined by a longitude-latitude pair. Pixels in the color map contain the base color of the surface, before applying the effects of varying light and camera angles (called incidence angle i and emission angle e in the technical description). Pixels in the displacement map contain the height of the surface at the corresponding locations” [16].

This is precisely what is needed to create the “M_Moon” material in Unreal Engine. The first step of course is to download the assets — the largest that the user’s hardware (and software) can support. The next step is file format conversions, since Unreal Engine doesn’t support GeoTIFF natively.

Using the Geospatial Data Abstraction Library (GDAL), it is possible to convert the TIFF files. Once GDAL is installed, the gdalinfo utility will be available from the command-line. This enables information inspection of individual image files. Then, gdal_translate can be used to convert the TIFF to a PNG. It’s important to note that this process can reduce the resolution if correct parameters are not chosen.

Once the PNG images have been obtained, they can be uploaded to the “Content Drawer” in Unreal Engine. Both can then be added as “Texture Sample” nodes in the “M_Moon” material’s Blueprint editor.

Starting with the optical imagery’s “Texture Sample” node, the “RGB” output should be connected directly to the “Base Color” input of the “M_Moon” node. It should also be connected to the “A” input of a “Multiply” node, the output of which should feed into the “Emissive Color” input of the “M_Moon” node. The “B” input of this “Multiply” node should be connected to the output of a “Dot” product node. The “A” input of the “Dot” product node should be attached to a “Sky Atmosphere Light Direction” node and the “B” input should be attached to a “Pixel Normal WS” node. This completes the chain of connections for the optical imagery color map image. To summarize, it feeds into both the “Base Color” and “Emissive Color” of the “M_Moon” material.

Next is the digital elevation map (DEM) and its own “Texture Sample” node. This node should connect to the “Normal Result” input of a “Flatten Normal” node. The “Flatness” input of the “Flatten Normal” node should be connected to a scalar value node. The scalar value can be tuned based on developer preference to reduce the intensity of shadows caused by the interaction of the height map with the environment’s directional lighting. Then the output of the “Flatten Normal” node should be attached to the “Normal” input of the “M_Moon” material node.

Finally, after the scientific data has been connected as described above, there are a few additional aesthetic parameters which can be tuned to the developer’s preference. These are the three inputs under “Base Color” in the “M_Moon” material node: “Metallic”, “Specular”, and “Roughness”. Applying scalar values between 0 and 1 to each of these inputs will affect the visualization output, and for the purposes of this project a value of 0 was chosen for “Metallic”, 0.2 for “Specular”, and 0.8 for “Roughness”. Future iterations could try to set these using more scientific methods.

This completes the entire configuration of the “M_Moon” sphere material. The Blueprint can then be saved and re-compiled to apply the changes in the main “Viewport”.

Figure 8: Blueprint implementation of the Moon material with real imagery and DEM data
Figure 9: Project viewport showing finished “Moon”, background “StarMap”, and “DirectionalLight”

Landscape Mode

Unreal Engine’s “Landscape” mode is a feature that enables developers to create and edit large, open-world environments. It uses an approach based on height map data, which is perfect for working with lunar DEM data. The terrain is expected to be represented by a grayscale image, with pure white pixels being the highest elevations and pure black pixels being the lowest elevations. Materials can also be incorporated onto the raw terrain data, just as with standard mesh materials.

The “Landscape” mode also includes built-in tools for sculpting and editing the terrain, as well as options for generating realistic lighting and shadows. While sculpting terrain was out of scope for this particular project, it’s useful to know about the existence in case the need ever arises for data cleanup.

To load the digital elevation map data into “Landscape” mode as a PNG image, it’s necessary to also scale the X, Y, and Z axes appropriately. This was covered in some detail during NASA’s “Lunar Terrain Visualization in Unreal Engine 5” presentation at Unreal Fest 2022 [4].

Using the gdalinfo utility on the original GeoTIFF file, the minimum and maximum elevations should be extracted like so: gdalinfo -mm dem_data.tif . With the DEM file used in this specific project, the minimum value was -9.115 and the maximum value was 10.757. This makes sense given the fact that the “highest point on the Moon lies on the northern rim of the South Pole–Aitken basin with an elevation of at least 10,786 meters (35,387 feet) above the mean radius. Since the Moon has no oceans, and thus no sea level, one can think of the mean radius as the lunar equivalent to sea level on the Earth” [18]. Since 10.786 kilometers is relatively close to 10.757 kilometers, we can be confident that our data is accurate enough for the purposes of this current project.

Once the minimum and maximum elevations of the DEM have been confirmed, the scale for the Z axis can then be calculated using the formula provided in the NASA presentation:

Zscale = ( elevationMinimum+ elevationMaximum ) * 100 / 512

With the scale of the Z axis thus obtained, the scale of the X and Y axes can then be calculated using the pixel width. In our case the X and Y values were 10. Plugging these X, Y, and Z scale values into the “Scale” parameter of the “Transform” section in the Landscape “Details” tab, we now get a properly visualized height map displayed inside of the “Viewport”. Screenshots displaying different angles are included in the figures below.

Once the “Landscape” level has been named and saved (separate from the default 3D Moon level) with its own “Player Start” component added to the scene, it can then be loaded dynamically with an event from inside of the 3D Moon level. This can be accomplished with various different actions, such as clicking on a specific lunar surface marker or flying through the boundaries of a “Trigger Actor” as described in the Trigger Spheres and Boxes section above.

Figure 10: Nadir view of the Unreal Engine “Landscape” mode loaded with lunar DEM data
Figure 11: Surface view of the Unreal Engine “Landscape” mode loaded with lunar DEM data
Video Link: https://youtu.be/ThgJZfa13vY

Lunar Subsurface Access Points

Beneath the Moon’s surface there are underground channels which are thought to have formed as a result of volcanic activity (i.e. lava tubes). Such features are of significant interest to scientists and space mission planners because they are excellent candidates for providing natural shelter to robotic and human explorers. Future settlements could theoretically be built inside of these subsurface chambers and be somewhat protected from micrometeorites, solar radiation, cosmic rays, extreme temperatures, and surface dust.

There are various datasets that include information about geological features on the Moon, such as lunar pits and lava tubes. Some have already been described above. Below are more detailed descriptions:

  • Lunar Reconnaissance Orbiter (LRO) Diviner Lunar Radiometer (DLRE) Data: This dataset includes temperature and reflectance data collected by the Diviner instrument on the LRO spacecraft, which has been studying the Moon’s surface since 2009. According to NASA, “the Diviner Lunar Radiometer (DLRE) provides orbital thermal mapping measurements, giving detailed information about surface and subsurface temperatures (identifying cold traps and potential ice deposits), as well as landing hazards such as rough terrain or rocks” [19]. The data can therefore be used to identify and map features such as lunar lava tubes.
  • Lunar Orbiter Laser Altimeter (LOLA) Data: The LOLA instrument on the LRO spacecraft collects topographic data of the Moon’s surface, and has also been active since 2009. It “measures landing site slopes, lunar surface roughness, and generates a high resolution 3D map of the Moon” [19]. LOLA can also identify the Moon’s permanently illuminated or permanently shadowed regions (PSRs) through analysis of lunar surface elevations. Since the data includes information about the shape and elevation of features on the Moon, it is useful for identifying potential access points to lunar lava tubes.
  • Gravity Recovery and Interior Laboratory (GRAIL) Data: NASA’s GRAIL mission, which was conducted from 2011 to 2012, collected high-resolution lunar gravity field data. The dual-spacecraft mission — using two identical lunar satellites — “studied the internal structure and composition of the Moon in unprecedented detail for nine months” [20]. This enabled it to produce a detailed gravitational map of the Moon, which can be used to study the Moon’s internal structure and identify subsurface features such as lava tubes.
  • Kaguya / Selenological and Engineering Explorer (SELENE) Data: The Japanese Aerospace Exploration Agency (JAXA) conducted the Kaguya mission using two small spacecraft named Okina and Ouna. Operating from 2007 to 2009, Kaguya “created the most detailed topographical model to date” [21]. Data from this mission has also been used to identify lunar pits and lava tubes.

In a July 2022 interview with Universe Today, a UCLA doctoral student in planetary science named Tyler Horvath explained that “about 200 lunar pits have been found and at least 16 of these are probably collapsed lava tubes, with the potential for ‘livable’ space” [22]. For the purposes of the simulation project described in this current report, it was desirable to find an already-existing dataset that contained the coordinate locations of these lunar pits.

Towards the end of October 2022, a research team led by Dr. Jut Wynne created just such a dataset for their paper entitled “Planetary Caves: A Solar System View of Processes and Products” [23]. The dataset, hosted through Harvard Dataverse [24], compiles information from several previous studies including:

  • Haruyama, J., Hioki, K., Shirao, M., Morota, T., Hiesinger, H., van der Bogert, C. H., et al. (2009). Possible lunar lava tube skylight observed by SELENE cameras. Geophysical Research Letters, 36, L21206. https://doi.org/10.1029/2009GL040635.
  • Yokota, Y., Haruyama, J., Yamamoto, S., Kaku, T. Matsunaga, T., Ohtake, M., et al. (2018). Formation scenario of continuous slopes associated with lunar mare pit/hole structures. Lunar and Planetary Science Conference, Abstract # 1907, LPI Contributions №1907.
  • Wagner, R. V. & Robinson, M. S. (2021). Occurrence and origin of lunar pits: Observations from a new catalog. Lunar and Planetary Science Conference, Abstract # 2530, LPI Contributions №2548.

Available in Excel (XLSX) format, the dataset contains columns for feature IDs, depths, diameters, regions, and surrounding terrain. It also describes the observation platform(s) and instrument(s) used to acquire the information, and the observation image number for efficient lookup within the raw source data. Most importantly for the scope of the simulation project described in this report, the dataset includes the Latitude (degrees North) and Longitude (degrees East) for the vast majority of listed features.

Figure 12: Lunar subsurface access points image compiled and produced by Wynne et al. (2022)

Importing CSV Point Locations

In order to visualize these lunar pit locations as 3D points inside of Unreal Engine, it was necessary to convert from Latitude and Longitude coordinates to the XYZ world coordinates used by UE5. In general, this can be accomplished with the following formulas [12]:

X = RadiusMoon * cos(Latitude) * cos(Longitude)

Y = RadiusMoon * cos(Latitude) * sin(Longitude)

Z = RadiusMoon * sin(Latitude)

However, in Unreal Engine, the X and Y axes correspond to the right and up directions, respectively, and the Z-axis corresponds to the forward direction. Therefore, the X and Y values from above needed to be swapped before the processed world coordinates could be correctly imported into Unreal Engine. A Python script was written to perform this on each feature and output a new CSV file with “X”, “Y”, and “Z” columns, along with a sequentially numbered “Name” column expected by Unreal Engine.

Once the CSV data file with XYZ world coordinates was generated, an Unreal Engine Blueprint workflow was created for dynamically generating static mesh components from uploaded data. This was accomplished with help from a tutorial written by Simon Blakeney of Epic Games [25].

After preparing the CSV as described above, the right-click method was used to create a new “Structure” Blueprint from the “Content Drawer”. The relevant column names were explicitly listed within this “Structure”, along with their data type (which is a Float in the case of the XYZ coordinates). With this new “Structure” saved, the pre-processed CSV file was dragged into the “Content Drawer” and a “DataTable Options” popup box appeared. The newly created “Structure” was then selected from the “Choose DataTable Row Type” dropdown, linking the UE5 object with the data from the CSV.

The next step was to create a new “Actor” Blueprint — again with a right-click in the “Content Drawer” — and open up its Blueprint Editor to configure when and how it should convert the CSV (now “Structure”) data into static mesh components. The initial event selected to trigger the conversion was the “Event BeginPlay” node, specifying that the action should occur as soon as gameplay begins. It’s important to note that this means the created static mesh components are not visible from the Unreal Engine editor mode, but only during gameplay.

The “Event BeginPlay” Blueprint node was then connected to the execution input of a “Get Data Table Row Names” node. A “Table” was created through the “Variables” section of the “My Blueprint” UI sidebar, connected to the CSV “Structure” generated above, and added as a node in the Blueprint Editor window. The new “Table” node was connected to the “Table” input of the “Get Data Table Row Names” node. The output of “Get Data Table Row Names” was connected to a “For Each Loop” node that — as indicated by its name — iterates through each row name (i.e. the sequentially numbered “Name” column that was added to the CSV data in the Python script). Since the array being looped through only has row names, the “Array Element” output of the “For Each Loop” node was then connected to the “Row Name” input of a new “Get Data Table Row” node. The other input of this new node, called “Data Table”, was linked back to the “Table” node containing the reference to the “Structure” with the complete CSV data.

The “Out Row” output of the “Get Data Table Row” node was then connected to a “Break” node which separates all of the “Structure” data elements into distinct output nodes (i.e. one for “X”, one for “Y”, one for “Z”, etc.). To use the “Structure” elements as nodes inside of the Blueprint Editor, they must also be added as “Variables” in the “My Blueprint” section of the sidebar UI tab.

The separate “X”, “Y”, and “Z” nodes were then combined with a “Make Vector” node. This vector was used as the “Location” input of a “Make Transform” node with a static “Scale” and empty “Rotation”. As described in the Future Work section of this report, there are unused CSV data values which could eventually be included in this workflow. For example, the lunar pit depth or diameter could drive the “Scale” of the added mesh.

Finally, the “Return Value” output of the “Make Transform” node was used as the “Relative Transform” input of an “Add Static Mesh Component” node. This mesh node requires references to existing mesh component and material definitions — which were set to a sphere and solid color, respectively. Since the XYZ coordinates from the CSV data are directly on the lunar surface, the bottom half of the added sphere meshes are hidden beneath the lunar sphere’s surface. From the player’s perspective, this results in hemispheres, or domes. A final “Print String” node was added to the workflow so that the lunar pit ID is printed to the screen when its associated static mesh is successfully generated — a useful debugging feature.

Figure 13: Blueprint workflow for converting CSV data with XYZ coordinates into static mesh components

After completing the workflow described above and entering gameplay mode, the solid color hemispheres appeared on the lunar surface. However, when referring to the lunar pit location visualization from Wynne et al (Figure 12), it was evident that the data-driven meshes were not aligned properly with the lunar surface imagery. Using the Latitude and Longitude print statements described in Enabling Click Events above, it became clear that the lunar surface imagery was not aligned with the accurate coordinate system. This was resolved by rotating the Moon mesh 270 degrees on its Z-axis. Then the visualized lunar pit meshes appeared in the proper locations, and click events on those locations printed the expected Latitude and Longitude coordinates.

Code Snippet: Convert from (Latitude, Longitude) to a 3D Point in the UE5 Coordinate System
Figure 14: Dynamically added blue mesh components, representing XYZ coordinates from CSV data. (including a text label mesh and differentiated gold sphere mesh for testing click actions)
Video Link: https://youtu.be/googsj8j7_g

3D Lava Tube Maps

Although humanity has not yet explored the interior of a lunar lava tube with anything other than remote sensing satellite instruments, space-analog missions have indeed been conducted in lava tubes on Earth. In 2018, a team of geologists, speleologists, and European Space Agency (ESA) astronauts produced “the largest 3D image of a lava tube ever created” while exploring the Cueva de Los Verdes lava tube system on the Spanish island of Lanzarote in the Canary Islands [26].

Similar datasets have been created for other cave systems around the world, and some are hosted online through 3D asset marketplaces. One collection of speleology datasets compiled by Paulo Rodrigo Simões on the Sketchfab website contains a large variety of caves, including not only Marguez Cave in Lanzarote but also Martimiano Cave in Brazil, La Cueva de las Lechuzas in Peru, Kef Aziza in Morocco, Čaganka Cave in Slovenia, Abukuma Cave in Japan, and many more [27].

There are several technologies that are used to study lava tubes on Earth. Geophysical methods such as ground penetrating radar (GPR) and electrical resistivity imaging (ERI) can be used to map the subsurface geology of lava tubes and identify the location and shape of underground passages. Capturing overlapping photographs of the surface of a lava tube and using software to stitch them together — a process called photogrammetry — also allows scientists to create detailed 3D models of tube interiors. LiDAR technology uses lasers to measure the distance between the instrument and the surface of the lava tube. With exploratory caving, scientists can directly explore and map lava tubes. Specialized equipment such as helmet-mounted lights, climbing gear, and mapping tools are often required. Rock and other material samples can be used to analyze geological composition. And finally, environmental monitoring of conditions can be performed with sensors for temperature, humidity, and air quality.

For the lunar simulation project discussed in this report, a proof-of-concept was implemented for just one subterranean location. The location was selected due to a relatively complete 3D spatial analysis, with two separate compatible data formats. Again through the Sketchfab online marketplace, viable mappings were found for the Valentine Cave at Lava Beds National Monument in California, USA.

LiDAR Point Cloud Data

The first Valentine Cave dataset used in this project was uploaded by the Sketchfab user “pwhelley” (Dr. Patrick Whelley) in December of 2017. Entitled “Valentine Cave Lava Tube 5cm”, it contains a point cloud data file — “valentine_tube_5cmXYZRGBI.asc” — that can be used with Unreal Engine’s “LiDAR Point Cloud Support” plugin [28]. This plugin supports three primary point cloud file formats with a variety of file extensions:

  • General types of ASCII data (simple X,Y,Z or X,Y,Z,R,G,B with colors for each point)
  • File extensions: .xyz, .pts, .txt
  • LAS / LASer: a public binary format developed by the American Society for Photogrammetry and Remote Sensing (ASPRS); and LAZ, its compressed version
  • File extensions: .las, .laz
  • E57: a compact, open-source, vendor-neutral format that is able to store 3D point cloud data, images, and also metadata
  • File extension: .e57

The “LiDAR Point Cloud Support” plugin can be added to an Unreal Engine project by using the application topbar’s “Edit” dropdown to open the “Plugins” menu. After searching to filter for “LiDAR Point Cloud Support”, the “Enabled” checkbox should be checked. The project should then be saved and Unreal Engine should be restarted to apply the change [29].

Once the application has opened again with the “LiDAR Point Cloud Support” plugin enabled, point cloud data can be uploaded to Unreal Engine by dragging a properly formatted file onto the “Viewport” window. For this specific Valentine Cave dataset, one final step was needed before the drag-and-drop action worked. The required change was to replace the “.asc” filename extension with “.xyz” instead. This was necessary for Unreal Engine to recognize the file’s data contents as a standard 3D point cloud format. As indicated in the list above, “.xyz” is a file extension supported by Unreal Engine while “.asc” is not.

The point cloud data for the Valentine Cave was then saved as a new level (separate from the default 3D Moon level) with its own “Player Start” component added to the scene. Saving as a separate level allows the lava tube scene to be loaded dynamically with a specific event from inside of the default 3D Moon level. This can be accomplished with various different actions, as described in the Landscape Mode section above. It can also be achieved by clicking on one of the dynamically loaded lunar pit sphere meshes or a hardcoded lunar coordinate range.

Figure 15a: Exterior view of Valentine Cave lava tube (5cm-resolution point cloud data)
Figure 15b: Exterior view of Valentine Cave lava tube (5cm-resolution point cloud data)
Figure 16a: Interior view of Valentine Cave lava tube (5cm-resolution point cloud data)
Figure 16b: Interior view of Valentine Cave lava tube (5cm-resolution point cloud data)

Universal Scene Description Data

The second Valentine Cave dataset used in this project was also uploaded by the Sketchfab user “pwhelley” (Dr. Patrick Whelley) in December of 2017. Entitled “Valentine Tube GPR Swath 10cm RGB”, it is lower-resolution than the point cloud data but has the advantage of fully cohesive surfaces [30]. This file — “Valentine_Tube_GPR_Swath_10cm_RGB.usdz” — is in the Universal Scene Description (USD) format developed by Pixar and open-sourced in 2016 [31]. Just like LiDAR point cloud data, USD data is supported in Unreal Engine 5 through the “USD Importer” plugin. This plugin can be enabled with the same steps used for the “LiDAR Point Cloud Support” plugin. A restart of the application is also required.

After the application has opened again with the “USD Importer” plugin enabled, there will be a new “USD Stage” item inside of the “Virtual Production” option of the “Window” topbar menu [32]. Selecting this item will open the “USD Stage” UI tab next to the “Content Drawer”, where the “File” menu can be used to upload the Valentine Cave USD file. The “.usdz” file extension is also supported by Unreal Engine, and simply indicates that it is a compressed “.usd” file.

Using the “View Mode” selector described in the Directional Lighting section above (in the top-left of the viewport window next to “Perspective”), it is possible to switch from “Lit” or “Unlit” to other supported viewing modes. The figures below show screenshots using the “Wireframe” and “Visibility Collision” modes, which are useful to visualize different aspects of the uploaded lava tube asset. Just as with the point cloud process above, a new “Player Start” component can be added to the scene. The level can then be saved and dynamically loaded from the primary 3D Moon level using the “Open Level (by Name)” Blueprint node.

Although “Lit” is the typical mode used during gameplay, it is possible to program functionality that enables players to change the “View Mode” dynamically. This can be achieved with the “Set View Mode” function, which is located in the “Viewport” Blueprint section. This function can change the “View Mode” of the current viewport to one of several predefined options, such as “Wireframe”, “Unlit”, or “Lit.” It is also possible to create new “View Mode” options with the “CustomDepth” or “CustomStencil” features.

Figure 17a: Exterior wireframe view of Valentine Cave (10cm-resolution GPR swath)
Figure 17b: Interior wireframe view of Valentine Cave (10cm-resolution GPR swath)
Figure 18a: Visibility collision view of Valentine Cave (10cm-resolution GPR swath)
Figure 18b: Selected wireframe view of Valentine Cave (10cm-resolution GPR swath)

5. Whom it May Concern

Future human habitats in lunar lava tubes have been referenced in fiction for over half a century. One example is the 02017 novel “Artemis” by acclaimed science-fiction author Andy Weir. Though his debut novel was set on Mars, the “Artemis” story takes place on the Moon, in a city that’s built directly inside of a lunar lava tube. Another earlier example is Robert A. Heinlein’s 01966 novel “The Moon is a Harsh Mistress”. This novel is also set in a future where humans have colonized the Moon. Just as in “Artemis”, the characters are living in underground lunar lava tubes. But human habitats in lava tubes are not just a figment of imagination. They are also an active topic of scientific, commercial, and political interest.

Public Agencies and Private Companies

At the time of writing this current report, there are no active missions or specific schedules to explore any lunar lava tubes. However, there are a number of space agencies and private companies that have announced lunar strategies. Plans have been widely publicized to return humans to the Moon in the coming years, and some of these missions may also include the exploration of lava tubes as part of their scientific objectives. Below is a list of programs and players that might be involved with such missions:

  • NASA’s Artemis program: The Artemis program plans to land humans on the Moon, including the first woman and first person of color. Their stated goal is to establish a sustainable presence on the lunar surface. However, as mentioned previously, “sustainable” might also mean “subsurface” when considering the surface’s harsh environment of radiation, temperature fluctuations, and meteorites.
  • SpaceX: Elon Musk’s private aerospace company is a NASA partner for the Artemis program. Plans have been announced to land humans on the Moon with a lander developed by SpaceX. With SpaceX’s long-term goal to establish a sustainable presence on Mars, it is possible that future lunar missions could include exploration of lunar lava tube habitats.
  • ispace: The HAKUTO-R Mission 1 lunar lander developed by Japanese aerospace company ispace (with EU headquarters in Luxembourg City and US headquarters in Denver, Colorado) is currently en route to lunar orbit after being launched by a SpaceX rocket [33]. If it successfully completes a soft landing on the Moon, it will make history as the first commercial company to do so. In the past, ispace has proposed tethered rovers to explore lunar lava tubes and permanently shadowed regions (PSRs).
  • Blue Origin: Blue Origin, another private aerospace company founded by Amazon CEO Jeff Bezos, has also announced its plans to land humans on the Moon by the end of the decade. Although Bezos was largely inspired by the artificial gravity cylinders proposed by Gerard O’Neill [34], it is also possible that the company’s lunar missions could include exploration of lava tubes — especially considering that lunar resources could be used for large-scale orbital structures.
  • Astrobotic Technology: This private American aerospace company is also featured in NASA’s lunar plans, in addition to having wider commercial interests. NASA’s Volatiles Investigating Polar Exploration Rover (VIPER) is expected to explore the lunar south pole and search for water ice — a critical resource for future in-situ resource utilization (ISRU) plans. It will be delivered to the lunar surface by Astrobotic’s Griffin lander, capable of larger payloads than the Peregrine lander that will launch before [35]. In addition to payload delivery and planetary mobility, the company has plans for lunar infrastructure, resource prospecting, and working towards a Moon base. All of these activities could just as well take place in lunar lava tubes.
  • OffWorld: With offices in the United States, Luxembourg, South Africa, and Australia, OffWorld has already established a global presence here on Earth. Their vision of smart robotic swarms, leveraging advanced AI/ML technologies to bolster activities in extreme environments, offers exciting potential both for terrestrial applications as well as future Lunar and Martian missions. At the present time, their primary focus is on mining technologies, construction, and infrastructure development.
  • Additional commercial companies: The following companies have all announced plans to establish business in the burgeoning lunar economy [36]. Some were involved in the Google Lunar XPRIZE competition (like ispace and Astrobotic), and many have their sights on participating in NASA’s Commercial Lunar Payload Services contract (CLPS) or similar programs in other parts of the world. Some plan to operate directly on the Moon, and others only plan for related services (such as orbital infrastructure or terrestrial ground stations):
  • OHB
  • Nokia
  • Maxar
  • United Launch Alliance
  • Lockheed Martin
  • Draper Laboratory
  • Intuitive Machines
  • Trans Astronautica Corporation
  • Lunar Outpost
  • Rocket Lab
  • SpaceIL
  • GITAI
  • Moon Express
  • Firefly Aerospace
  • Surrey Satellite Technologies
  • Swedish Space Corporation (SSC)
  • Orbit Beyond
  • Moonscape
  • Planetoid Mines Company
  • UARX Space Solutions
  • Moon Fibre
  • Lunar Resources
  • Sperospace
  • Takasago Thermal Engineering
  • Lunar Water Supply Company
  • Celestial Space Technologies
  • Space Initiatives
  • ATLAS Space Operations
  • Fibertek
  • Indicium Space
  • Lunar Resources Registry
  • Lunar Ascent
  • Magellan Aerospace
  • ILC Dover
  • Dymon
  • Firehawk Aerospace
  • Lunargistics
  • Additional national and international space agencies: In addition to NASA, the following agencies are also supporting future lunar research, and some have claimed they plan to land humans on the Moon:
  • The European Space Agency (ESA)
  • The Luxembourg Space Agency (LSA)
  • The European Space Resources Innovation Centre (ESRIC)
  • The China National Space Administration (CNSA)
  • The Japanese Aerospace Exploration Agency (JAXA)
  • The Indian Space Research Organisation (ISRO)
  • The Russian Federal Space Agency (Roskosmos)
  • The Israel Space Agency (ISA)
  • The United Arab Emirates Space Agency (UAESA)
  • The Australian Space Agency (ASA)
  • The Canadian Space Agency (CSA)

It’s important to note that the specific scientific objectives of all discussed missions have not yet been fully determined, and it is very possible that the exploration of lava tubes may not be a priority for all. However, given the potential scientific and economic importance of lunar lava tubes, it is likely that they will be a target of exploration for at least some of the entities above.

Scientific Research Groups

Understanding the state-of-the-art as well as the history of lunar research can help to inform the direction of future simulations in Unreal Engine. Below is a chronological sampling of randomly selected scientific works related to lunar lava tube science or lunar habitats:

  • 1985: “Lava Tubes: Potential Shelters for Habitats” [37]

This paper — proposed through the NASA Johnson Space Center’s Experimental Planetology Branch — claims that the “drained conduits of underground lava rivers” on the Moon have inner dimensions ranging from “tens to hundreds of meters,” with prevailing temperatures of around –20°C that are quite manageable for “human activities and industrial operations”. It clearly states that “significant operational, technological, and economical benefits might result if a lunar base were constructed inside a lava tube.”

  • 1990: “Genesis lunar outpost: An evolutionary lunar habitat” [38]

This paper describes a series of studies carried out by researchers from the University of Wisconsin-Milwaukee Department of Agriculture. These studies included contributions by “students from architecture and mechanical and structural engineering with backgrounds in interior design, biology and construction technology”. The results were three different design alternatives for human habitation on the Moon, and “an integrated design for an early stage lunar outpost”.

  • 1992: “A search for intact lava tubes on the Moon: Possible lunar base habitats” [39]

This study investigated potential locations of intact lava tubes for lunar base habitats by analyzing visible sinuous rilles on the surface of the Moon. Sinuous rilles are long, narrow depressions formed from surface lava flows or collapsed lava tubes. For this particular research, the investigators established criteria for identifying intact lava tube segments from sixty-seven possible candidates of sinuous rilles in four distinct mare regions. Each candidate was ranked “for lunar base suitability based on its dimensions, stability, location, and access to lunar resources.” The final results showed nine of the sixty-seven candidates to be particularly promising locations.

  • 1992: “Aerospace architecture: A comparative analysis of five lunar habitats” [40]

This paper looks at trade-offs between efficiency and habitability in the context of five potential lunar habitat architectures. The architectures are each expected to meet certain base criteria, including the ability to “house a full-time multinational, multicultural crew of 18–24 men and women astronauts, scientists, engineers, and perhaps architects on rotations of 6 to 9 months with a maximum change-out of 20 months to 2 years”. Furthermore, it states that “any permanent presence lunar habitat must include crew quarters, research work space, and all necessities and amenities including health maintenance facility, exercise facility, hygiene facilities, private and group recreation space, dining area for teleconferencing and meetings, command center, storage for logistics, and some special places for psychological retreat.” Unsurprisingly, the results of this paper show a “fundamental inverse relation” between spatial efficiency and habitability — meaning that in order to make the satisfaction and productivity of habitees go up, the project costs must rise accordingly.

  • 1997: “Lunar lava tubes and artificial tunnels: habitations for the near term future” [41]

This shorter paper describes the possibility of using robotically excavated lunar tunnels in addition to naturally existing lunar lava tubes. In both cases, such an environment would offer the benefits of “avoiding radiation, micrometeorites impacts, and the dust”. Dust is an often overlooked danger for operations on the lunar surface, both for mechanical efficiency as well as human health. The paper goes on to discuss the thickness of lava tube roofs (citing some measurements around 10 meters) and describes how “air can be sealed tightly within inflatable balloons” to establish breathable atmospheres in these protected cavernous regions. It suggests that sufficient levels of oxygen can be maintained with plant ecosystems that are nurtured in strategic branches of the tunnel networks. One could imagine planning and simulating such a dispersed system using a 3D environment like Unreal Engine.

  • 1998: “Utility of Lava Tubes on Other Worlds” [42]

This paper describes how many lunar lava tubes are found in economically beneficial locations “near mare-highland boundaries, giving access to a variety of minerals and other resources, including steep slopes, prominent heights for local area communications and observation, large-surface areas in shade, and abundant basalt plains suitable for landing sites, mass-drivers, surface transportation, regolith harvesting, and other uses”. It also details some of the ways in which lava tubes can be studied, including not only “visual observations of collapse trenches and skylights” but also “ground-penetrating radar, gravimetry, magnetometry, seismography, atmospheric effects, laser, lidar, infrared, and human or robotic exploration” — many of which were also described above in the 3D Lava Tube Maps section.

  • 2002: “Lunar Lava Tube Radiation Safety Analysis” [43]

This paper reiterates previous claims that lunar lava tubes offer “shelter from various natural hazards, such as cosmic radiation, meteorites, micrometeoroids, and impact crater ejecta” in addition to “providing a natural environmental control, with a nearly constant temperature, unlike that of the lunar surface showing extreme variation in its diurnal cycle”. Selecting just one of these criteria, it successfully demonstrates the radiation safety of lunar lava tube environments “by considering radiation from galactic cosmic rays (GCR) and Solar Particle Events (SPE) interacting with the lunar surface, modeled as a regolith layer and rock”. For rock and regolith modeling purposes, it uses the chemical composition “typical of the lunar regions where the largest number of lava tube candidates are found”.

  • 2005: “Lunar and Martian Sub-surface Habitat Structure Technology Development and Application” [44]

Similar to previous studies, this paper details how “subsurface dwellings can provide complete radiation, micrometeorite and exhaust plume shielding and a moderate and constant temperature environment”. The shielding from space vehicle exhaust plumes is an interesting addition to the list of other protections offered. This paper also describes some of the technical challenges associated with subsurface habitats, including “surface penetration (digging and mining equipment), environmental pressurization, and psychological environment enhancement requirements”. Furthermore, it suggests that unroofed rilles and lava tubes are similarly viable options for future habitats. While the absence of a natural roof certainly reduces some of the natural protection these environments offer, one can imagine that a partially transparent roof might be preferable when considering the psychological well-being of astronauts.

  • 2012: “Lunar Holes and Lava Tubes as Resources for Lunar Science and Exploration” [45]

This paper describes how “skylights” — or openings in the roofs of lunar lava tubes — are potential candidates for entrance ways into subsurface locations. It further reiterates the findings of earlier research, stating that “surface temperatures vary widely, over a day-night range of more than 300 K”. Although an open roof may negatively impact the temperature stability of a localized lunar lava tube area, “skylights” still offer an economical benefit by providing natural, efficient entrance points to the protected subsurface networks.

  • 2016: “The structural stability of lunar lava tubes” [46]

This paper cites “mounting evidence from the SELENE, LRO, and GRAIL” missions that there are vacant subsurface lunar locations that would benefit future human exploration. It states that “GRAIL evidence, in particular, suggests that some may be more than a kilometer in width”, which would provide ample space to establish a habitat. The primary concern of this research is whether or not such large spaces would be structurally sound and actually safe for long-term habitation. The investigators found that “with a roof 2 meters thick, lava tubes a kilometer or more in width can remain stable.” They claim that, although “the theoretical maximum size of a lunar lava tube depends on a variety of factors”, their results show that “lava tubes up to 5 km wide may be able to remain structurally stable”.

  • 2020: “Lunar lava tubes: Morphology to structural stability” [47]

Despite investigations like the previously listed paper, these researchers claim that “the size and geometry configurations under which the lava tubes are stable are not well-defined and there are no well-established criteria for their stability”. To address this perceived gap in stability criteria, they provide analytical solutions which “use the flow characteristics of molten lava and the limit equilibrium analysis of the collapsed pits to estimate the size of the tubes”. They then conduct numerical analyses “for different geometries and for different material properties of the lava”. They determine key parameters for the stability of the tubes, which are “the roof thicknesses and the strength of the lava, in particular, its tensile strength”. In other words, wider tubes require thicker roofs and higher tensile strength to remain stable. Corroborating the results from the previous listed paper, these researchers found that “1 km wide lava tubes are likely to exist and remain stable” but that for tubes with significantly larger widths, “minimum roof thicknesses of a few hundred meters might be necessary to preserve their stability”.

  • 2022: “Plausible Detection of Feasible Cave Networks Beneath Impact Melt Pits on the Moon Using the Grail Mission” [48]

Using gravity data collected by the Gravity Recovery and Interior Laboratory (GRAIL) mission, these researchers conducted analysis on seven lunar regions in search of complete cave networks — not just individual lava tubes. Their study “revealed a mass deficit in some impact melt pits in four lunar regions (Copernicus, King, Stevinus, and Tycho)”. They therefore propose the existence of cave networks in these regions, “indicated by the gravitation reduction in the impact melt pits region”. The existence of many interlinked lava tubes suggests the possibility of full-scale subsurface city architectures, not only just one-off individual habitats.

  • 2022: “Pressurized lunar lava tubes for habitation” [49]

These researchers aim to further the study of lunar lava tubes by “presenting the possibility of pressurizing them with breathable air”. The same idea was previously mentioned above in a 1997 paper. However, in this study from 2022, a “2D ANSYS simulation model” was applied over “a range of lava tube sizes”, each of which being “subjected to varied magnitudes of internal pressurization”. The results of this study indicate that “it is possible to pressurize a small lava tube while maintaining its structural integrity”.

  • 2022: “The evolution of lunar habitat concepts” [50]

As its title indicates, this study describes the evolution of lunar habitat concepts over the last half century, claiming that “the basic habitat structural options have not fundamentally changed” over that time despite technical advances and an increased understanding of the lunar environment. Similar to the list of studies above, “this paper is only meant to provide an overview of the subject and is not representative of the literature, which numbers in the tens of thousands of documents”.

6. Case Study on a Proposed Mission Concept

Colorado, USA, is a hotspot for aerospace science and engineering. From industry giants like Ball Aerospace and United Launch Alliance to newer ventures like ispace and Lunar Outpost, many companies have their US headquarters in the state.

In addition to commercial players like these, Colorado also boasts great academic institutions. One such example is the Colorado School of Mines, a public research university with a unique Space Resources graduate program and luminaries from the field like Dr. Angel Abbud-Madrid. Many alumni have used this as a launchpad to jumpstart their careers in the lunar economy.

In 2021, Mines PhD student Joshua Ehrlich proposed DUSTEE — Deployed Untethered Swarm Trackers and Expendable Explorers. Taking note of industrial CubeSat advancements, the technology was proposed with consideration of modern hardware standardization and miniaturization. The wider team involved with this project was composed of both Mines students and employees from Lockheed Martin.

These swarms of roughly spherical robots are intended to be interlinked together and are specifically designed to “investigate the Moon’s permanently shadowed regions, as well as craters, lava tubes and lava channels” [51]. Mission concepts involving such hardware will benefit from accurate simulations for planning. Detailed 3D subsurface maps will be needed to develop a robust architecture, like spacing of the robotic swarm nodes ensuring that efficient communication links are possible.

The term “swarm” was first used in robotics by G. Beni and J. Fukuda in 1988. They proposed the concept of “swarm intelligence” as a control strategy for distributed mobile robots and introduced the idea of a “swarm” of robots working together to accomplish a common goal. The wider field of swarm robotics grew in following years. Some key characteristics of swarm robotics are [52]:

  • Autonomy: Robotic swarm systems generally require autonomous robots that can interact together without explicit instruction for every individual action.
  • Quantity: Such systems enable large numbers of robots for singular operations.
  • Limited capabilities: Individual robots in a swarm are generally not super capable alone. Their efficiency in carrying out operations comes from group cooperation.
  • Scalability and robustness: Robotic swarm systems are intended to be both scalable and robust. Increasing the number of units should often improve overall performance. Parallels can be drawn between this and cloud computing systems.
  • Distributed coordination: Coordination between robots in a swarm is generally distributed. This means that individual robots have limited local capabilities — both in regards to sensing and communication.

This final characteristic is particularly relevant in the context of simulation systems. What it means is that each robotic node in a swarm has a radius in which it can operate effectively. Planning a complex deep space science mission using such a system of interconnected nodes requires a way to visualize overlapping radii of sensing and communication capabilities.

Now that the Unreal Engine workflow described in this report has been established, it’s easy to imagine simulating missions with hardware like DUSTEE robots. Opaque spherical meshes could be distributed along the interior of a 3D lava tube map to represent locations and dimensions of the robotic hardware. Sharing the same center point as these spheres, larger and semi-transparent meshes could visualize the sensing and communication ranges that are capable with each robot. From there, a mission planning team could quickly determine how many DUSTEE spheres are required to establish and maintain an end-to-end data transfer relay network.

Figure 19a: Valentine Cave (10cm-resolution GPR swath) with single simulated robotic agent. The large sphere represents the possible sensor and/or communication range. The smaller sphere represents a spherical robot.
Figure 19b: Valentine Cave (10cm-resolution GPR swath) with simulated robotic agents. Large spheres represent possible sensor and/or communication ranges. Smaller spheres represent spherical robots.
Figure 20: Mesh groups selected for manual placement during the robotic mission planning process.
Figure 21: Zoomed out view of the swarm robotics mesh network, showing that 10 agents are required for this particular lava tube segment, given the specific simulated communications ranges.
Figure 22: Zoomed in view of robotic mesh network.
Video Link: https://youtu.be/mEuW1r3P7XY

Technologies needed to deliver and install the spheres could then be considered. Due to certain geological features in the lunar lava tube, some locations might prove to be more difficult for installation. In these cases, alternative hardware might be needed, perhaps more akin to the ReachBot platform proposed for Martian caves [53]. Again, Unreal Engine could be used to simulate the sensing and communication range, ending with a heterogenous architecture utilizing various robotic designs.

The end result would be a simulated ecosystem of diverse robotic nodes in a swarm, communicating from deep in a lunar lava tube to a ground station back on the lunar surface. Unreal Engine could also simulate the orbit of a communications satellite or the future Lunar Gateway [54], so the time it takes for data to reach a human could be considered too.

Finally, it’s also possible to connect an Unreal Engine project to a live, continuously updating data API. Unreal Engine has built-in support for HTTP and JSON data formats, so requests can be made to a REST API for pulling and pushing data in real-time. This can be done using C++ code as well as the Blueprint visual scripting system, and in theory implies that Unreal Engine could be used for live mission control as well.

7. Conclusions and Future Work

The primary intention of this project was to develop a proof-of-concept implementation with associated workflows for lunar mission planning and scientific data investigation. Unreal Engine 5 efficiently handled all of the challenges thrown its way, and proved itself to be a top-tier tool for these and other applications. A demonstration video showcasing various features described in this report can be viewed here:

With regards to the specific work done for this project, there are various aspects that could be refined and plenty of room for additional development. Below are several ideas for future research investigations:

  • Instead of using the basic, uniform sphere mesh provided by Unreal Engine 5, a “sculpted” sphere mesh could be created by integrating the lunar DEM into the actual mesh geometry. This can be done with specialized modeling software such as Blender or Autodesk Maya, then imported into Unreal Engine as the base mesh for the 3D Moon.
  • Lunar pit locations are currently visualized with simple sphere meshes, a single static size, and a single solid color. Given the wealth of information included in the dataset from Wynne et al (2022), these styles could be changed dynamically based on the pit depth, diameter, terrain type, or other related data.
  • Additional lunar datasets could be integrated into the simulation. One specific example is the high-resolution lunar gravity field data collected by NASA’s GRAIL mission and hosted in NASA’s Planetary Data System (PDS) Geosciences Node through Washington University in St. Louis [55].
  • There are various different strategies for high-resolution rendering that could be investigated further. Some of these are described in the aforementioned presentation by NASA’s Jack Kincaid and Lee Bingham at Unreal Fest 2022, such as Landscapes, Nanite Meshes, and Clipmaps [4]. Other specific options are Unreal Engine’s “Procedural Mesh” functionality or extruding a plane using shaders. Dynamic meshes also support features like dynamic tessellation.
  • As described in the Unreal Fest 2022 presentation by NASA’s Jack Kincaid and Lee Bingham, Unreal Engine 5 offers a “fully dynamic global illumination and reflections system” called Lumen that could be integrated for robust simulations of solar radiation on the Moon [56]. This could be used for estimating the power generation of solar panels on individual robots and rovers, or for future large-scale solar power production facilities with complex mirror arrays. One tangible example of the latter is the Sun Flower™ system proposed by Trans Astronautica Corporation [57]. Another example is Astrobotic’s LunaGrid, a commercial power service for the poles of the Moon, announced at the 73rd International Astronautical Congress in Paris [58].
  • Space mining and in-situ resource utilization (ISRU) are critical aspects of humanity’s future ambitions on the Moon, asteroids, and elsewhere. Researchers like Carlos Daniel Espejel and Philippe Ludivig at ispace inc. — the Japanese lunar exploration company with its European headquarters in Luxembourg City — are generating maps of lunar resources for future extraction and utilization [59]. Integrating such datasets into lunar simulations is valuable to various stakeholders.
  • The implementation of a realistically oriented sky map, along with an accurate lunar orbit simulation, could potentially enable star tracker hardware simulation. This would be especially valuable for simulating the attitude determination and control subsystem (ADCS) for satellite missions to the Moon. Satellite positioning, navigation, and timing services (PNT) will be a critical component of future lunar robotics operations.
  • Although Unreal Engine already provides the functionality for adding custom meshes to a project from the editor mode, it might also be useful to implement a Blueprint feature for dynamic obstacle generation during gameplay. This would allow the project to be shared using standard video game deployment processes and utilized by non-developers. Players could then, for example, create rocks dynamically to simulate rover or lander interactions. They could also potentially upload CAD models of their own spacecraft or lunar facility designs.
  • Custom user profiles are supported by Unreal Engine, with data saved as JSON or CSV files. Such functionality could be leveraged to save both user preferences as well as the current game state. This would be especially useful if dynamic obstacle generation was implemented as described above. Users could then add custom features and save the game without losing their work.
  • Workflows for exporting to external simulation software applications could be investigated and implemented. One example of a destination environment is Gazebo, an open-source 3D robotics simulator often used alongside the Robot Operating System (ROS). Another example is Isaac Sim developed by Nvidia, which can also be used as a tool to build robotic experiments in virtual worlds.
  • The existing implementation and development notes could be shared with researchers actively working on exploration missions to lunar subsurface access points. One example of such a mission concept is “Moon Diver”, with NASA JPL’s Dr. Laura Kerber as Principal Investigator [60]. Others who have not yet been mentioned previously are Dr. Timothy Titus and Dr. Kaj Williams from the U.S. Geological Survey Astrogeology Science Center [61].
  • This project could be extended to additional locations in the solar system that have subsurface access points described in Wynne et al (2022). The other planetary bodies referenced in their research are Mars, the dwarf planet Ceres, Jupiter’s moon Europa, Saturn’s moons Triton and Enceladus, Neptune’s moon Triton, and Pluto’s moon Charon.

Acknowledgements

First and foremost, I would like to thank Antoine Richard for serving as my advisor throughout the semester in which this project was implemented. His direction, support, and network of knowledgeable experts was invaluable for the completion of the project. One specific expert, Sebastian Pape, was also kind enough to attend a meeting and answer specific implementation questions. Dr. Richard was recommended by Miguel A. Olivares-Mendez, Head of the Space Robotics Research Group (SpaceR) as well as the ISM’s LunaLab. Marielle Mabille was very helpful in facilitating weekend access to the LunaLab hardware.

Another important acknowledgement is to Jut Wynne — a world-class cave scientist and professor at Northern Arizona University — whose team compiled the dataset of lunar subsurface access points from various disparate sources. Dr. Wynne was quick to respond to my unsolicited email, and pointed me to the Harvard Dataverse archive where I was able to download the necessary data.

Additional support was obtained through publicly available video content, some of which has been referenced throughout this report. Thilina Premasiri, of the “CodeLikeMe” YouTube channel, created an excellent 18-minute tutorial called “Unreal Engine 5 Moon Material” [62]. The tutorial was used as an initial starting point for this project. NASA’s Jack Kincaid and Lee Bingham also provided helpful practical advice in their presentation at Unreal Fest 2022 [4]. Although this project was already well underway at the time of their presentation, they confirmed several initial assumptions and conclusions, provided helpful details regarding how to scale DEM axes in “Landscape” mode, and also pointed to interesting future work for high-resolution data.

Tutorials hosted on the Epic Games developer forums also helped significantly with learning Unreal Engine’s features. One that was especially thorough and relevant to the work conducted in this report was created by Simon Blakeney and covered external CSV data imports [25].

I would also like to acknowledge all of the scientists, engineers, and explorers who have worked to expand humanity’s knowledge of the cosmos. This applies to missions like the Lunar Reconnaissance Orbiter (LRO), star mapping initiatives Hipparcos-2 and Tycho-2, cave explorations on our home planet Earth, and also to the creation of simulation software like Unreal Engine by Epic Games.

Finally, thank you, oh dearest of readers, if you’ve managed to read this far. Or even if you scrolled through everything quickly and randomly rested here. It’s up to you now; either way, it’s on you; to make Something out of the Nothing hereby enclosed. Best of luck and happy travels. May the solar wind be always at your back. May new stars shine warm upon your face.

References

  1. IGN. “History of the Unreal Engine”. https://www.ign.com/articles/2010/02/23/history-of-the-unreal-engine. 24 February 2010. Updated 14 June 2012.
  2. TechCrunch. “How Unity built the world’s most popular game engine”. https://techcrunch.com/2019/10/17/how-unity-built-the-worlds-most-popular-game-engine/. 17 October 2019.
  3. Dan Nord. Maxar. “The Real-World Metaverse Needs Satellite Imagery”. https://blog.maxar.com/earth-intelligence/2022/the-real-world-metaverse-needs-satellite-imagery. 27 October 2022.
  4. “NASA Lunar Terrain Visualization in Unreal Engine 5 | Unreal Fest 2022”. https://www.youtube.com/watch?v=VISq_V4W6LU. 31 October 2022.
  5. CGHero. “What is Nanite?”. https://cghero.com/glossary/what-is-nanite. Accessed 27 December 2022.
  6. “Behind the scenes of Netflix’s ‘In Vaulted Halls Entombed’ | Spotlight | Unreal Engine”. https://www.youtube.com/watch?v=9R0eRZgzkxQ. 27 June 2022.
  7. Phil Hayton. “Nvidia RTX 4090 — release date, price, specs, and benchmarks”. https://www.pcgamesn.com/nvidia/rtx-4090-release-date-price-spec-and-benchmarks. Accessed 27 December 2022.
  8. University of Luxembourg. “LunaLab”. https://ism.uni.lu/facility/luna-lab/. Accessed 27 December 2022.
  9. “What is the best OS for UnrealEngine to operate on?”. https://forums.unrealengine.com/t/what-is-the-best-os-for-unrealengine-to-operate-on/479569. March 2021.
  10. “Get started with Unreal Engine”. https://www.unrealengine.com/en-US/download. Accessed in October 2022.
  11. Unreal Engine Developer Forums. “Event on StaticMesh”. https://forums.unrealengine.com/t/event-on-staticmesh/324982/2. Accessed 10 December 2022.
  12. Unreal Engine Developer Forums. “How to find in game lat / long?” https://forums.unrealengine.com/t/how-to-find-in-game-lat-long/382091. Accessed in December 2022.
  13. NASA SVS. “The Tycho Catalog Skymap — Version 2.0”. https://svs.gsfc.nasa.gov/3572. 26 January 2009.
  14. European Southern Observatory. “Welcome to the ESO Science Archive Facility”. http://archive.eso.org/cms.html. Accessed in December 2022.
  15. Mark Johanson. CNN. “What it’s like to visit Mars on Earth”. https://edition.cnn.com/travel/article/atacama-desert-chile-mars/index.html. 6 April 2021.
  16. NASA SVS. “CGI Moon Kit”. https://svs.gsfc.nasa.gov/4720. 6 September 2019.
  17. NASA. USGS. Moon LRO LOLA DEM 118m v1. https://astrogeology.usgs.gov/search/details/Moon/LRO/LOLA/Lunar_LRO_LOLA_Global_LDEM_118m_Mar2014/cub. Accessed in December 2022.
  18. Mark Robinson. NASA. “Mountains of the Moon: Zeeman Mons”. http://lroc.sese.asu.edu/posts/944. 20 November 2017.
  19. “The LRO Instruments”. https://lunar.gsfc.nasa.gov/instruments.html. Accessed in December 2022.
  20. “In Depth | GRAIL”. https://solarsystem.nasa.gov/missions/grail/in-depth/. Accessed in December 2022.
  21. “In Depth | Kaguya”. https://solarsystem.nasa.gov/missions/kaguya/in-depth/. Accessed in December 2022.
  22. Nancy Atkinson. Universe Today. “Lava Tubes on the Moon Maintain Comfortable Room Temperatures Inside”. https://www.universetoday.com/156932/lava-tubes-on-the-moon-maintain-comfortable-room-temperatures-inside/. Posted on 28 July 2022.
  23. Wynne, J. J., Mylroie, J. E., Titus, T. N., Malaska, M. J., Buczkowski, D. L., Buhler, P. B., et al. (2022). “Planetary caves: A solar system view of processes and products”. Journal of Geophysical Research: Planets, 127, e2022JE007303. https://doi.org/10.1029/2022JE007303
  24. Wynne, J. Judson; Michael Malaska; Glen E. Cushing; Robert V. Wagner; Elodie Lesage; Karl L. Mitchell; Peter B. Buhler; Kynan Hughson, 2022, “Supporting Information for: Planetary Caves: A Solar System View of Processes and Products”. https://doi.org/10.7910/DVN/1OLNC4, Harvard Dataverse, V1.
  25. Simon Blakeney. Epic Games. “Importing coordinates for automatic static mesh placement”. https://dev.epicgames.com/community/learning/tutorials/Gj/unreal-engine-importing-coordinates-for-automatic-static-mesh-placement Accessed in December 2022.
  26. Matt Williams. Universe Today. “This Bizarre Image Is The World’s Largest 3D Map of a Lava Tube”. https://www.sciencealert.com/scientists-and-an-astronaut-capture-amazingly-detailed-3d-scans-of-lava-tubes-in-spain. 20 March 2018.
  27. Collection of various datasets compiled by Paulo Rodrigo Simões. “Espeleologia”. https://sketchfab.com/rollingdrone/collections/espeleologia-3ae7e26c413c4077a4250dbc9980ebe9. Accessed in December 2022.
  28. Patrick Whelley. User: “pwhelley”. “Valentine Cave Lava Tube 5cm”. https://sketchfab.com/3d-models/valentine-cave-lava-tube-5cm-8e8cd77139b54f3d8912c00881af7214. 4 December 2017.
  29. “LiDAR Point Cloud Plugin Quick Start Guide”. https://docs.unrealengine.com/5.0/en-US/lidar-point-cloud-plugin-quick-start-guide-in-unreal-engine/. Accessed in December 2022.
  30. Patrick Whelley. User: “pwhelley”. “Valentine Tube GPR Swath 10cm RGB”. https://sketchfab.com/3d-models/valentine-tube-gpr-swath-10cm-rgb-19f3025fe7f1474a99e5d1ec2877bb0b. 8 December 2017.
  31. Pixar. “Introduction to USD”. https://graphics.pixar.com/usd/release/intro.html. Accessed in December 2022.
  32. 3D Education with JC. “Unreal Engine 5 (&4) — Intro to using USD (Universal Scene Description)”. https://www.youtube.com/watch?v=t4U8-rYwR0k. 8 April 2022.
  33. ispace, inc. “ispace HAKUTO-R Mission 1 Lander Status”. https://ispace-inc.com/news-en/?p=4139. Accessed in December 2022.
  34. TAPinto Staff. “Jeff Bezos, Inspired by Princeton’s Gerard O’Neill, Aims for Space”. https://www.tapinto.net/towns/princeton/sections/spotlight-on-princeton/articles/jeff-bezos-inspired-by-princeton-s-gerard-o-neill-aims-for-space. 19 July 2021.
  35. Astrobotic. “Lunar Landers”. https://www.astrobotic.com/lunar-delivery/landers/. Accessed in December 2022.
  36. Erik Kulu. “In-Space Manufacturing & Space Economy”. www.factoriesinspace.com. Accessed in January 2023.
  37. Friedrich Hörz. “Lava Tubes: Potential Shelters for Habitats”. IN: Lunar bases and space activities of the 21st century (A86–30113 13–14). Houston, TX, Lunar and Planetary Institute, 1985, p. 405–412. https://adsabs.harvard.edu/pdf/1985lbsa.conf..405H. 1985.
  38. Gary Moore, Dino Baschiera, Joe Fieber, Janis Moths. “Genesis lunar outpost: An evolutionary lunar habitat”. USRA, Proceedings of the 6th Annual Summer Conference. https://ntrs.nasa.gov/citations/19910008845. 1 November 1990.
  39. Cassandra Coombs and Ray Hawke. “A search for intact lava tubes on the Moon: Possible lunar base habitats”. NASA. Johnson Space Center, The Second Conference on Lunar Bases and Space Activities of the 21st Century, Volume 1. https://ntrs.nasa.gov/citations/19930008249. 1 September 1992.
  40. Gary Moore and Patrick Rebholz. “Aerospace architecture: A comparative analysis of five lunar habitats”. AIAA 1992–1096. Aerospace Design Conference. https://arc.aiaa.org/doi/abs/10.2514/6.1992-1096. February 1992.
  41. A. A. Mardon. “Lunar lava tubes and artificial tunnels: habitations for the near term future”. Lunar and Planetary Science XXVIII. https://adsabs.harvard.edu/pdf/1997LPI....28..869M. 1997.
  42. Bryce Walden, T.L. Billings, Cheryl York, S.L. Gillet, M.V. Herbert. “Utility of Lava Tubes on Other Worlds”. Workshop on Using In Situ resources for Construction of Planetary Outposts. https://ntrs.nasa.gov/citations/19990026765. 1 January 1998.
  43. Giovanni De Angelis, J.W. Wilson, M.S. Clowdsley, J.E. Nealy, D.H. Humes, J.M. Clem. “Lunar Lava Tube Radiation Safety Analysis”. Journal of Radiation Research, Volume 43, Issue Suppl, Pages S41–S45, https://doi.org/10.1269/jrr.43.S41. December 2002.
  44. Penelope Boston and Janet Strong. “Lunar and Martian Sub-surface Habitat Structure Technology Development and Application”. NASA Conference Paper. https://ntrs.nasa.gov/citations/20050109883. 1 January 2005.
  45. Junichi Haruyama, Tomokatsu Morota, Shingo Kobayashi, Shujiro Sawai, Paul G. Lucey, Motomaro Shirao, Masaki N. Nishino. “Lunar Holes and Lava Tubes as Resources for Lunar Science and Exploration”. Moon (pp.139–163). https://www.researchgate.net/publication/284354536_Lunar_Holes_and_Lava_Tubes_as_Resources_for_Lunar_Science_and_Exploration. January 2012.
  46. David M. Blair, Loic Chappaz, Rohan Sood, Colleen Milbury, Antonio Bobet, H. Jay Melosh, Kathleen C. Howell, Andrew M. Freed. “The structural stability of lunar lava tubes”. Icarus Volume 282, 15 January 2017, Pages 47–55. https://www.sciencedirect.com/science/article/pii/S0019103516303566. 8 October 2016.
  47. Audai K. Theinat, Anahita Modiriasari, Antonio Bobet, H. Jay Melosh, Shirley J. Dyke, Julio Ramirez, Amin Maghareh, Daniel Gomez. “Lunar lava tubes: Morphology to structural stability”. Icarus, Volume 338, 2020, 113442, ISSN 0019–1035, https://doi.org/10.1016/j.icarus.2019.113442. 1 March 2020.
  48. Ik-Seon Hong and Yu Yi. “Plausible Detection of Feasible Cave Networks Beneath Impact Melt Pits on the Moon Using the Grail Mission”. Remote Sens. 2022, 14(16), 3926. https://doi.org/10.3390/rs14163926. 12 August 2022.
  49. Raymond P. Martin and Haym Benaroya. “Pressurized lunar lava tubes for habitation”. Acta Astronautica, Volume 204, 2023, Pages 157–174, ISSN 0094–5765, https://doi.org/10.1016/j.actaastro.2022.12.013. 16 December 2022.
  50. Haym Benaroya. “The evolution of lunar habitat concepts”. International Journal of Space Structures. https://journals.sagepub.com/doi/abs/10.1177/09560599221119103. 2022.
  51. Jasmine Leonas. “These miniature Death Stars could improve the future of lunar exploration”. https://www.minesnewsroom.com/news/these-miniature-death-stars-could-improve-future-lunar-exploration. 6 April 2021.
  52. RoboticsBiz. “Advantages And History Of Swarm Robotics (SR) Explained”. https://roboticsbiz.com/advantages-and-history-of-swarm-robotics-sr-explained/. 1 November 2021.
  53. Marco Pavone. Stanford University. “ReachBot: Small Robot for Large Mobile Manipulation Tasks in Martian Cave Environments”. https://www.nasa.gov/directorates/spacetech/niac/2022/ReachBot/. 25 February 2022.
  54. NASA. “Gateway”. https://www.nasa.gov/gateway/overview. 17 November 2022.
  55. PDS Geosciences Node. “Gravity Recovery and Interior Laboratory”. https://pds-geosciences.wustl.edu/missions/grail/default.htm. 10 October 2022.
  56. “Lumen Global Illumination and Reflections”. https://docs.unrealengine.com/5.0/en-US/lumen-global-illumination-and-reflections-in-unreal-engine/. Accessed in December 2022.
  57. Joel Sercel. Trans Astronautica Corporation. “Lunar Polar Propellant Mining Outpost (LPMO): A Breakthrough for Lunar Exploration & Industry”. https://www.nasa.gov/directorates/spacetech/niac/2020_Phase_I_Phase_II/Lunar_Polar_Propellant_Mining_Outpost/. 7 April 2020.
  58. Astrobotic. “Announcing LunaGrid, a Commercial Power Service for the Moon”. https://www.astrobotic.com/announcing-lunagrid-a-commercial-power-service-for-the-moon/. 19 September 2022.
  59. Luxembourg National Research Fund. Research with impact: FNR Highlights. “Research meets industry: A mine planning methodology for space”. https://www.fnr.lu/research-with-impact-fnr-highlight/mine-planning-methodology-for-space/. Accessed in December 2022.
  60. Laura Kerber. NASA JPL. “Moon Diver Mission Concept”. https://scienceandtechnology.jpl.nasa.gov/moon-diver-mission-concept. Accessed January 2023.
  61. Timothy Titus, Kaj Williams, J. Judson Wynne. USGS. “Caves Across the Solar System”. https://www.usgs.gov/centers/astrogeology-science-center/news/caves-across-solar-system. 17 January 2023.
  62. Thilina Premasiri. CodeLikeMe. “Unreal Engine 5 Moon Material”. https://www.youtube.com/watch?v=HQJ6Or_7Yzo. 4 May 2022.

--

--