Procedural Landscapes

Generating Procedural 2D & 3D Landscapes in Processing

July 2023

The initial purpose of this project was to explore procedural generation and perlin noise in processing, by generating and rendering landscapes. The project is entirely written in Processing, with Java syntax.

The project started with a program to generate and display procedurally generated islands using perlin noise in 2D. By altering the output of the noise function, it's possible to alter the "landscapes" and create various formations, which are then color-coded to improve elevation readability. Several different landscape patterns have been hardcoded into the program, which may be utilized by uncommenting where appropriate, including islands, archipelagos, and continents.

Following the 2D implementation, I updated the code to enable a 3D visualization, made easier by the utility of the peasycam library, available at http://mrfeinberg.com/peasycam/. The library allows for simple navigation of the 3D space using mouse controls. 


In addition to navigating around the generated landscape in 3D, the program also supports switching between the 2D and 3D representation, as well as further visualization customization as required.


Future iterations may include the addition of procedurally generated settlements and place names on the maps based on generated topology, as well as improved 3D land and water visualizations, integrated saves, and editable maps.


Link to Github: https://github.com/pjsolomon/procedural-landscape