In this project written entirely in C++, I created an algorithm to generate a terrain to which I can then apply algorithms such as a height map, displacement maps, noise and bezier curves to get the intended terrain output. The resolution of the terrain would be equals to the resolution of the map, but that may cause performance issues with a bigger map, so View frustum culling was applied to the map to only render the parts that are in view of the camera and completely discard the one outside. To achieve this, the terrain was divided into sub-patches and re-index them so that they are drawn without any seems, using then AABB to detect wetever a patch was inside or outside the frustum.