# Masks

*Masks* are entities that control where instances can and cannot be scattered. They can either be [Paint masks](/manual/masks.md#paint-masks), [Area masks](/manual/masks.md#area-masks), [Path masks](/manual/masks.md#path-masks), [Image masks](/manual/masks.md#image-masks), or [Composition masks](/manual/masks.md#composition-masks).

A mask can be **inclusive**, which means that instances can only be scattered in its area, or **exclusive**, which means that instances cannot be scattered in its area.\
To switch between those two modes, click the <img src="/files/-MkH-HCEyEfYXF8CVRcW" alt="" data-size="original"> and <img src="/files/-MkH-LHJAlTWg739TfCE" alt="" data-size="original"> icons.

![Inclusive / Exclusive](/files/-MkHRM_PWmBRDKFKu6_o)

{% hint style="info" %}
If a composition contains both types of masks, **inclusive masks are applied first** and then exclusive masks are applied over the remaining instances.

Masks are automatically reordered when toggling their inclusive/exclusive mode in order to reflect this rule.
{% endhint %}

## Paint masks

A *Paint mask* allows you to manually draw the shape of the mask. You draw the shape with a brush, just like you would in Photoshop or similar image editors.

To draw the mask, click the <img src="/files/-MkI-BDYXcQUvoz3Ns0V" alt="" data-size="original"> icon, then click & drag over your hosts. You can later click the <img src="/files/-MkI-Te0QE5mZKkNNJTW" alt="" data-size="original"> icon at any point to continue drawing the mask.

![](/files/-MkHSgujuiJcul8U1uxH)

To erase the mask, click the <img src="/files/-MkI-av8f0gl-V4cQ9Rs" alt="" data-size="original"> icon, then click & drag over the existing shape.

![](/files/-MkHT8xGS5I97WztHG3-)

{% hint style="info" %}
Erasing an *inclusive* Paint mask is not the same thing as drawing an *exclusive* Paint mask!
{% endhint %}

| Key   | Description                                                                 |
| ----- | --------------------------------------------------------------------------- |
| ALT   | Change the drawing mode when pressed (toggle paint/erase)                   |
| SHIFT | Draw a straight line                                                        |
| CTRL  | Maintain pressed and move the cursor laterally to change the brush's radius |

## Area masks

An *Area mask* is a group or a component instance that defines a space under which instances will not be scattered.

To add a new Area mask, click the <img src="/files/-MkI1Qy8y_hzp6Wj_4Uz" alt="" data-size="original"> icon and pick a group or component in the model.

![](/files/-MkI1V-xsSbKuu4kn1HW)

| Parameter       | Description                                                                                                                                                                                                                                                                                                                                     |
| --------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Mode            | <p>Part of the geometry used for masking.</p><p></p><p>In <code>Faces</code> mode, instances directly below the entity faces will be masked. This is useful to preserve holes in the mask.</p><p>In <code>Contours</code> mode, the whole silhouette of the picked entity is used. Only edges are considered, faces do not have any effect.</p> |
| Projection axis | <p>The direction in which instances are masked.</p><p></p><p>If unchanged, the default behavior is to use the same projection axis as the composition.</p>                                                                                                                                                                                      |

![Left: Faces mode. Right: Contours mode.](/files/-MkI4tofmVnEVOZrLSyQ)

## Path masks

A *Path mask* uses a curve with a configurable thickness under which instances will not be scattered.

![Path masks are particularly convenient to simulate dirt paths and tire tracks.](/files/-MgoOBJDcwH4Z3FZDaka)

To add a new Path mask, click the <img src="/files/-MkI7OKVk2SI8tSoKe9t" alt="" data-size="original"> icon and pick a group/component containing curves.

![](/files/-MkI6W-u-nxwtN2llAuP)

| Parameter       | Description                                                                                     |
| --------------- | ----------------------------------------------------------------------------------------------- |
| Thickness       | Lateral distance under which instances are masked                                               |
| Projection axis | The direction in which instances are masked, like for [area masks](/manual/masks.md#area-masks) |

## Image masks

An *Image mask* uses an external image file to control where instances can be scattered. This is useful to reproduce complex patterns.

To add a new Image mask, click the <img src="/files/-MkIMVSTiBllLNweeSbQ" alt="" data-size="original"> icon and select an image file on your disk.&#x20;

![The black and white Skatter logo is used as an image mask to scatter vegetation.](/files/-MgoOGP1fS0RQ-E753Y4)

{% hint style="warning" %}
Image masks rely on the surface hosts having valid [texture coordinates](/manual/hosts.md#texture-coordinates). Please make sure that your surface hosts are properly set up.
{% endhint %}

| Parameter           | Description                                                                                                                                                                                                                                                                                                        |
| ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| File                | Image file to use as a mask.                                                                                                                                                                                                                                                                                       |
| Offset              | <p>Moves the image along the X and Y axis.</p><p></p><p>Texture coordinates are traditionally defined in the <code>\[0, 1]</code> range, so an offset of <code>0.5</code> usually moves the image by half its size (this convention might not be followed depending on the origin of the texture coordinates).</p> |
| Scale               | Size of the projected image. Tweak this value to create zoom or tiling effects.                                                                                                                                                                                                                                    |
| Rotation            | Orientation of the image, in degrees.                                                                                                                                                                                                                                                                              |
| Display the texture | Shows the image in the viewport (only for SketchUp 2020+).                                                                                                                                                                                                                                                         |

{% hint style="warning" %}
SketchUp only allows extensions to draw textures in the viewport since SketchUp 2020 so the preview will not be available for older versions.
{% endhint %}

### Darkness values

The whiter a pixel of the image is, the more likely it is for an instance to be scattered there.

A 100% white pixel means that instances can be scattered there. A 100% black pixel means that instances cannot be scattered there. Values in between are interpolated linearly.

![](/files/-MkIBK7zNB1RfC6Fy9ec)

{% hint style="info" %}
Image masks only consider grayscale values, as shown in the SketchUp preview. Skatter accepts colored images and converts them to grayscale.
{% endhint %}

## Composition masks

A *Composition mask* uses the instances from another composition to filter where instances can and cannot be scattered.

For instance, a composition *Trees* might be used as the composition mask for a composition *Fallen leaves*, so that they only appear around the trees.

![Fallen leaves are part of a composition that uses another composition's trees as a mask so that leaves only appear around trees.](/files/-MgoQdrYpKPgi4ye98xQ)

![](/files/-MkIDq-upvE39lFko476)

| Parameter   | Description                                                    |
| ----------- | -------------------------------------------------------------- |
| Composition | The other composition to use as a mask                         |
| Radius      | Distance to mask around each instance of the other composition |

{% hint style="warning" %}
It is possible to chain multiple compositions as masks of each other ("*composition A masks composition B which itself masks composition C...*").

However, Skatter does not allow to create cycles where all compositions depend on each other ("**A** → B → C → **A**") as it would be impossible to compute.
{% endhint %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://skatter.help.lindale.io/manual/masks.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
