TerraForge3D, a procedural terrain tool that puts the mesh generation on the GPU
Cross Platform Professional Procedural Terrain Generation & Texturing Tool
At a glance
- What is it?
- TerraForge3D is a cross platform terrain generation and texturing application written in C++, built on OpenCL 2.0, OpenGL and Dear ImGui, with a node editor of more than 40 nodes, a physically based renderer, erosion simulation, a texture baker and export to OBJ, GLTF, GLB and STL. It is free and open source, and the work happens on the gen3 branch while the last tagged release is from 2022.
- Who is it for?
- Adopt TerraForge3D if you need to author large procedural terrains and their textures and then hand them to Blender, Unreal Engine or Unity, and skip it if you only need a heightmap, because a dedicated noise tool will get you there faster.
- Can I use it commercially?
- Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
- Is it still maintained?
- Yes. The repository last received commits 13 days ago.
- What is it written in?
- Mainly C++, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on October 25, 2026, and from our analysis. They are not legal advice.
Editorial analysis
GPU mesh generation, and the CPU path that exists for a reason
The headline capability is that terrain meshes are generated on the GPU using OpenCL 2.0, and the stated consequence is that you can work with extremely large meshes in real time. The interesting nuance is the CPU option, and the project is honest about why it exists. Some things cannot be done on a GPU as efficiently, the node editor being the example given, so you can mix GPU and CPU generation to get more control. The second reason is compatibility: if your GPU does not support OpenCL 2.0, you can still use the CPU mesh generation instead. The CPU algorithms are described as written with efficiency and speed in mind and as extremely fast, which is a claim a reader should test on their own hardware rather than take at face value, but the fallback is what makes the tool usable on older hardware and in virtualised environments, where GPU OpenCL is often absent.
TerraForge3D utilizes OpenCL 2.0 to use your GPU. With GPU mesh generation you can work with extremely huge meshs in realtime.No fixed resolution ladder, which is a real differentiator
Most terrain generation applications cap you at a maximum resolution, or offer only a fixed set of resolutions such as 128, 256 and so on. TerraForge3D claims to remove that limitation, allowing any resolution you can imagine. The claim matters more than it sounds because the resolution of a heightmap and the vertex count of the resulting mesh are the two numbers that determine whether a terrain is usable, and tools that snap to a power-of-two ladder force you to author at a scale you did not choose. A related capability is the dedicated texture baker, which can bake any node output, the heightmap included, to a high quality texture, either in one pass at a huge resolution or in tiles. Tiling is the practical part: a single high resolution bake is memory bound, and a tiled bake is what makes a production sized texture map possible on modest hardware.
Bake any node output, the heightmap, anything you want to a high quality texture! Bake a huge resolution texture at once or bake it in tiles!A node editor that also exports GLSL
The node editor is the tool's centre of gravity. It is described as very advanced, with more than 40 different nodes, and the framing is explicitly parallel to Blender's shader node editor: you texture the terrain exactly the way you want. The claim that it lets you use mathematical functions to shape the terrain is the part that goes beyond typical noise tools, since a node graph with arithmetic on it is a small program rather than a parameter panel. What separates this from a pure in-app feature is the export path. The shader node setup can be exported into functional GLSL code for your own project, which means the graph you built is not locked inside the tool. That is the single most important design decision here for a pipeline: you can author a look in the editor, export the shader, and keep the graph as a source asset rather than re-implementing it in your engine's shader language.
Like Blender, TerraForge3D has a shader node editor which lets you texture your terrain exactly how you want, exactly how you imagined it. You can also export the shader node setup into functional GLSL code for your own project!Erosion, a physically based renderer and a sky you control
The realism features come in three groups. Erosion is handled by several algorithms, hydraulic and wind among them, which simulate rain, wind and dust on a procedurally generated terrain to add realism. The renderer is physically based, and the project states you can preview terrains in photo realistic quality. The sky is fully customisable: you can use a sky box, a sky dome, generate a sky procedurally, or supply an HDRI, and there is also a sea level visualisation so you can see where water would sit relative to your terrain. That last feature is small but it is the kind of thing that saves iteration time, since a terrain without a reference water level is hard to judge. Custom GLSL shaders are supported, and the application includes an inbuilt editor for writing them, so a custom shader does not require leaving the tool and coming back with a recompile.
TerraForge3D has several erosion algorithms(hydraulic, wind, ...) which lets you simulate the simulation on you procedurally generated terrains giving it an extra touch of realism. These algorithms simulate actual rain, wind, dust to give the best effect.Hand-placed features mixed with the procedural result
There is a deliberate concession to manual authoring inside an otherwise procedural tool. The argument the project makes is that procedural is great but sometimes there must be a human touch, so TerraForge3D lets you customise the terrain by manually placing features like hills, craters and cliffs, and combine that with the procedural result. This is a meaningful design position rather than a feature list item, because a purely procedural terrain generator produces a landscape that is statistically plausible and compositionally dull, and the usual workflow in other tools is to export and then hand-edit in a modelling package, which loses the node graph. Here the hand-placed features live in the same graph as the generated ones. The readme also mentions custom shape generation and a texture store with a large collection of downloadable textures, plus fine-grained texture settings.
Procedural is great! But sometimes there must be a human touch! Thus TerraForge3D lets you customize your terrain by manually placing terrrain features like hills, caters, cliffs, etc and combine it with procedural terrain.Export formats, and the licensing story
The export section is where the tool meets an engine. TerraForge3D exports to a range of 3D formats, with OBJ, GLTF and GLB named, along with STL, and it can export heightmaps as PNG and JPG. The project claims this makes it compatible with anything, naming Blender, Unreal Engine, Unity and Maya. The licence is MIT, with the text in LICENSE.md at the repository root. There is also a Third Party License directory at the top level, which is a good sign, since a tool of this kind pulls in OpenCL, OpenGL, Dear ImGui, node editor and terrain libraries, and a reader who needs to comply with a shipping product's licence obligations will want to read what is in that directory rather than assume the MIT grant covers everything. The repository also carries a CODE_OF_CONDUCT.md, a CONTRIBUTING.md and a SECURITY.md.
TerraForge3D can export to a whole lot of 3D file formats like OBJ, GLTF, GLB, STL, ... . Also you can export heightmaps as PNG, JPG, ... .Branch, release and repository shape
The version story needs a careful reading, because the default branch and the last release point at different things. The default branch is gen3, and the last three tagged releases are v2.3 from 2022-03-29, v2.2 from 2022-02-18 and v2.1 from 2022-01-25. The last push to the repository was on 2026-10-12, and the project states it is being maintained actively, so the branch has been moving for years without new release tags. A reader who installs a tagged release is installing 2022 code, while a reader who builds the default branch is installing the current state, and those are different products. The repository layout shows a C++ application under `TerraForge3D/`, a `Binaries/` directory, a `build.ps1` and a `build.sh` at the root, a `cmake/` directory, a `Third Party License/` directory, `Themes/`, `resources/` and a `Screenshots/` folder. The source code itself is C++ and the project is licensed MIT, with a `.clang-format` file at the root indicating a defined formatting style. The project is distributed with binaries rather than source-only, and it also links a SourceForge download counter alongside a Discord server and a Patreon and OpenCollective funding route for the author.
One of the biggest benefits of Terraforge3D is that its cross platform! Also TerraForge3D is the only high end Procedural generator supported on linux!Editorial conclusion
Adopt TerraForge3D if you need to author large procedural terrains and their textures and then hand them to Blender, Unreal Engine or Unity, and skip it if you only need a heightmap, because a dedicated noise tool will get you there faster. Verify three things before you commit: which branch you are actually building, since the default branch is gen3 while the last tagged release is v2.3 from 2022 and the two are not the same thing; that your GPU supports OpenCL 2.0, or accept that you will be on the CPU path; and what the first launch downloads and caches, because the documentation warns about it and the application is not usable offline until it has done that.
Frequently asked questions
What is TerraForge3D and what does it do?
It is a free open source cross platform procedural terrain generation and texturing tool written in C++. It generates terrain meshes on the GPU with OpenCL 2.0 or on the CPU, includes a node editor with more than 40 nodes, erosion simulation, a physically based renderer, a texture baker and export to OBJ, GLTF, GLB, STL and heightmap images.
Can TerraForge3D run without a GPU that supports OpenCL 2.0?
Yes. The project says you can mix GPU and CPU generation for more control, and that if your GPU does not support OpenCL 2.0 you can still use the CPU mesh generation, whose algorithms it describes as extremely fast.
Can I use my TerraForge3D shader node setup in my own game engine?
Yes. The shader node editor setup can be exported into functional GLSL code for your own project, and terrains export to formats including OBJ, GLTF, GLB and STL, with heightmaps as PNG or JPG.
Is TerraForge3D still being developed?
The project states it is being maintained actively and the last push to the repository was on 2026-10-12, but the last tagged release is v2.3 from 2022-03-29, and the default branch is gen3, so building the branch and installing the release tag give you different things.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/jaysmito101-terraforge3d)Was this useful?