Create Complex Procedural Meshes With Curves and Curve Booleans

Curve booleans allow you to create complex 2D shapes using curve tools and then create a system of booleans to convert your 2D curves into 3D models. This tool can be used in both direct modeling and procedural.

Direct Modeling Command

You can run the curve.boolean command to apply the curve boolean tool to selected curve polygons in an active mesh.

1.   Click on the Edit tab on the left hand side.
2.   Under Booleans & Drill, click the Curve Boolean button.

Procedural Modeling Mesh Operator

The Curve Boolean mesh operator is available in the Edit category of the Mesh Operations.


Just like with regular booleans, there are four types of curved boolean you can create: Slice, Union, Intersect and Subtract.


Slice - allows you to overlap multiple curves and create new control points where the curves intersect.

Union - allows you to merge multiple overlapping curves into one shape and remove any overlapping curve segments.

Intersect - allows you to overlap two curves and then delete anything that exists outside of the overlap.

Subtract - allows you to use a curve to remove segments of another curve and can be used to cut out shapes from a base mesh.


Here you can specify the axis which defines the 2D plane for the boolean operation. Auto is the default mode, which computes the fitting plane from point positions of active curves.

Driver Curve

Unselected Curve operates selected curves by unselected curves in same mesh item.

When mode is Union and all curves are selected, curve boolean makes union curves with all selected curves.

When Driver Mesh is set, curve boolean operates selected curves in active mesh by curves in specific separated mesh item.

Driver Mesh Item

A driver mesh is a mesh that is used to create, or drive, the boolean.

Choose a mesh item with driver curves from this list when Driver Curve is Driver Mesh. If you're going to be adding multiple drivers it is recommended that you use the schematic viewport, because it keeps organization a bit easier and means you don’t have to keep jumping between mesh items.

Constraint Target

The Constraint Target option is useful for applying boolean operations to 3D curves which are then constrained to a target 3D mesh surface. When a mesh item is assigned a Constraint Target the curves are given new vertex positions on the constraint target mesh surface.

Curve before Constraint Target

Curve after Constraint Target

The Offset from Target property defines how far along the normal vector from the constraint target the curve is positioned. Higher values move the curves away from the target mesh.

Offset from Target 0

Offset from Target 10 mm

Once the curve is constrained to the target mesh, you can use the translate handles to position the curve by moving it along the constrain surface.


When Clip is enabled, the curve boolean cuts the active curves. It does not append curve segments from driver curves.

Merge Curves

When Merge Curves is enabled, the curve boolean joins split curve segments into a new curve polygon. This applies to Polyline and Bezier polygon types. Curve and B-Spline types are not merged so as to maintain sharp corners.

Close Open Curves

When Close Open Curves is enabled, the curve boolean treats opened curves as a closed loop by connecting the 1st and last points. This is useful for applying Subtract or Intersect to opened curves.

Trim Open Curves

When Trim Open Curves is enabled, the Curve Boolean trims opened curves at the point of intersection.

Overlapping curves with Trim Open Curves disabled.

Trim Open Curves is enabled. The overlapping curves are merged into a single shape, and excess parts of the curve are removed.

Self Intersection

When Self Intersection is enabled, Curve Boolean makes intersections by segments in the same curve loop.

  • Slice mode adds the intersection points on the interfering segments.
  • Union mode removes the sliced segments inside the curve loop.
  • Self Intersection disabled.

    Self Intersection enabled with
    Slice mode selected.

    Self Intersection enabled
    with Union mode selected.

Operation Examples

Union Example

Intersect and Subtract Example