CSG Terrain: Build Levels with Paths in Godot.
by Jettelly
Published |
Share
We showcase a free Godot add-on to easily create terrain with CSG using paths.
Prototyping terrain in Godot often involves sculpting tools, mesh edits, or external workflows. CSG Terrain, created by SpockBauru, offers a different approach by generating terrain directly from Path3D curves using Godot’s CSG system. The tool focuses on simple, non-destructive prototyping and has recently been updated to version 1.1, which improves LightmapGI baking compatibility and optimizes how paint masks are generated.

Unlike brush-based systems, CSG Terrain shapes geometry by following paths. Developers place or duplicate Path3D nodes, adjust their parameters, and the terrain updates automatically. Terrains can then be baked into MeshInstance3D for LightmapGI or exported as glTF for refinement in external software such as Blender.
(CSG Terrain currently supports Godot 4.4 and later.)
Main Features
  • Path-driven terrain creation: Place a CSGTerrain node and start shaping terrain through Path3D curves. Each path controls width, smoothness, texture painting, and blending behavior.

  • Non-destructive workflow: Terrain is generated procedurally from paths, making iteration easier before committing to mesh edits or exporting.

  • Multi-path layering: Paths under the CSGTerrain node apply in scene-tree order, allowing layered slopes, roads, ramps, and overlapping modifications.

  • Baking and export options: Bake the generated terrain into a MeshInstance3D for LightmapGI compatibility or export it as glTF for editing in other DCC tools.

  • Terrain material system: Ground, Walls, and Path are handled through a simple three-material setup, each with Albedo, Normal, and Roughness textures.

  • Synchronization across terrains: Duplicating a Path3D and moving it to another terrain node keeps both curves synchronized, provided they share the same Size and Divs.
How It Works
Placing a CSGTerrain node automatically adds a Path3D at its center. The terrain follows the curve formed by the path points and updates as the path is edited. Developers can create additional Path3D nodes as children of the terrain to extend or modify regions.

Each path includes parameters such as:

  • Width: how many vertices on each side of the curve are influenced
  • Smoothness: curvature and falloff around the path
  • Paint Width: how wide the texture is applied beneath the curve
  • Paint Smoothness: blending strength for the path texture

The order of paths in the scene tree determines which effects apply first or overlap last, similar to canvas layering.

Large terrains with very high Divs are not recommended. Instead, multiple smaller terrains can be placed and synchronized when needed.
Use Cases
  • Rapid terrain blockouts for early level design
  • Road, path, and slope prototyping without sculpting tools
  • Simple non-destructive workflows before exporting to Blender
  • Lightweight terrain creation for stylized or grid-based layouts
  • Multi-terrain setups with synchronized curves
  • Preparing meshes for LightmapGI through built-in baking
Similar Useful Tools
  • TerraBrush: This tool is a C#-based terrain editor for Godot 4 that uses a heightmap workflow, offering sculpting, texture painting, foliage scattering, multi-zone terrain, and LOD clipmaps. It’s designed to feel like a traditional terrain tool, with brush-driven editing and large terrain support.

Differences: Compared to CSG Terrain’s CSG-and-Path workflow, TerraBrush focuses on classic heightmap sculpting and texture painting. It’s far better for artists who want brush-based control over large landscapes, while CSG Terrain excels at quick, non-destructive prototyping and shape-driven terrain creation.

  • Terrain3D: This tool is a high-performance GDExtension terrain system for Godot 4, supporting sculpting, texture painting, up to 32 terrain layers, real LOD streaming, and massive terrain sizes ranging from small scenes to 65×65 km worlds. It’s aligned with production-ready environments and optimized runtime performance.

Differences: CSG Terrain is ideal for small to medium scenes or early prototyping, using CSG operations and curves to define shapes. Terrain3D, on the other hand, is built for large-scale production terrain with heavy optimization, multi-layer painting, and advanced LOD systems. It’s significantly more powerful but also heavier to set up.

  • Better Terrain: Better Terrain is a tilemap terrain auto-tiling plugin for Godot 4 that improves 2D and 2.5D level design through rule-based tile transitions, multiple connection rules, and intuitive painting tools.

Differences: Unlike CSG Terrain, which generates full 3D terrain meshes, Better Terrain is focused entirely on tilemap workflows. It’s ideal for 2D/2.5D terrains and grid-based games, not for sculpted 3D landscapes. It complements CSG Terrain only if your project mixes 2D tilemaps with 3D environments.


CSG Terrain is now available on GitHub.

📘 Check out The Godot Shaders Bible, a complete guide to creating and optimizing shaders for 2D and 3D games, from basic functions and screen-space effects to advanced compute techniques.
Did you find an error? No worries! Write to us at [email protected], and we'll fix it!

Subscribe to our newsletter to stay up to date with our latest offers

© 2024 Jettelly. All rights reserved. Made with ❤️ in Toronto, Canada