Image generated with AI

Geometry Nodes basics: fields, attributes and domains

Diego Cortés

Diego Cortés

Author

05 November, 2026

A field is not a number: it is a function Geometry Nodes evaluates on every vertex, face or instance. Understanding that, and the domain where each attribute lives, is what separates a node tree that works from one that breaks with no explanation.

What Geometry Nodes Actually Is (and Where It Lives)

Geometry Nodes modifies an object's geometry through nodes, and you get there through the Geometry Nodes modifier. The tree you draw in the editor, the node group, has two ends: Group Input, where geometry arrives, and Group Output, where it leaves transformed. Anything that does not reach Group Output never runs.

The Geometry Coming In Is Not the Original Object

What enters Group Input is the state of the geometry immediately before that modifier: with a Mirror and a Bevel above, it receives that result. Moving the modifier changes the input, and that explains why one field returns different numbers in two parts of the same tree. Keeping the file tidy: collections and the Outliner.

Three Kinds of Nodes: Data Flow, Fields and Inputs

Data flow nodes take geometry in and give geometry back: Distribute Points on Faces, Instance on Points. Function nodes hold the instructions and are recognizable by their diamond sockets. Input nodes such as Position, Index or ID mean nothing on their own: they contribute a value evaluated in the context of a data flow node, which is where it gets decided which elements are calculated.

Reading a Cable: Solid, Dashed and Red

If the connection comes from a field socket it is drawn dashed; if it comes from a fixed value, solid. Plug something that is not a field into a field socket and the line turns red: a type error. With that rule you can diagnose someone else's tree in seconds.

What a Field Is (and Why the Same Tree Gives Different Results)

A field is a function: it does not store a value, it stores instructions for producing one, and Blender evaluates them once per element, so every vertex, face or instance gets its own result. Wiring Position into a Scale hands over a per-element recipe, not a scale.

Hence the most expensive misunderstanding: the same tree in two places does not give the same numbers, because each data flow node evaluates it against the geometry it has at that point. It is not a bug, it is the definition of a field doing its job.

A Field's Context: Component Plus Domain

Context comes from the data flow node: the component, which is the kind of geometry, and the domain, which is the elements being read. The same field on the Point and Face domains gives different results because of the elements and the interpolation. When a field does not read what you expected, the problem is context.

Attributes: Data That Travels With the Geometry

An attribute is data stored per element: one number per vertex, one vector per face, one color per face corner. It travels with the mesh and any node that knows its domain can read it. Built-in ones already exist (position, ID, UV, normal).

Types define which conversions are legal: color to vector maps channels to components, float to integer truncates, float to vector repeats the scalar. No legal conversion means a red line.

Domains, One by One

Point covers mesh vertices, point cloud points and curve control points. Edge is the wire between them; Face is the polygon. Face Corner combines polygon and vertex, which is where UVs live. Curve is used on splines and Instance on each instanced copy. Picking the wrong domain is the most common silent mistake: nothing fails, it just calculates over other elements. Recap: UV mapping.

Interpolation Between Domains (and the Boolean Rule)

Blender interpolates between domains by simple averaging, except for booleans: point to face, the face is selected only if all its vertices are; point to edge, both vertices; edge to point, one is enough.

Named vs Anonymous Attributes

Named attributes carry a label saved with the file that other systems read: the shader, other modifiers, UV maps. You pick them with the icon to the right of the value button.

Anonymous ones live on the wire and interpolate on their own when the geometry changes. They never clutter the file, but they do not cross into geometry created from another source: that is what Sample Index is for. The material side lives in shader nodes in Blender.

Capture Attribute vs Store Named Attribute

Capture Attribute evaluates fields and stores the result on the geometry, handing it back so other nodes can read it. It creates an anonymous attribute, with a Selection input and a domain, and it only exists on the geometry that node produces: not readable by siblings or upstream.

The classic case is the spline parameter: computed on the fly, meaningful only on curves, and gone once you convert to a mesh. Capture the distance on the control points first, because Curve to Mesh transfers attributes to the vertices.

Store Named Attribute does the same with a name and updates type and domain if it already existed. For internal data, the manual recommends Capture: Capture is for thinking, Store is for communicating.

The Spreadsheet: Debugging by Reading the Data

Columns are attributes, rows are elements. Headers and row numbers stay visible while you scroll. The domain selector shows the element count next to each domain: the fastest way to check whether a node generated what you expected.

The evaluation state has three options: Evaluated, Original and Viewer Node, which lets you choose which element to inspect.

Socket Inspection, Warnings and the Named Attribute Overlay

Hovering a socket shows the last value, although geometry sockets only keep types and element counts, and only if the node reaches Group Output. The named attribute overlay catches a group overwriting original data.

A Complete Example: Scattering With Per-Point Variation

Scattering rocks over a terrain with their own size and rotation, without those values reshuffling when you change density.

  1. Select the terrain, a mesh with faces, and add the Geometry Nodes modifier.
  2. Add Distribute Points on Faces, raise Density and connect to Group Output. The Spreadsheet tells you how many points the Point domain holds.
  3. Add a Random Value node set to Float and wire it into the Scale of Instance on Points: the stable ID keeps each point's value when you raise density.
  4. Connect the distributor's Rotation to the Rotation of Instance on Points, and use Normal to align rocks to the slope.
  5. Capture test: store the normal with Capture Attribute on the Point domain and use it after joining or converting. The field recalculates, the captured value does not.
  6. Named attribute test: store the scale as rock_scale and watch it become a column in the Spreadsheet. If the name already existed, you are overwriting it.
  7. Switch the selector to Face and compare. The same flow applied to a landscape is in landscape scattering.

The Mistakes Everyone Makes

  • A solid red line. Something that is not a field in a field socket, or the reverse.
  • The field reads the wrong geometry. It is evaluated in the context of the data flow node, not where it was drawn.
  • I captured it and cannot find it. The anonymous attribute exists only downstream of the capturing node.
  • A named attribute overwrites original data. The overlay gives it away; for temporary data, use Capture.
  • Booleans that do not select what you expect. Their interpolation is not an average.
  • An attribute that vanishes when joining geometry. An anonymous one does not cross to another source: Sample Index.

Two posts continue this mental model: motion graphics with Geometry Nodes uses it with time as data, and stylized smoke and fire with Geometry Nodes applies it to one effect.

Conclusion

You do not learn Geometry Nodes by memorizing nodes, you learn it by understanding where the data lives. With the domains clear and the difference between a field, a captured and a stored attribute in place, any tree stops being magic: you know what recalculates and where to look.

CGI Academy Hub is a curated collection of video tutorials, run without commercial purpose. To go further, Blender Guru's Introduction to the new Geometry Nodes in Blender and its second part, the Geometry Nodes course by Aura Prods and BlenderDude's exercise on distributing objects on a procedural table. The channels themselves are in the spotlights on BlenderDude, Blender Guru and Aura Prods.