ISRO Immersion 2024 · Finalist

3D Lunar Surface Modeling from Chandrayaan-2 TMC DEM Data

Ritabrata Chakraborty

Team Antariksh Anveshak · Birla Institute of Technology and Science, Pilani, India

AI for Space and Geospatial Innovation track, ISRO Immersion Startup Challenge, July 2024

Overview

This project turns Chandrayaan-2 Terrain Mapping Camera (TMC) digital elevation models into explorable, true-scale lunar terrain in Unreal Engine 5. Each DEM tile is converted into a 16-bit heightmap, the Moon's curvature is added relative to the tile centre, and a null-value mask hides gaps in the data. The terrain is then lit with an adjustable sun (azimuth, elevation and intensity) and rendered with Lumen, Nanite and World Partition, so the same pipeline serves visual inspection, mission planning and training scenarios.

Grey lunar terrain rendered in Unreal Engine 5, showing craters and ridges lit at a low sun angle
Figure 1: UE5 Recreation of Chandrayaan-2 TMC Tile ch2_tmc_ndn_20220614T1810117259_d_dtm_d32

Keywords: Chandrayaan-2, TMC, Digital Elevation Model, Lunar Terrain, Heightmap, Unreal Engine 5, Lumen, Nanite, World Partition, QGIS

Highlights

< 10 sper DEM tile, from import to heightmap, with the automation plugin
16-bitheightmaps: 65,536 height levels instead of 256 at 8-bit
10 mtypical TMC spatial resolution, used to scale the terrain in UE5
FinalistISRO Immersion Startup Challenge, AI for Space and Geospatial Innovation

Method

Flat-base heightmap plus lunar curvature equals curved heightmap, imported into UE5, then a mask removes null areas
Figure 2: Heightmap with Flat Base + Lunar Curvature = Curved Heightmap, Imported into UE5; the Null-Value Mask Then Removes the Invalid Boundary (Red)

Rendering

The sun is a directional light whose azimuth, elevation and intensity can be changed live, with a Milky Way sky sphere for background illumination. Low sun elevations bring out crater rims and ridges, which matters for landing-site and traverse analysis.

The same lunar tile rendered under three sun settings
Figure 3: One Tile Under Three Sun Settings. (Left to Right) Azimuth 270°, Elevation 10°, 2.5 lux; Azimuth 270°, Elevation 15°, 2.5 lux; Azimuth 180°, Elevation 15°, 1 lux
Lunar tile rendered with Lumen disabled (top) and enabled (bottom)
Figure 4: Lumen Disabled (Top) and Enabled (Bottom)
Two wireframe views of the lunar mesh, zoomed out and zoomed in, comparing Nanite (blue) and traditional (orange) meshes
Figure 5: Lunar Surface Wireframes, Zoomed Out (Left) and Zoomed In (Right). Nanite (Blue) Coarsens Distant Geometry; the Traditional Mesh (Orange) Keeps Full Detail
Top-down lunar terrain divided into a grid of World Partition cells
Figure 6: World Partition Cells (Orange) Streamed over the Lunar Terrain

Results

Verification

The UE5 terrain was checked against the ISSDC preview and against hillshade and contour renderings of the same DEM in QGIS. Contours, peaks and craters line up across all four views. The approach follows the one NASA used to recreate the Apollo 17 landing site in Unreal Engine from Lunar Reconnaissance Orbiter data.

Four vertical strips of the same lunar tile: ISSDC snapshot, QGIS hillshade, QGIS contours and the UE5 recreation
Figure 7: (Left to Right) ISSDC Snapshot, QGIS Hillshade, QGIS Contours and Our UE5 Recreation of the Same Tile
Apollo 17 lunar module photograph beside NASA's Unreal Engine recreation
Figure 8: Reference: Apollo 17 Photograph (Left) and NASA's UE5 Recreation from LRO Data (Right). Images: NASA

Different Lunar Patches

Lunar terrain at true scale with a human mannequin for size reference
Figure 9: Lunar Surface at True Scale with a Mannequin for Reference
Three further lunar tiles rendered at 1:100 scale, with zoomed-in views of highlighted regions
Figure 10: Three More TMC Tiles at 1:100 Scale, with Zoomed-in Views of the Regions in Red. (Left to Right) …20200121T0825168134_d_dtm_g26, …20211221T1917095490_d_dtm_d32, …20210513T1401073872_d_dtm_hw1

Applications

Tools: Unreal Engine 5, QGIS, Python (GDAL, NumPy, PyPDS, Pillow)