Skip to content

Attribute to Field ​

Reads a named scalar attribute from a points or shape stream and exposes it as a ScalarField. Bridges per-element attribute data into FieldMath composition.

Category: Fields Menu path: Fields > Attribute to Field

Ports ​

PortTypeDirectionDescription
inpointsinputPoints or shape to read attributes from (shape vertices are treated as points)
scalarFieldscalarFieldoutputField that samples the nearest element's attribute value at any position

Parameters ​

ParamTypeDefaultDescription
attributestringindexName of the per-element column to read — an attribute or an intrinsic

How It Works ​

AttributeToField snapshots the positions and scalar attribute values from the upstream points or shape, then exposes them as a ScalarField. At each sample point, the field returns the attribute value of the nearest element (Voronoi-cell lookup).

Non-scalar attributes reduce to a scalar (Vec2/Vec3 → magnitude, Vec4 → Rec.709 luma), so velocity from TrackPoints reads as speed. A name that resolves to nothing gives a flat 0.0 field.

Coordinate space: Positions and sample coordinates are in origin-centered comp-pixel coordinates, matching the convention of all other field consumers.

Intrinsic Names ​

Any attribute-name field here also accepts an intrinsic — a property every element has by virtue of existing, computed on read and never stored. The leading @ is a reserved namespace: no attribute may be named with one, so a name starting with @ never hits the attribute map.

NameValue
@indexPosition in the list, starting at 0
@idStable PointId — survives filtering and reordering
@x / @yPosition, in local geometry space
@nTotal number of elements
@indexnorm@index / (@n - 1), normalized 0–1
@rand01Deterministic 0–1 per element, keyed on @id (stable as neighbours come and go)
@speedSpeed in pixels per second, from the velocity attribute (0 where there is none)

Names are case-insensitive (@Y = @y). A misspelled intrinsic (@bogus) resolves to nothing rather than falling through to an attribute lookup.

Non-scalar attributes reduce to a scalar by one rule everywhere: Vec2/Vec3 → magnitude, Vec4 → Rec.709 luma of RGB.

Because this node turns any column into a ScalarField, @y is the cheapest way to give any field consumer position awareness — DrawAscii, PointAttributes, ShapeAttributes, FieldMath and Remap all read the result without knowing anything about points.

Usage Examples ​

Mask a subset for field-driven deformation ​

Grid → PointAttributes (target: Custom, customAttribute: "selection", field: DistanceField.scalarField) → AttributeToField (attribute: "selection") → FieldMath (Multiply, b: Noise) → PointDeform.

The selection attribute is 1 near a shape and 0 elsewhere. AttributeToField converts it back into a field, FieldMath multiplies it against the deformation noise, and PointDeform only displaces points near the shape.

Visualize a per-element attribute ​

Grid → PointAttributes (target: Custom, customAttribute: "energy", field: Noise.scalarField) → AttributeToField (attribute: "energy") → Colorize → Output.

Writes per-point noise values into an energy attribute, then samples it back as a field for rasterization.

Tips ​

  • Attribute names are case-sensitive and must match what the upstream producer wrote (PointAttributes Custom, or built-in keys like scale, opacity, rotation, color)
  • Nearest-neighbor lookup gives Voronoi cells — one cell per element. For smooth blending, combine with FieldMath (Add a distance-weighted Gradient) or DistanceField
  • Vec2/Vec3/Vec4 attributes are readable, but they reduce to a scalar (magnitude / Rec.709 luma). Use ImageSample if you need genuine vec/color fields from spatial data
  • The output is always a ScalarField (not VectorField or ColorField) in v1
  • PointAttributes — writes named attributes that this node can read back
  • ShapeAttributes — same, for shape vertices
  • FieldMath — combine this field with other fields (multiply as mask, add for soft blend)
  • ImageSample — related bridge for spatial raster data → field
  • DistanceField — another way to author a scalarField from shape proximity