A technique for creating objects in 3D modelling software, often abbreviated CSG.
Constructive Solid Geometry refers to the process of creating complex shapes by performing the basic boolean operations, Union, Difference, and Intersection, between various simpler geometries. Often 'primitives' such as spheres, cubes, cylinders, and cones are used as starting points.
Here's a simple example:
Say you want to make an igloo-like shape. You start with a sphere, and then define a cylinder to stick out horizontally from its center. Now you join the two objects by taking the union of the sphere and the cylinder. This results in a single object consisting of a sphere with a cylinder sticking out of it.
You want your igloo to be hollow, so you define a second sphere with a radius slightly smaller than the first, and then take the difference of your compound object and the new sphere. The cylinder sticking out from your hollow sphere is supposed to be an entrance, so you define another cylinder, this one longer and narrower than the first, and difference it from your compound object also. Now you have a hollow cylinder leading into a hollow sphere.
Finally, you define a horizontal plane that bisects your compound object (normal pointing up). You take the intersection of your object with this plane and so cut your object in half (for purposes of CSG a plane is generally defined as everything on the side of it towards which the normal points). Now you have a roughly igloo-shaped object.
It is important to avoid performing CSG operations on two objects with coincident surfaces, as this can lead to improper results in many modellers.
While CSG is available in most 3D modelling software packages, it often works poorly. This is because many modern modelling software packages are surface modellers, which consider geometries as collections of surfaces defined by curves and points. These surface modellers perform CSG by considering the "sidedness" of the different surfaces and selectively removing or moving the points in the surfaces to approximate the resultant geometry. Because this technique is inexact, errors tend to appear with repeated CSG operations, leading to "broken" geometries. One notable exception to this rule is auto-des-sys's Form-Z, which is actually a solid geometry modeller, and so has relatively stable CSG operations.