Work in progress

The content of this page was not yet updated for Godot 4.0 and may be outdated. If you know how to improve this page or you can confirm that it's up to date, feel free to open a pull request.

Prototyping levels with CSG

CSG stands for Constructive Solid Geometry, and is a tool to combine basic shapes or custom meshes to create more complex shapes. In 3D modelling software, CSG is mostly known as "Boolean Operators".

Level prototyping is one of the main uses of CSG in Godot. This technique allows users to create the most common shapes by combining primitives. Interior environments can be created by using inverted primitives.


The CSG nodes in Godot are mainly intended for prototyping. There is no built-in support for UV mapping or editing 3D polygons (though extruded 2D polygons can be used with the CSGPolygon3D node).

If you're looking for an easy to use level design tool for a project, you may want to use Qodot instead. It lets you design levels using TrenchBroom and import them in Godot.


See also

You can check how to use CSG nodes to build various shapes (such as stairs or roads) using the Constructive Solid Geometry demo project.

Introduction to CSG nodes

Like other features of Godot, CSG is supported in the form of nodes. These are the CSG nodes:

../../_images/csg_nodes.png ../../_images/csg_mesh.png

CSG tools features

Every CSG node supports 3 kinds of boolean operations:

  • Union: Geometry of both primitives is merged, intersecting geometry is removed.

  • Intersection: Only intersecting geometry remains, the rest is removed.

  • Subtraction: The second shape is subtracted from the first, leaving a dent with its shape.

../../_images/csg_operation_menu.png ../../_images/csg_operation.png


The CSGPolygon3D node extrude along a Polygon drawn in 2D (in X, Y coordinates) in the following ways:

  • Depth: Extruded back a given amount.

  • Spin: Extruded while spinning around its origin.

  • Path: Extruded along a Path node. This operation is commonly called lofting.

../../_images/csg_poly_mode.png ../../_images/csg_poly.png


The Path mode must be provided with a Path3D node to work. In the Path node, draw the path and the polygon in CSGPolygon3D will extrude along the given path.

Custom meshes

Any mesh can be used for CSGMesh3D; the mesh can be modelled in other software and imported into Godot. Multiple materials are supported. There are some restrictions for geometry:

  • it must be closed,

  • it must not self-intersect,

  • it must not contain internal faces,

  • every edge must connect to only two other faces.



The CSGCombiner3D node is an empty shape used for organization. It will only combine children nodes.

Processing order

Every CSG node will first process it