# Brush(ID)

base classes — `bpy_struct`, `ID`

class `bpy.types.``Brush`(ID)

  Brush data-block for storing brush settings for painting and sculpting

  `auto_smooth_factor`

    Amount of smoothing to automatically apply to each stroke

    Type: | float in [0, 1], default 0.0

  `blend`

    Brush blending mode

    - `MIX` Mix, Use mix blending mode while painting.
    - `ADD` Add, Use add blending mode while painting.
    - `SUB` Subtract, Use subtract blending mode while painting.
    - `MUL` Multiply, Use multiply blending mode while painting.
    - `LIGHTEN` Lighten, Use lighten blending mode while painting.
    - `DARKEN` Darken, Use darken blending mode while painting.
    - `ERASE_ALPHA` Erase Alpha, Erase alpha while painting.
    - `ADD_ALPHA` Add Alpha, Add alpha while painting.
    - `OVERLAY` Overlay, Use overlay blending mode while painting.
    - `HARDLIGHT` Hard light, Use hard light blending mode while painting.
    - `COLORBURN` Color burn, Use color burn blending mode while painting.
    - `LINEARBURN` Linear burn, Use linear burn blending mode while painting.
    - `COLORDODGE` Color dodge, Use color dodge blending mode while painting.
    - `SCREEN` Screen, Use screen blending mode while painting.
    - `SOFTLIGHT` Soft light, Use softlight blending mode while painting.
    - `PINLIGHT` Pin light, Use pinlight blending mode while painting.
    - `VIVIDLIGHT` Vivid light, Use vividlight blending mode while painting.
    - `LINEARLIGHT` Linear light, Use linearlight blending mode while painting.
    - `DIFFERENCE` Difference, Use difference blending mode while painting.
    - `EXCLUSION` Exclusion, Use exclusion blending mode while painting.
    - `HUE` Hue, Use hue blending mode while painting.
    - `SATURATION` Saturation, Use saturation blending mode while painting.
    - `LUMINOSITY` Luminosity, Use luminosity blending mode while painting.
    - `COLOR` Color, Use color blending mode while painting.

    Type: | enum in [‘MIX’, ‘ADD’, ‘SUB’, ‘MUL’, ‘LIGHTEN’, ‘DARKEN’, ‘ERASE_ALPHA’, ‘ADD_ALPHA’, ‘OVERLAY’, ‘HARDLIGHT’, ‘COLORBURN’, ‘LINEARBURN’, ‘COLORDODGE’, ‘SCREEN’, ‘SOFTLIGHT’, ‘PINLIGHT’, ‘VIVIDLIGHT’, ‘LINEARLIGHT’, ‘DIFFERENCE’, ‘EXCLUSION’, ‘HUE’, ‘SATURATION’, ‘LUMINOSITY’, ‘COLOR’], default ‘MIX’

  `blur_kernel_radius`

    Radius of kernel used for soften and sharpen in pixels

    Type: | int in [1, 10000], default 0

  `blur_mode`

    Type: | enum in [‘BOX’, ‘GAUSSIAN’], default ‘GAUSSIAN’

  `brush_capabilities`

    Brush’s capabilities

    Type: | `BrushCapabilities`, (readonly, never None)

  `clone_alpha`

    Opacity of clone image display

    Type: | float in [0, 1], default 0.0

  `clone_image`

    Image for clone tool

    Type: | `Image`

  `clone_offset`

    Type: | float array of 2 items in [-inf, inf], default (0.0, 0.0)

  `color`

    Type: | float array of 3 items in [0, 1], default (0.0, 0.0, 0.0)

  `crease_pinch_factor`

    How much the crease brush pinches

    Type: | float in [0, 1], default 0.666667

  `cursor_color_add`

    Color of cursor when adding

    Type: | float array of 3 items in [0, inf], default (0.0, 0.0, 0.0)

  `cursor_color_subtract`

    Color of cursor when subtracting

    Type: | float array of 3 items in [0, inf], default (0.0, 0.0, 0.0)

  `cursor_overlay_alpha`

    Type: | int in [0, 100], default 0

  `curve`

    Editable falloff curve

    Type: | `CurveMapping`, (readonly, never None)

  `direction`
    - `ADD` Add, Add effect of brush.
    - `SUBTRACT` Subtract, Subtract effect of brush.

    Type: | enum in [‘ADD’, ‘SUBTRACT’], default ‘ADD’

  `fill_threshold`

    Threshold above which filling is not propagated

    Type: | float in [0, 100], default 0.0

  `grad_spacing`

    Spacing before brush gradient goes full circle

    Type: | int in [1, 10000], default 0

  `gradient`

    Type: | `ColorRamp`, (readonly)

  `gradient_fill_mode`

    Type: | enum in [‘LINEAR’, ‘RADIAL’], default ‘LINEAR’

  `gradient_stroke_mode`

    Type: | enum in [‘PRESSURE’, ‘SPACING_REPEAT’, ‘SPACING_CLAMP’], default ‘PRESSURE’

  `height`

    Affectable height of brush (layer height for layer tool, i.e.)

    Type: | float in [0, 1], default 0.5

  `icon_filepath`

    File path to brush icon

    Type: | string, default “”, (never None)

  `image_paint_capabilities`

    Brush’s capabilities in image paint mode

    Type: | `ImapaintToolCapabilities`, (readonly, never None)

  `image_tool`

    Type: | enum in [‘DRAW’, ‘SOFTEN’, ‘SMEAR’, ‘CLONE’, ‘FILL’, ‘MASK’], default ‘DRAW’

  `jitter`

    Jitter the position of the brush while painting

    Type: | float in [0, 1000], default 0.0

  `jitter_absolute`

    Jitter the position of the brush in pixels while painting

    Type: | int in [0, 1000000], default 0

  `mask_overlay_alpha`

    Type: | int in [0, 100], default 0

  `mask_stencil_dimension`

    Dimensions of mask stencil in viewport

    Type: | float array of 2 items in [-inf, inf], default (0.0, 0.0)

  `mask_stencil_pos`

    Position of mask stencil in viewport

    Type: | float array of 2 items in [-inf, inf], default (0.0, 0.0)

  `mask_texture`

    Type: | `Texture`

  `mask_texture_slot`

    Type: | `BrushTextureSlot`, (readonly)

  `mask_tool`

    Type: | enum in [‘DRAW’, ‘SMOOTH’], default ‘DRAW’

  `normal_weight`

    How much grab will pull vertexes out of surface during a grab

    Type: | float in [0, 1], default 0.0

  `paint_curve`

    Active Paint Curve

    Type: | `PaintCurve`

  `plane_offset`

    Adjust plane on which the brush acts towards or away from the object surface

    Type: | float in [-2, 2], default 0.0

  `plane_trim`

    If a vertex is further away from offset plane than this, then it is not affected

    Type: | float in [0, 1], default 0.5

  `rate`

    Interval between paints for Airbrush

    Type: | float in [0.0001, 10000], default 0.0

  `sculpt_capabilities`

    Brush’s capabilities in sculpt mode

    Type: | `SculptToolCapabilities`, (readonly, never None)

  `sculpt_plane`

    Type: | enum in [‘AREA’, ‘VIEW’, ‘X’, ‘Y’, ‘Z’], default ‘AREA’

  `sculpt_tool`

    Type: | enum in [‘BLOB’, ‘CLAY’, ‘CLAY_STRIPS’, ‘CREASE’, ‘DRAW’, ‘FILL’, ‘FLATTEN’, ‘GRAB’, ‘INFLATE’, ‘LAYER’, ‘MASK’, ‘NUDGE’, ‘PINCH’, ‘ROTATE’, ‘SCRAPE’, ‘SIMPLIFY’, ‘SMOOTH’, ‘SNAKE_HOOK’, ‘THUMB’], default ‘BLOB’

  `secondary_color`

    Type: | float array of 3 items in [0, 1], default (0.0, 0.0, 0.0)

  `sharp_threshold`

    Threshold below which, no sharpening is done

    Type: | float in [0, 100], default 0.0

  `size`

    Radius of the brush in pixels

    Type: | int in [1, 5000], default 0

  `smooth_stroke_factor`

    Higher values give a smoother stroke

    Type: | float in [0.5, 0.99], default 0.0

  `smooth_stroke_radius`

    Minimum distance from last point before stroke continues

    Type: | int in [10, 200], default 0

  `spacing`

    Spacing between brush daubs as a percentage of brush diameter

    Type: | int in [1, 1000], default 0

  `stencil_dimension`

    Dimensions of stencil in viewport

    Type: | float array of 2 items in [-inf, inf], default (0.0, 0.0)

  `stencil_pos`

    Position of stencil in viewport

    Type: | float array of 2 items in [-inf, inf], default (0.0, 0.0)

  `strength`

    How powerful the effect of the brush is when applied

    Type: | float in [0, 10], default 0.5

  `stroke_method`
    - `DOTS` Dots, Apply paint on each mouse move step.
    - `DRAG_DOT` Drag Dot, Allows a single dot to be carefully positioned.
    - `SPACE` Space, Limit brush application to the distance specified by spacing.
    - `AIRBRUSH` Airbrush, Keep applying paint effect while holding mouse (spray).
    - `ANCHORED` Anchored, Keep the brush anchored to the initial location.
    - `LINE` Line, Draw a line with dabs separated according to spacing.
    - `CURVE` Curve, Define the stroke curve with a bezier curve (dabs are separated according to spacing).

    Type: | enum in [‘DOTS’, ‘DRAG_DOT’, ‘SPACE’, ‘AIRBRUSH’, ‘ANCHORED’, ‘LINE’, ‘CURVE’], default ‘DOTS’

  `texture`

    Type: | `Texture`

  `texture_overlay_alpha`

    Type: | int in [0, 100], default 0

  `texture_sample_bias`

    Value added to texture samples

    Type: | float in [-1, 1], default 0.0

  `texture_slot`

    Type: | `BrushTextureSlot`, (readonly)

  `unprojected_radius`

    Radius of brush in Blender units

    Type: | float in [0.001, inf], default 0.0

  `use_accumulate`

    Accumulate stroke daubs on top of each other

    Type: | boolean, default False

  `use_adaptive_space`

    Space daubs according to surface orientation instead of screen space

    Type: | boolean, default False

  `use_airbrush`

    Keep applying paint effect while holding mouse (spray)

    Type: | boolean, default False

  `use_alpha`

    When this is disabled, lock alpha while painting

    Type: | boolean, default False

  `use_anchor`

    Keep the brush anchored to the initial location

    Type: | boolean, default False

  `use_cursor_overlay`

    Show cursor in viewport

    Type: | boolean, default False

  `use_cursor_overlay_override`

    Don’t show overlay during a stroke

    Type: | boolean, default False

  `use_curve`

    Define the stroke curve with a bezier curve. Dabs are separated according to spacing

    Type: | boolean, default False

  `use_custom_icon`

    Set the brush icon from an image file

    Type: | boolean, default False

  `use_edge_to_edge`

    Drag anchor brush from edge-to-edge

    Type: | boolean, default False

  `use_frontface`

    Brush only affects vertexes that face the viewer

    Type: | boolean, default False

  `use_gradient`

    Use Gradient by utilizing a sampling method

    Type: | boolean, default False

  `use_inverse_smooth_pressure`

    Lighter pressure causes more smoothing to be applied

    Type: | boolean, default False

  `use_line`

    Draw a line with dabs separated according to spacing

    Type: | boolean, default False

  `use_locked_size`

    When locked brush stays same size relative to object; when unlocked brush size is given in pixels

    Type: | boolean, default False

  `use_offset_pressure`

    Enable tablet pressure sensitivity for offset

    Type: | boolean, default False

  `use_original_normal`

    When locked keep using normal of surface where stroke was initiated

    Type: | boolean, default False

  `use_paint_image`

    Use this brush in texture paint mode

    Type: | boolean, default False

  `use_paint_sculpt`

    Use this brush in sculpt mode

    Type: | boolean, default False

  `use_paint_vertex`

    Use this brush in vertex paint mode

    Type: | boolean, default False

  `use_paint_weight`

    Use this brush in weight paint mode

    Type: | boolean, default False

  `use_persistent`

    Sculpt on a persistent layer of the mesh

    Type: | boolean, default False

  `use_plane_trim`

    Enable Plane Trim

    Type: | boolean, default False

  `use_pressure_jitter`

    Enable tablet pressure sensitivity for jitter

    Type: | boolean, default False

  `use_pressure_masking`

    Pen pressure makes texture influence smaller

    Type: | enum in [‘NONE’, ‘RAMP’, ‘CUTOFF’], default ‘NONE’

  `use_pressure_size`

    Enable tablet pressure sensitivity for size

    Type: | boolean, default False

  `use_pressure_spacing`

    Enable tablet pressure sensitivity for spacing

    Type: | boolean, default False

  `use_pressure_strength`

    Enable tablet pressure sensitivity for strength

    Type: | boolean, default False

  `use_primary_overlay`

    Show texture in viewport

    Type: | boolean, default False

  `use_primary_overlay_override`

    Don’t show overlay during a stroke

    Type: | boolean, default False

  `use_relative_jitter`

    Jittering happens in screen space, not relative to brush size

    Type: | boolean, default False

  `use_restore_mesh`

    Allow a single dot to be carefully positioned

    Type: | boolean, default False

  `use_secondary_overlay`

    Show texture in viewport

    Type: | boolean, default False

  `use_secondary_overlay_override`

    Don’t show overlay during a stroke

    Type: | boolean, default False

  `use_smooth_stroke`

    Brush lags behind mouse and follows a smoother path

    Type: | boolean, default False

  `use_space`

    Limit brush application to the distance specified by spacing

    Type: | boolean, default False

  `use_space_attenuation`

    Automatically adjust strength to give consistent results for different spacings

    Type: | boolean, default False

  `vertex_tool`

    Brush blending mode

    - `MIX` Mix, Use mix blending mode while painting.
    - `ADD` Add, Use add blending mode while painting.
    - `SUB` Subtract, Use subtract blending mode while painting.
    - `MUL` Multiply, Use multiply blending mode while painting.
    - `BLUR` Blur, Blur the color with surrounding values.
    - `LIGHTEN` Lighten, Use lighten blending mode while painting.
    - `DARKEN` Darken, Use darken blending mode while painting.

    Type: | enum in [‘MIX’, ‘ADD’, ‘SUB’, ‘MUL’, ‘BLUR’, ‘LIGHTEN’, ‘DARKEN’], default ‘MIX’

  `weight`

    Vertex weight when brush is applied

    Type: | float in [0, 1], default 1.0

Inherited Properties

`bpy_struct.id_data` `ID.name` `ID.users` `ID.use_fake_user` `ID.tag` | `ID.is_updated` `ID.is_updated_data` `ID.is_library_indirect` `ID.library` `ID.preview`

Inherited Functions

`bpy_struct.as_pointer` `bpy_struct.driver_add` `bpy_struct.driver_remove` `bpy_struct.get` `bpy_struct.is_property_hidden` `bpy_struct.is_property_readonly` `bpy_struct.is_property_set` `bpy_struct.items` `bpy_struct.keyframe_delete` `bpy_struct.keyframe_insert` `bpy_struct.keys` | `bpy_struct.path_from_id` `bpy_struct.path_resolve` `bpy_struct.property_unset` `bpy_struct.type_recast` `bpy_struct.values` `ID.copy` `ID.user_clear` `ID.animation_data_create` `ID.animation_data_clear` `ID.update_tag`

References

`bpy.context.brush` `BlendData.brushes` `BlendDataBrushes.new` | `BlendDataBrushes.remove` `Paint.brush`