Skip to content

Point Attributes

Sets per-element attributes on points, either from a spatial field or a uniform value. Attributes are read by downstream Draw and Clone nodes.

Category: Point Ops Menu path: Point Ops > Point Attributes

Ports

PortTypeDirectionDescription
points_inpointsinputSource points
field_inscalarFieldinputSpatial field to sample at each point position (also accepts vectorField and colorField)
outpointsoutputPoints with attributes set

Parameters

ParamTypeDefaultDescription
targetenumScaleWhich attribute to write: Scale, Opacity, Rotation, Color, or Custom
sourceenumFieldField / Value / Index — how the output is computed. See below
valuescalar1.0Uniform value (used when source=Value, or as fallback when source=Field with no field connected)
colorValuecolorwhiteColor value (used when source=Value, target=Color)
customAttributestringcustomAttribute key name (used when target is Custom)
indexCurvecurveRamp0→1 linearSource=Index + scalar target. Samples the ramp by each point's normalized index
indexColorRampgradientRampblack→whiteSource=Index + target=Color. Samples the gradient by each point's normalized index
outputMinscalar0Lerp the [0,1] ramp / field output into [outputMin, outputMax]. Hidden for Color and Rotation targets and for source=Value. Default 0/1 is identity
outputMaxscalar1See outputMin

How It Works

PointAttributes evaluates per point. For each point in the input:

  1. If a field is connected to field_in, it is sampled at the point's position (in origin-centered comp-pixel coordinates).
  2. If no field is connected, the value or colorValue param is used uniformly.

The result is stored as a named attribute on each point:

TargetAttribute keyRead by
ScalescaleDrawPoints (radius multiplier), CloneToPoints (uniform scale)
OpacityopacityDrawPoints (alpha), CloneToPoints (path-level opacity)
RotationrotationCloneToPoints (instance rotation in radians), PointDeform (Normal/Tangent local frame)
ColorcolorDrawPoints (RGBA override), CloneToPoints (path-level color)
Customuser-definedAvailable for custom pipelines

Field type handling:

  • ScalarField for rotation uses v * TAU mapping: [0, 1] maps to [0, 2pi].
  • VectorField for rotation uses eval_bipolar() [-1, 1] for full atan2 range [-pi, pi].
  • ColorField writes RGBA directly per point.

Custom target output type: The Custom target follows the field type of the connected input:

  • ColorField -> Vec4 (RGBA stored per point)
  • VectorField (alone) -> Vec2 (bipolar [-1,1] vectors stored per point)
  • ScalarField or uniform value -> Scalar

This lets Custom carry any of the four attribute array types (Scalar, Vec2, Vec4) — whatever matches the field semantics you wired in.

Usage Examples

Basic: Spatially varying size

Grid -> PointAttributes (target: Scale, field: Noise.scalarField) -> DrawPoints. Points near noise peaks are larger, near troughs smaller.

Per-point color from a gradient

Grid -> PointAttributes (target: Color, field: Gradient.colorField) -> DrawPoints. Each point picks up the gradient color at its position.

Rotation for instancing

Grid -> PointAttributes (target: Rotation, field: Noise.scalarField) -> CloneToPoints (shape: small arrow). Each instance rotates based on the noise field, creating a flow visualization.

Curve-aligned rotation

For rotation that follows a curve's tangent (e.g. branches along a stem), use ShapeAttributes with target: Rotation, source: Tangent upstream of ShapeToPointsCloneToPoints. The Tangent mode on ShapeAttributes computes the angle directly from the shape's geometry, which is cleaner than wiring up a VectorField for the same result.

Tips

  • You can chain multiple PointAttributes nodes to set different attributes (e.g., one for Scale, another for Color)
  • When no field is connected, all points get the same uniform value -- useful for setting a base scale or opacity
  • The field_in port accepts scalarField, vectorField, and colorField despite showing as scalarField type
  • Missing attributes in downstream nodes use backward-compatible defaults (scale=1, opacity=1, color=white)
  • ShapeAttributes -- same concept for shape vertices, plus Tangent rotation mode for curve alignment
  • DrawPoints -- reads scale, opacity, and color attributes per point
  • CloneToPoints -- reads rotation, scale, opacity, and color per point; supports pivot modes and group filtering
  • PointDeform -- reads rotation attribute for Normal/Tangent mode local frame
  • Noise -- common field source for spatial variation
  • DistanceField -- shape-proximity-based field source

Caddis — professional motion design.