> For the complete documentation index, see [llms.txt](https://scenegroup.gitbook.io/cavalry/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://scenegroup.gitbook.io/cavalry/nodes/behaviours/boolean.md).

# Boolean

A **Boolean** can be used to remove or add shapes to other shapes. It differs to a Mask in that it is editing the actually geometry rather than just removing it from the [Viewport](/cavalry/user-interface/menus/window-menu/viewport.md). This means that features like Strokes will update according to the resulting mesh.

[Common Attributes](/cavalry/nodes/behaviours/common-attributes-behaviours.md) +

**Clipping Shapes** - connect shapes to boolean your master shape.

**Mode:**

* **Union** - adds the shape.
* **Subtract** - removes the shape.
* **Intersect** - remove everything outside of the shape.
* **Difference** -&#x20;

{% hint style="info" %}
Booleans are additive so each operation will act on the result of the operations above it.
{% endhint %}

{% hint style="success" %}
Example usage:

1. Draw 2 Rectangles with the Rectangle tool so that they overlap each other.
2. In the [Attribute Editor](/cavalry/user-interface/menus/window-menu/attribute-editor.md), click the + icon next to the **Deformers** attribute on **Rectangle1**.
3. Select **Boolean** from the list.
4. Double click the **Boolean** to load it into the [Attribute Editor](/cavalry/user-interface/menus/window-menu/attribute-editor.md).
5. Connect ***rectangle2.id > boolean.clippingShapes***.
6. Set the visibility on **Rectangle2** to **off** in the [Scene Window](/cavalry/user-interface/menus/window-menu/scene-window/project-tree.md) (click the 'eye' icon).
7. Set the **Mode** to **Subtract**.

**Rectangle2** is now removed from **Rectangle1**.
{% endhint %}
