← All projectsBachelor thesis · 2024—2025

Infinite Procedural World

An infinite world generated at runtime in Unreal Engine 5.5 — from multithreaded C++ terrain to biome-aware PCG environments.

Photorealistic tundra biome with detailed vegetation and terrain
Figure 5.8b · Photorealistic tundra terrain with detailed vegetation.
Photorealistic plains biome with detailed grass and flowers
Figure 5.10b · High-detail plains using photorealistic grass and rocks.
06distinct biomes
02visual styles
98thesis pages
UE 5.5target engine
// challenge

A world without a predefined edge

The goal was to build a functional prototype that creates varied environments on demand as the player moves — without freezing the game thread or requiring a hand-authored landscape.

The solution separates the problem into two cooperating layers. A custom C++ system produces the underlying terrain and streams chunks around the player. Unreal Engine's PCG framework then interprets biome data and populates those surfaces with vegetation and infrastructure.

// system design

From noise to a populated world

01

Noise composition

Configurable noise layers define large-scale forms and local terrain detail. Each biome can use its own height formula.

02

Async terrain

Vertex and mesh data are computed on background threads so expensive generation work does not block gameplay.

03

Chunk streaming

Terrain is divided into chunks that appear around the player and are removed after leaving the active radius.

04

Biome blending

Temperature and humidity drive biome weights. Interpolation removes hard seams between neighboring regions.

05

PCG population

Modular graphs place vegetation, rocks, roads, fences, buildings and villages using biome-aware rules.

// generated environments

Same system, different worlds

The prototype supports both stylized and photorealistic presentation. The terrain data stays independent from the content rules and art direction layered on top.

Photorealistic procedural forest populated with trees, rocks, undergrowth and fallen logs
Photoreal forest: vegetation placement, rocks, undergrowth and fallen logs are driven by PCG rules.
Stylized low-poly procedurally generated world with colorful biomes and scattered vegetation
Stylized low-poly variant: the same procedural terrain pipeline with a deliberately different art direction.
Procedurally generated village with roads, buildings and vegetation
Procedural village with generated street layout, buildings and surrounding vegetation.
Wide terrain overview showing several smoothly blended procedural biomes
Biome overview: terrain regions remain continuous while their shape and materials change.
// measured, not assumed

Performance evidence

Generation was evaluated while the player moved at high speed and chunks continuously streamed in and out. The thesis compares Procedural Mesh Component and runtime Static Mesh approaches across several resolutions and world sizes.

1.8 s100 large chunks

Procedural Mesh average build time, compared with 2.9 s for runtime Static Mesh.

3.5 s400 small chunks

Procedural Mesh average build time, compared with 8.6 s for runtime Static Mesh.

~125 FPS8×8 streaming radius

Procedural Mesh stabilized around this level in the documented test; Static Mesh held approximately 90 FPS.

Measured on the thesis test configuration. Results are evidence for the prototype, not a universal engine benchmark.

// supporting tool

Procedural Noise Visualizer

I also created a small educational application for experimenting with procedural noise. It makes it easier to see how individual noise functions and their combinations shape the height data later used by the terrain generator.

Noise functionsLayer compositionEducational tool
View repository ↗
// project evidence
Source repositoryC++ terrain generator and Unreal Engine project ↗Bachelor thesisImplementation, PCG workflows and benchmarks ↗CTU project recordOfficial DCGI thesis page ↗
Interested in procedural systems?

Let's build worlds, simulations or technical tools.

Work with me →