Website powered by

Satellite-driven environment reconstruction in Unreal Engine

Bachelor’s thesis (6 months) focused on automating the creation of photorealistic 3D environments in Unreal Engine 5.5 using satellite imagery and elevation data. I developed a prototype pipeline combining AI segmentation, Python scripts, PCG Biomes, and Ultra Dynamic Sky to generate landscapes with minimal manual input and dynamic weather and seasons. The vision was to make it easier for users to create realistic environments without requiring extensive software knowledge. Full work available here: https://urn.kb.se/resolve?urn=urn:nbn:se:bth-28349

Cinematic of the final result: a 10×10 km landscape generated from real satellite data.

GIF showing three inputs: satellite photo, heightmap, and road map. The photo and road map are then used to generate the color-coded biome texture.

GIF showing three inputs: satellite photo, heightmap, and road map. The photo and road map are then used to generate the color-coded biome texture.

Video showing the process: downloading satellite images, importing them into the AI model, and generating outputs – one biome texture and separate masked textures for each land type.

GIF showing the heightmap being applied to create the terrain, followed by the biome texture driving asset placement with PCG Biomes.

GIF showing the heightmap being applied to create the terrain, followed by the biome texture driving asset placement with PCG Biomes.

Biome texture applied to the landscape in Unreal Engine.

Biome texture applied to the landscape in Unreal Engine.

Landscape material applied using AI-generated masks based on the segmentation of the satellite photo.

Landscape material applied using AI-generated masks based on the segmentation of the satellite photo.

Final landscape with assets placed using PCG Biomes. Only forests are visible here, as other assets are hidden by cull distance for optimization.

Final landscape with assets placed using PCG Biomes. Only forests are visible here, as other assets are hidden by cull distance for optimization.