Skip to content

Merge Points

Combines two or more point streams into a single Points output, remapping IDs and tagging each stream's origin for downstream selection.

Category: Point Ops Menu path: Point Ops > Merge Points

Ports

PortTypeDirectionDescription
points_inpointsinput (multi)Two or more point inputs. Use the + button on the node to add more slots.
outpointsoutputSingle Points stream concatenated in slot order.

Parameters

None.

How It Works

MergePoints is the points-side analog of MergeShapes — a pure structural combine, no math. Each input contributes its points verbatim to the output, with PointIds re-keyed to fresh values so downstream nodes that rely on stable identity still work.

Stream order matches slot order: slot 0 comes first, the last slot comes last. The output point indices [0 .. n-1] follow this concatenation order. Drag inputs in the node graph to reorder.

sourceIndex

A sourceIndex per-point attribute is always emitted (overwriting any incoming sourceIndex). It's a scalar 0, 1, 2... matching the input slot each point came from — useful for routing branches downstream:

  • PointAttributes (color from sourceIndex via Remap) → color each origin differently.
  • PointAttributes (scale from sourceIndex) → make stream A bigger than stream B.
  • PointDelete (threshold on sourceIndex) → drop a specific stream after a downstream branch already used it.

Attributes (conservative merge)

Per-point attributes (scale, opacity, rotation, color, custom) are preserved only when present on every input with the same type. Diverging attribute surfaces get dropped rather than zero-padded — silently zeroing opacity or scale on points that lacked the attribute would produce invisible or zero-size points downstream, which is rarely what you want.

If you need an attribute to survive a merge across mismatched sources, normalize first: insert a PointAttributes (target: Opacity, value: 1.0) on the branch that lacks the attribute, and the merge will pass it through cleanly.

Disconnected slots are skipped. A MergePoints with only one connected input is a no-op passthrough.

Usage Examples

Combine procedurally-generated and shape-derived points

Grid → MergePoints slot 0 + Rectangle → ShapeToPoints → MergePoints slot 1 → DrawPoints. You get the grid plus the rectangle corners in one stream, with sourceIndex available for later routing.

Two scatter passes with different seeds

Rectangle → PointScatter (seed=0) + Rectangle → PointScatter (seed=42)MergePointsDrawPoints. Twice as many points without changing count.

Animated grouping

Two Grid chains with different counts feeding MergePointsPointAttributes (color from sourceIndex via Colorize ramp)DrawPoints. Each stream gets its own color, but they all animate as one population.

Tips

  • MergePoints does not deduplicate — coincident points from multiple streams stay coincident. Use a downstream filter (e.g. PointRelax, PointDelete) if you want to thin them.
  • Reach for MergePoints when you want streams to coexist; reach for a dedicated boolean/relaxation node if you want them to interact.
  • The node grows additional input slots on demand via the + button.
  • Empty / disconnected slots are silently ignored.
  • MergeShapes — the shape-side analog when you want to combine shape geometry instead of point streams.
  • PointAttributes — set or normalize attributes before merging if you need them preserved.
  • PointDelete — thin a merged stream using sourceIndex or any attribute.
  • DrawPoints — rasterizes the combined stream.

Caddis — professional motion design.