What is GeoGen?

GeoGen is a programmable height map generator. It runs a text script and renders a beautiful height map.

The generator can be used both as a stand-alone application and as a library integrated into other projects. It is open source, under the GPLv3 license.

Features

Expressive scripting language

GeoGen features a custom scripting language designed to be very expressive, but also familiar to developers experienced with popular C-like languages. It features conditions, loops, functions and other familiar concepts, but also syntax very specific to map scripts.

Map scripts are each self-contained in a single text file, so they are very easy to work with and share with others.

Extensive function library

The standard library available to script authors features more than 100 classes and functions, from basic math to powerful graphical filtering and combination functions.

Infinite maps, arbitrary cutouts and level-of-detail

GeoGen does incredible optimization and execution analysis magic™ to allow you to render arbitrary portion of of any map, at any scale! This means you can render any map piece by piece, and these pieces can even be rendered at different resolutions.

Natural extension of this feature is support for infinite maps - a script can declare that the map is unbounded, the renderer will then be able to calculate height at any coordinates. Using this, you can create maps millions of pixels across, as long as the individual tiles fit into memory.

This also makes the generator very easy to parallelize - you can split a map into multiple tiles and render each in parallel.

Stand-alone interactive application

While there is no graphical application available currently, the GeoGen interactive console allows you to access most of the features of the generator - you can compile, customize their parameters and execute them. For script developers, a script debugger is available - stepping, stack traces and other features are available. Rendered maps are saved into PNGs, either in grayscale height map form, or in topographically colorified form.

Elegant C++ API

It is very easy to include GeoGen into your C++ application. You can launch the generator using just a few lines of code, or you can go deeper and access the very internals of the virtual machine.

The API also allows the host expose custom classes and functions to the scripts.

Bindings for other languages and platforms are planned.

Download

Download release of GeoGen Console for Windows, with examples and documentation:

GeoGen 0.10 ZIP

For now, if you want any other version of GeoGen, you have to build it from sources (solution for Visual Studio and a Makefile are included).