Noisemodeler
An in-game procedural terrain and content generation framework
Install / Use
/learn @noisemodeler/NoisemodelerREADME
Noise Modeler
An in-game procedural terrain and content generation framework.

Noise Modeler is a tool for designing noise-based functions through a flow-graph interface. The GUI application specializes in designing noise-based procedural heightmap terrains, but can be used to model other content as well, such as terrain for 2D games. A high-resolution real-time preview of the terrain is updated instantly as the terrain is edited.
Generated terrain models can be stored as procedural models consuming only a few kB of storage. Through the nmlib library library, models can be expanded by a game engine during run-time.
Author
Johan Klokkhammer Helsing (johanhelsing@gmail.com)
Download
You can get the current development version from the git repository (https://github.com/noisemodeler/noisemodeler).
Documentation
There are several places to find documentation about Noise Modeler:
- Project web site
- The Noise Modeler Library documentation
- The Noise Modeler user's guide
- Master's thesis about Noise Modeler
- This readme (contains brief build instructions and project overview)
- Commented example usage of the library may also be found in the
test_nmlibandnmclidirectories.
Folder structure
nmliba C++ library, which allows creation, editing and evaluation of flow-graphs. Used bynmgui.nmguia graphical flow-graph editor and terrain previewer.nmclia command line tool to generate GLSL functions fromnm.jsonfiles.test_nmlibunit tests fornmlib.test_nmguiunit tests fornmgui.dependenciesheader-only dependencies as git submodules.
Dependencies
nmlib
- boost::signals2
- c++11 (tested with gcc 4.8)
- rapidjson (included as git submodule)
nmgui
- nmlib
- boost::signals2
- Qt 5.2+
- qtquick
- qtquick-controls
- svg
- c++11 (tested with gcc 4.8)
Unit tests
- googletest (only required for unit tests)
Build instructions
This is a brief guide for experienced developers. In-depth build instructions from Windows, Ubuntu 14.04+ and Arch Linux can be found in the user's guide.
First, make sure you have all of the following dependencies installed:
- Qt 5.2+ (including base, declarative, qtquick-controls and svg modules)
- Boost
- gcc with C++11 support
- googletest (if building unit tests)
# 1. Clone the repository.
git clone --recursive git@github.com:noisemodeler/noisemodeler.git
# 2. Create a build directory
mkdir build-noisemodeler
cd build-noisemodeler
# 3. Build
qmake ../noisemodeler
make
# 4a. Run
nmgui/nmgui
# 4b. Install and run (unix only, this will install noisemodeler in /usr/)
sudo make install
nmgui
Contribute
Noise Modeler is an open source project and needs your help growing and improving. Don't hesitate to contact us with suggestions or bug reports (https://github.com/noisemodeler/noisemodeler/issues).
If you have made any improvements, we will happily accept any pull requests submitted through GitHub.
Even if you are perfectly happy with the project and don't have any issues with it, we would appreciate to hear about it.
License
Noise Modeler is released under the zlib license, see LICENSE.md for more information.
