Points node

Landmarks to Points

Converts Vision landmark structures — Body joints, Hand joints, Face contours — into a slot-stable point array. Raw landmark data only contains what was detected this frame: an occluded wrist vanishes, the flattened array shrinks, and every downstream index shifts. This node gives every landmark a permanent slot, so indices never jump and attachments never break. It is the stability bridge between Vision Tracking and every point consumer.

Inputs

PortTypeDefault
LandmarksThe tracking data to convert — a Body, Hands or Face structure, or any point structure. Only a real cable is read; an unconnected port yields no points.any—
Min ConfidenceLandmarks tracked below this confidence count as missing and hold their last position instead of moving. Clamped to 0…1, where 0 accepts everything.float0
Auto ResetDrops landmarks that have not been seen for over a second, so a body or hand that left takes its points along. Off holds every point forever.boolfalse
ResetOn the rising edge, clears the slot registry — indices start over from the landmarks visible right now.boolfalse

Outputs

PortType
Pointsstructure
Countint

How It Works

Each landmark found in the input is identified by its name path — e.g. person0/right_wrist or a face region contour point — and registered in a per-node slot registry:

  • First-seen order is permanent. The first time a landmark path appears, it is appended to the end of the slot list and keeps that index forever.
  • New landmarks append. A second hand entering the frame adds its joints after the existing slots; nothing already registered moves.
  • Missing landmarks hold. A landmark absent this frame (occluded, or below Min Confidence) keeps emitting its last known position from its same slot.

Every frame the node walks the connected structure recursively, mirroring Grafit's universal point-cloud decoding but keeping the name path per point and reading the Vision confidence key (c or confidence, defaulting to 1 when absent). Compound Vision structures are handled specially: a Face carries its center as top-level x/y and its contours nested under regions, so the walker emits the leaf point and keeps descending into container values — a face becomes its center plus all region contour points rather than collapsing to a single point. Traversal uses stable key ordering, so the emitted sequence is deterministic.

Two cleanup mechanisms manage the registry's lifecycle:

MechanismTriggerEffect
ResetRising edge on the Reset inputClears the entire slot registry; slots rebuild from what is currently visible
Auto ResetEnabled + landmark unseen for more than 1 secondPrunes just that landmark's slot (position and index removed)

With both off, the registry is hold-forever: a person who walks away leaves their last pose frozen in place. Auto Reset trades a small index shift (when slots are pruned) for a scene that cleans up after departed bodies, hands, and faces. The registry is volatile per-node state — it starts empty on every app launch or patch load.

Outputs are Points (all registered slots, in permanent order) and Count (the current slot count).

One subtlety: landmarks are only read when a real cable is connected to the Landmarks input — the node ignores engine-default values, so an unconnected node emits whatever its registry holds (initially nothing).

Parameters in Depth

  • Landmarks (any) — the landmark source: Body Landmark, Hand Landmark, or Face Landmark structures (also multi-person/multi-hand containers), or in fact any nested x/y(/z) structure. The path-based registry works for arbitrary point data, but its value shows with Vision sources whose detection sets fluctuate.
  • Min Confidence (float, default 0, clamped 0–1) — landmarks whose confidence is below this are treated as missing: their slot holds the last good position instead of updating to a jittery low-confidence one. 0 accepts everything; around 0.3–0.5 filters typical Vision noise. Points without a confidence key count as confidence 1 and always pass.
  • Auto Reset (bool, default false) — when on, any slot unseen for over 1 second is pruned, so a departed body/hand/face takes its points along instead of hanging in the air. Brief occlusions (under a second) still hold position. When off, slots are kept forever until Reset.
  • Reset (bool, default false) — rising-edge trigger that wipes the whole registry. Wire a Keyboard node for a manual "re-learn the scene" button, or pulse it at scene changes.

Use Cases

  • Stable rope attachments: Vision Tracking → Hand Landmark → Landmarks to Points → Get by Index to pick one fingertip slot → Rope. Because the slot index never changes, the rope stays tied to the same finger even when the hand is briefly lost.
  • Body plexus: Body Landmark → Landmarks to Points → Plexus — a connected web over the skeleton that does not tear apart every time a joint drops out of detection.
  • Face constellation: Face Landmark → Landmarks to Points → Points Visualize with gradient coloring by index — the face center plus every region contour point rendered as a stable, ordered cloud.
  • Person-to-shape morph: Landmarks to Points as Points A of Point Morph, a Geometry to Points circle as Points B — the tracked body dissolves into geometry and back without index churn corrupting the pairing.
  • Multi-person merge: two landmark chains (or a multi-person body structure) → Landmarks to Points → Points Merge with other sources — slot stability upstream keeps the merged cloud's index layout predictable.
  • Liquid stirred by joints: Landmarks to Points → Liquid Simulation's Points input — held positions during brief occlusions prevent emitter dropouts from strobing the fluid.

Tips

  • Feed raw landmark structures into this node, then index — never index into raw Vision output directly. The whole point is that slot N here means the same landmark forever.
  • Enable Auto Reset for installations where people come and go; leave it off for choreographed sets where a frozen last pose during a long occlusion is preferable to any index shift.
  • Min Confidence interacts with holding, not deletion: a shaky landmark below threshold freezes in place rather than disappearing. If it should vanish entirely after leaving, that is Auto Reset's job.
  • Slot order depends on detection order of first appearance (which person/hand entered first), so don't hardcode indices across sessions — probe with Get by Index and Points Visualize while building the patch.
  • The output holds positions but does not smooth them; put a Point Animation or downstream smoothing stage after it if you want easing on top of stability.
  • Count changes only when new landmarks first appear or Auto Reset/Reset prunes slots — a far calmer signal than raw landmark counts, and safe to drive logic with.

Open Landmarks to Points in the interactive catalog →

Landmarks to Points is one of 381 nodes in Grafit Pro.

Free download. Every feature for 7 days, no card. Then €99.99 once — or keep playing your projects as a Player.

More Points nodes