Project Overview
This is a GPU-based model of a cellular automata algorithm where dunes procedurally emerge on a 2D grid, based on rules
such as wind-driven sand saltation, probabilistic deposition, wind-shadow zones, wind warping, avalanching, and base terrain.
The grid is represented by a 2D integer array where each cell stores the height value of sand deposited onto it,
forming a heightmap.
This data is mapped to a texture where colours are assigned based on the height value of each cell
and is later rendered as a 3D mesh using vertex displacement. This system can also be layered upon other grids representing different
terrains.
- Responsibilities
- Graphics Programming, PCG Programming, Technical Artist
- Development Time
- 6 Weeks
- Grade
- Distinction
- Awarded Title
- 2nd Place - Games Computing Award, GradEx 2026
Systems and Features
- GPU-Based Simulation
- Customizable Simulation Parameters
- Angle of Repose, Wind Shadow, & Wind Warp Calculations
- Periodic Boundary Calculation
- Perlin Noise Terrain-Aware Sand Simulation
- Height Map Texture Generation
- Mesh Deformation via Vertex Displacement Shader
- Debug Tools - Color Coding
What I Learnt
Future Work
- Collision Detection
- Vegetation Generation
- Base Terrain Erosion
- Simulation Timeline Controller
- Optimisation: Triangle Strips, Batching, Sinking