---
title: "Asset Brush Placement Tool"
canonical: "https://documentation.chaos.com/space/ENSCAPE/840990726/Asset%20Brush%20Placement%20Tool"
format: markdown
---
This page provides information about the Asset Brush Placement Tool in Enscape.


---

---

---


## **Distribution Tab **

---

Use the **Distribution** tab to control how many assets are placed** **and how they are arranged within the selected area created by your current placement method. These settings define the overall “scatter” result - ranging from sparse to dense layouts - and determine whether assets follow a structured pattern (grid-based) or a more organic one (randomized).

In addition, the tab lets you decide whether the placement process should** **permit intersections between assets or attempt to prevent overlaps, which can affect both the final density and the mix of assets that successfully fit into the available space.

---

---

---

## **Randomisation Tab **

---

Use the **Randomization** tab to introduce intentional, controlled variation across the assets placed by the selected distribution method. Instead of placing identical instances with the same orientation and size, you can apply randomized rotation, scaling, and tilt to create a result that looks less repetitive and more natural and believable - especially in large scatters such as vegetation, crowds, or any repeated props.

These settings apply per-asset variation within the placement area, while still respecting the overall placement boundaries and distribution pattern defined in the **Distribution** tab.

---

---

---

## **Action buttons **

---

## **Performance notes **

---

The Asset Brush uses an iterative update algorithm that:

- Spawns assets incrementally (one by one)
- Prevents renderer stalls when placing many assets
- Enables high-density scenarios such as “huge forests” without application freezing

This approach is a key differentiator from previous tools that could trigger hangs during large-scale generation.


## **Known limitations **

---

The following limitations were identified during the approval review and are expected to be present (or partially present) in the initial release.

### **Placement and distribution limitations**

- **Mixed-size sets may favor smaller assets**
  - When painting slowly with a set containing both large and small assets (e.g., trees + flowers), smaller assets can dominate because iterative collision checks find fewer opportunities for large assets in small incremental brush updates.
- **Occasional overlaps during fast painting**
  - Some assets may be in flight and not included in collision checks immediately, leading to overlaps during quick strokes. Regeneration can improve results after the fact.
- **Different results vs older placement tools**
  - Distribution algorithms differ from older rectangular/area-selection tools, so brushing the same area may not match the results of older tools exactly.

### **Screen-space constraints**

- **Painting is screen-space constrained**
  - The brush uses screen-space behavior to prevent assets from being placed behind walls. This can produce a “shadowing” effect where you cannot paint behind obstacles (pillars/walls) from the current camera view, even if the cursor is positioned there.

### **Single-level painting**

- **One level at a time**
  - The algorithm currently supports painting on only **one vertical level**. Painting on a higher surface can overwrite canvas data beneath (same X/Y area on different heights). This is a fundamental limitation and not expected to change soon.

### Visibility and platform-specific issues

- **Canvas visibility under grass**
  - The canvas can be difficult to see when grass rendering is enabled. A fix is considered solvable but is not planned for the immediate next release.
- **macOS viewport embedding issue**
  - On macOS, the brush visualization may not appear until the user clicks into the viewport—however, this click may inadvertently place an asset.
- **Camera controls (X hotkey)**
  - Pressing **X** to orbit while the brush is active does not currently hide the brush as intended (known issue).