Home - CraftKontrol/GroundGen-for-Touchdesigner GitHub Wiki

Welcome to the GroundGen wiki!

GGEN System Overview

This wiki is dedicated to providing comprehensive information about GroundGen, a powerful tool for generating grounds in Touchdesigner. Here, you will find guides and documentation to help you get started and make the most of GroundGen.

Table of Contents

  • Overview
  • Common Networks
  • 3D Operators
  • 2D Operators
  • Output Operators
  • FAQ
  • Troubleshooting

Overview

GroundGen integrates directly with TouchDesigner’s real‑time engine, using POPs (Point Operators) to read and modify point attributes (position, normal, color, masks, custom channels) at scale. This enables procedural layering where each operator can contribute, filter, or remap data without destructive baking. Networks remain editable, so upstream changes propagate instantly through the graph.

Attribute blending across large point sets allows construction of complex terrain behaviors: combining shape primitives, noise fields, erosion passes, and masks to drive height, material weights, and selection logic. Intermediate results are always inspectable, encouraging fast iteration and refinement of terrain form and splatmap control data.

GLSL integration lets you adjust shading, visualization, and diagnostic overlays on‑the‑fly. Editing a shader or tweaking operator parameters immediately updates the viewport, reducing turnaround for look development. This tight feedback loop supports rapid experimentation while keeping the system performant and modular.

Common Networks

GroundGen organizes terrain creation and material assignment into specialized node networks. Each network focuses on a specific aspect of the workflow, enabling modular and flexible scene construction.

Name Info
TerrainNetwork Handles terrain geometry generation and editing.
SplatmapNetwork Manages texture and material distribution across the terrain.

3d Operators

3D operators are used to manipulate and generate 3D terrain features within the TerrainNetwork.

Name Info Usage
Noise Generates procedural noise for terrain elevation and features. TerrainNetwork
Shape Defines base shapes (e.g., hills, plateaus) for terrain geometry. TerrainNetwork
Terrace Creates stepped, terrace-like formations in terrain. TerrainNetwork
Erosion Simulates natural erosion effects for realistic terrain. TerrainNetwork
Beach Adds beach zones by blending terrain near water level. TerrainNetwork
Snow Applies snow coverage based on height or slope. TerrainNetwork

2d Operators

2D operators are used to manipulate 2d textures or point attributes within the SplatmapNetwork or the TerrainNetwork.

Name Info Usage
Cavity Detects and highlights concave regions for masking or material effects. TerrainNetwork, SplatmapNetwork
HeightMap Generates or processes heightmaps for terrain and texture blending. TerrainNetwork, SplatmapNetwork
Level Applies leveling for terrain and texture adjustments. TerrainNetwork, SplatmapNetwork
Slope Calculates terrain slope for procedural masking and distribution. TerrainNetwork, SplatmapNetwork
Combiner Merges two input attributes into a single output layer for blending. TerrainNetwork, SplatmapNetwork
Splatmap Manages splatmap layers for texture/material blending across terrain. SplatmapNetwork

Output Operators

Output operators are used to generate final outputs from the processed terrain and texture data.

Name Info Usage
GeoOut Outputs the final terrain geometry as a 3D model. Everywhere
MatOut Outputs the final shader for the terrain. Everywhere
SplatOut Outputs the final splatmap in a TOP format. Everywhere

FAQs

What are the main features of GroundGen?

GroundGen offers a modular node-based workflow for procedural terrain generation, including 3D and 2D operators for manipulating terrain geometry and textures.

How can I create custom terrain shapes?

You can use the Shape operator within the TerrainNetwork to define base shapes for your terrain. Combine it with other operators like Noise and Erosion for more complex results.

Can I use my own textures in GroundGen?

Yes, you can import custom textures and use them within the SplatmapNetwork for material assignment and blending.

What is a splatmap?

A splatmap is a texture used to control the blending and distribution of multiple material layers across a terrain surface. It assigns different materials (e.g., grass, rock, sand) to specific areas based on various attributes like height, slope, or custom masks. Splatmaps are essential for creating detailed and varied landscapes in procedural terrain generation.

Why TouchDesigner?

TouchDesigner and its new POPs pipeline provide a robust framework for real-time visual editing of massive points distributions, and real-time manipulation of heavy meshes.

Troubleshooting

Todo...