Procedural Terrain & Ocean
A procedural landscape study combining Diamond-Square terrain generation with frequency-domain synthesis.


Background & Research
This project explores how procedural algorithms can produce complex natural landforms. It compares two approaches: the spatial, fractal subdivision of the Diamond-Square algorithm and the frequency-domain synthesis of the Fast Fourier Transform (FFT).
The research focused on understanding the mathematical foundations of each method, translating them into Unreal Engine, and exposing parameters that make their visual behaviour easy to compare.
Core Algorithms
Diamond-Square Terrain
A heightmap is generated through alternating diamond and square steps. Each subdivision averages neighbouring samples and adds a random displacement, creating progressively finer fractal detail. The Unreal Engine implementation exposes parameters for controlling the scale and roughness of the resulting landforms.
FFT Landscape Synthesis
The frequency-domain method begins with a random complex spectrum, applies radial frequency attenuation, and reconstructs height data through a two-dimensional inverse FFT. Octaves, frequency falloff, and gain control the scale, smoothness, and amplitude of the generated forms.
Diamond-Square Process
- Initialise the heightmap corners.
- Run the diamond step to calculate centre values from surrounding samples.
- Run the square step to calculate edge and midpoint values.
- Add scaled random displacement at each iteration.
- Repeat at progressively smaller intervals until the heightmap is filled.
FFT Process
- Fill the spectrum with random amplitudes and phases.
- Apply radial attenuation based on each sample’s distance from the frequency origin.
- Perform a one-dimensional inverse FFT across rows.
- Perform a second inverse FFT across columns.
- Convert the reconstructed spatial data into height values.
Project Highlights
- Algorithm-to-Engine Pipeline: Both mathematical methods were implemented as controllable Unreal Engine systems.
- Parametric Exploration: Roughness, octaves, frequency falloff, and gain can be adjusted to study their effect on generated forms.
- Method Comparison: Spatial subdivision and frequency-domain synthesis provide two distinct ways to construct procedural height data.