Skip to main content
Brush Modify applies transform changes to objects that already exist in the scene. As you drag the brush, it overlaps existing objects, evaluates filter fitness and brush mask strength, and runs each active component in the Modify Transform Components stack against every overlapping object. The tool does not spawn or remove objects. It only modifies position, rotation, and scale of objects already present.
New to Brush Modify? Follow the step-by-step Brush Modify — Getting Started tutorial first.

Supported resource types

Brush Modify supports:

Tool-level settings

Brush Settings

  • Brush Size — diameter of the brush area in world units. Default: 100. Use Shift + Scroll Wheel in the scene view to adjust.

Modify Transform Components

A stack of components applied in order to every object that passes the filter and falls within the brush area. Click + to add a component. Components can be reordered and toggled active/inactive. The default stack contains one component: Randomize Scale. Each component receives fitness, moveLenght (mouse delta magnitude per frame), and strokeDirection as inputs. These drive how much effect is applied per frame.

Group-level settings

  • Filter Settings — evaluates fitness for each overlapping object. Supports both Simple Filter and Mask Filter modes. Objects with zero fitness are not modified. Fitness also scales how strongly each component acts.

Modify Transform Components reference

Position

Moves objects along the Y axis while you drag.
  • Strength — direction and magnitude of the Y offset. Positive values move objects up; negative values move them down. Range: -1 to 1. Default: -0.1.
  • Y Strength Randomize — how much a per-object random value reduces the applied strength. At 0, all objects move equally. At 100, the offset is fully randomized per object. Range: 0 to 100. Default: 100.

Rotation

Rotates objects on each frame while you drag.
  • Strength — how fast rotation accumulates. Range: 0 to 10. Default: 3.
  • Random Rotation X / Y / Z — toggle per axis. When enabled for an axis, the rotation on that axis is driven by a per-object random vector (set once on first contact). When disabled, a fixed direction value is used instead.
    • When Random Rotation is on: Randomize X / Y / Z — scales the random rotation vector component on that axis. Range: 0 to 1. Default: 1.
    • When Random Rotation is off: Rotation X / Y / Z — the fixed rotation direction on that axis. Range: -1 to 1. Default: 1.

Vegetation Rotation

Tilts and spins objects in a way suited to trees and other upright vegetation.
  • Strength Y — controls how much the object spins around the Y axis per frame. Range: 0 to 20. Default: 7.
  • Strength XY — blends between the current rotation and the target tilt. At 0 there is no tilt. At 100 the object fully reaches the target lean angle. Range: 0 to 100. Default: 10.
  • Rotation XZ — the lean angle in degrees (applied equally to X and Z). At 0 the object stands upright. Larger values tilt the object further. Range: 0 to 20. Default: 3.

Along

Rotates objects around the world Y axis to face perpendicular to the stroke direction. The strength of the alignment scales with the mouse move speed — faster strokes align objects more strongly. No configurable fields.

Randomize Scale

Randomly reassigns the object’s scale on each frame it is touched. The new scale is interpolated toward a random value within the range, weighted by fitness.
  • Uniform Scale — when enabled, the same random value is applied to all three axes. When disabled, each axis gets its own random value. Default: true.
  • Scale (min/max slider) — the range for the random scale. Default min: (0.8, 0.8, 0.8). Default max: (1.2, 1.2, 1.2).

Scale

Incrementally adds or subtracts from the object’s scale on each frame while you drag.
  • Strength — the direction and size of the scale change. Positive values grow the object; negative values shrink it. Range: -1 to 1. Default: 0.3.
  • Strength Randomize — how much a per-object random value reduces the applied scale change. At 0, all objects scale equally. At 100, the change is fully randomized per object. Range: 0 to 100. Default: 100.

Scale Clamp

Clamps scale to a min/max range after all other components have run. Use this to prevent the Scale or Randomize Scale components from pushing objects outside acceptable bounds.
  • Scale Clamp (min/max slider) — the allowed scale range. Objects with scale outside this range are clamped toward the limit, blended by fitness. Default min: 0.5. Default max: 2.

How it works

  1. On each drag frame, the tool overlaps all objects inside the brush area.
  2. For each overlapping object, it evaluates filter fitness and brush mask alpha, multiplied together.
  3. The combined fitness and the mouse delta magnitude are passed to every active component in the stack.
  4. Each component modifies the instance transform. Changes accumulate each frame you hold the brush over the object.
  5. When you release the mouse, the per-object random values (used by Position, Rotation, Scale) are reset on next contact.

When to use Brush Modify

  • Art-directing an area after a procedural spawn pass.
  • Breaking up repetitive scale or rotation in existing placement.
  • Nudging vegetation tilt or Y offset without rerunning a spawn.
  • Applying scale limits after incrementally scaling with the Scale component.
Brush Modify works especially well after a large procedural pass. Generate the base layer first, then use the brush to add hand-directed variation and break up repetition.