Boolean
Combine shapes by union, intersection, subtraction, or divide. With only one 3D geometry connected, clips or bisects it against a plane.
What it does
Boolean combines two shapes with the CSG operations Union, Intersection, Subtraction, XOR, and Divide, which cuts all pieces apart at every intersection. It is polymorphic: flat shapes have their outlines merged, Distance Fields and Volumes have the underlying distance maths blended, and 3D geometry runs a solid mesh combine. Smoothness rounds the seam between shapes into a blended transition instead of a hard edge.
With Input B disconnected and Input A a 3D geometry, Boolean switches to plane clip mode: the mesh is sliced with an origin and normal you set, one side kept and the other discarded, with an option to cap the open cut with a fresh polygon.
When to use it
Merging, cutting, or intersecting two shapes, flat, field-based, or solid geometry.
A rounded blend between two forms: raise Smoothness.
Splitting one geometry into all its separate intersection pieces: Divide.
Bisecting a 3D model with a plane, keeping one half: Input B disconnected, Clip.
Solid meshes that are not watertight or clean: Strategy set to Voxel for a more forgiving combine.
| Parameter | Type | Default | What it does |
|---|---|---|---|
input_a | Collection | — | Base geometry (A). For Subtraction, this is the shape being cut. For plane clip, this is the geometry to clip. |
input_b | Collection | — | Operation geometry (B). For Subtraction, this shape is removed from A. Leave disconnected for plane clip mode. |
operation | String | "Union" | Boolean operation: Union (combine), Intersection (overlap only), Subtraction (A minus B), XOR (exclude overlap), Divide (cut at all intersections), Clip (plane bisect, 3D only). One of: Union, Intersection, Subtraction, XOR, Divide, Clip. |
strategy | String | "Auto" | Auto: BSP CSG for geometry, kernel for volumes. Voxel: voxelize both inputs and use volume boolean (handles non-manifold inputs, produces clean topology). One of: Auto, Voxel. |
voxel_resolution | Number | 64 | Voxel grid resolution per axis (higher = more detail, slower) |
smoothness | Number | 0 | Smooth blend radius (world units). 0 = sharp boolean. Creates organic, rounded transitions between shapes. |
tolerance | Number | 0.500 | Bezier curve flattening tolerance. Smaller = more precise but slower. |
clip_origin_x | Number | 0 | Clip plane origin X coordinate (3D geometry plane clip mode) |
clip_origin_y | Number | 0 | Clip plane origin Y coordinate (3D geometry plane clip mode) |
clip_origin_z | Number | 0 | Clip plane origin Z coordinate (3D geometry plane clip mode) |
clip_axis | String | "Y" | Clip plane normal direction. Custom uses the normal XYZ values below. One of: X, Y, Z, Custom. |
clip_normal_x | Number | 0 | Custom clip plane normal X component |
clip_normal_y | Number | 1 | Custom clip plane normal Y component |
clip_normal_z | Number | 0 | Custom clip plane normal Z component |
fill_cap | Boolean | true | Fill the cut face with a cap polygon (plane clip mode only) |
Gotchas
Divide and Clip are exact-only. Smoothness has no effect on them at any value, and rounds Union, Intersection, and Subtraction only.
A solid mesh boolean that looks broken or produces holes usually means the source mesh is not watertight. Strategy set to Voxel converts both inputs to a Volume first, which tolerates messy or non-manifold geometry at the cost of some resolution-dependent detail.
Plane clip mode appears only when Input B is disconnected and Input A is a 3D geometry. Wiring anything into Input B switches the node back to a two-shape boolean and silently drops the clip plane controls.
Worked example
Add a Boolean node. Wire two shapes (or two geometries) into Input A and Input B.
Set Operation to Subtraction to cut B out of A, or try Union, Intersection, XOR, or Divide.
Raise Smoothness for a rounded, blended seam between the two forms.
For solid meshes, if the result looks broken, set Strategy to Voxel and raise Grid Resolution for more detail.
To bisect a single 3D geometry instead, disconnect Input B, choose a Clip Axis (or Custom with a normal), and adjust the clip plane origin.