What Are Attributes?¶
If you have ever wondered what the mysterious Attributes list in Blender's mesh data is for, this
page is for you. Attributes are one of the most powerful — and most overlooked — features in modern
Blender.
An attribute is a generic term to describe data stored per-element in a geometry data-block. For example, every vertex can have an associated number or vector.
In other words, an attribute lets you attach a value to every part of your mesh: a number on each vertex, a color on each face, a piece of text on each edge, and so on. Every attribute has three things that define it:
- A name — for example
road_widthorinstance_index. - A domain — which mesh elements the data is attached to (vertices, edges, faces, or face corners).
- A data type — what kind of value is stored (a float, an integer, a color, …).
Why Attributes Matter¶
Attributes are the raw data that Geometry Nodes read to make decisions. A procedural setup does not know what a "door" or a "window" is — it only knows the numbers you feed it. Attributes are how you feed it those numbers, per element, right on the mesh:
- Store a
road_widthfloat on each edge to drive how wide a generated road segment becomes. - Store a
building_heightvalue on each face so a city generator extrudes each plot differently. - Store an
instance_indexinteger on each face to dictate whether a door, window, or prop is scattered there.
The key idea is per-component control. Without attributes, a procedural setup usually forces an all-or-nothing choice: either apply one value uniformly to the whole mesh, or let a node generate random values you cannot steer. Attributes give you the middle ground — a deliberate, hand-picked value on each individual vertex, edge, or face — so this plot gets a tall building while that one stays short, and a door spawns exactly where you decide.
Domains — Where the Data Lives¶
The domain of an attribute is the type of geometry element the value is attached to. Blender supports several domains; the four that apply to meshes are:
| Domain | Also called | The value is attached to… | Typical use |
|---|---|---|---|
| Vertex | Point | Each vertex of the mesh | Weights, per-point positions, random seeds |
| Edge | — | Each edge of the mesh | Edge widths, crease-like data, tags |
| Face | — | Each face of the mesh | Material choice, extrusion height, region ids |
| Face Corner | Corner | Each corner of every face | UV maps, per-corner colors |
Other domains exist too
Blender also has Spline/Curve and Instance domains for curve objects and for geometry created inside Geometry Nodes. These are not mesh element domains — the four above are the ones you work with on a mesh.
Data Types — What the Data Is¶
The data type is the kind of value stored at each element. Blender offers a range of types, listed below from the simplest to the most advanced:
| Data type | What it stores |
|---|---|
| Float | A number that can have decimals, like 0.5 or 12.7 — great for weights or amounts |
| Boolean | A simple on/off value: True or False |
| Integer | A whole number with no decimals, like 3 or -7 — often an index or count |
| Vector | Three numbers together (X, Y, Z) — usually a position or a direction |
| Color | A full-quality color: red, green, blue, and transparency |
| Byte Color | A color too, but stored more compactly at lower quality |
| String | A piece of text, such as a name or a label |
| 2D Vector | Two numbers together (X, Y) — most often UV coordinates |
| 4D Vector | Four numbers together — usually describes a rotation |
| 8-Bit Integer | A very small whole number, from -128 to 127 |
| 2D 16-Bit Integer Vector | Two small whole numbers together |
| 2D Integer Vector | Two whole numbers together |
| Quaternion | Four numbers that together describe a rotation |
| 4x4 Matrix | A block of 16 numbers describing position, rotation, and scale at once |
Types are converted implicitly
When you connect attributes of different types in Geometry Nodes, Blender converts between them where possible, just like node sockets. When separate geometries that share an attribute name are joined, the more advanced type (further down the list above) is kept.
Built-in vs. Custom Attributes¶
Not every attribute is something you create:
- Built-in attributes always exist and cannot be removed — for example
position(vertex locations),material_index(which material is on each face), and normals. Blender manages these for you. - Custom attributes are the ones you add to store your own data. Blender's
Properties Editor → Object Data → Attributeslist shows only these custom attributes.
Familiar mesh data is really just attributes under the hood: UV maps are 2D-vector attributes on the face-corner domain, edge crease is a float attribute, and vertex colors are color attributes.
Where Attributes Live in Blender¶
Out of the box, working with attribute values in Blender is scattered across several editors:
- Add / remove / rename attributes in
Properties Editor → Object Data → Attributes. - Inspect values in the Spreadsheet editor.
- Set values via Geometry Nodes or the
F3 → Set Attributeoperator.
This means that just to change a single value you often end up jumping between the Spreadsheet, data menus, and node editors — all while leaving the mesh you are actually editing.
How attribute editor Helps¶
This is exactly the gap attribute editor fills. It brings attributes into Edit Mode, right where
you model, so you can author the data driving your procedural setups without breaking your flow:
- Editing Attributes — read and change custom attribute values on your current selection instantly.
- Attribute Visualization — see attribute values drawn directly on the mesh in the 3D Viewport.
- Select Similar — select every element that shares a value with the active one.
- Randomize Attribute — assign random values within a range to your selection.
Ready to try it? Head to the Panel Overview to find the tools.
Learn More¶
Attributes are a deep topic. For the full reference, see the official Blender manual:
- Attributes reference — the complete list of domains and data types.
- Object Data properties → Attributes — the native panel for adding and removing custom attributes.
- Geometry Nodes — where attributes are most commonly put to work.
- Spreadsheet editor — Blender's built-in way to inspect attribute values in a table.