XR Interaction

Category: Executor Tier: Pro

Purpose

Handles all hand-to-object and hand-to-UI interactions: grabbing, throwing, poking, UI pointing, and AR anchor management.

Visual Reference

As added to your scene
XR Interaction brick as it appears in the GDLink editor

Runtime Behavior

Inputs

  • Activate (Boolean): Triggers the selected interaction.

Properties

Core (always visible)

  • interaction_mode (Enum, default "Grab"): Grab, Release/Throw, Poke, UI Pointer, Anchor

Grab Mode (visible_if: {interaction_mode: "Grab"})

  • grab_mode (Enum, default "Snap"): Snap (freeze and drive the object’s world transform from the hand/controller), Physics Joint (6DOF joint for weighted movement)

  • precision_grab (Bool, default true): Maintain relative offset between hand and object on contact.

  • max_weight (Float, default 10.0): Objects heavier than this are rejected (absorbed from demoted Grab Gate).

  • lock_check (Bool, default true): Prevent dual-hand conflicts on same object (absorbed from demoted Grab Gate).

  • max_grab_distance (Float, default 0.2): Maximum hand-to-object distance to initiate grab (absorbed from demoted Interaction Gate).

  • snap_zone (Bool, default false): If true, the grab target is a snap zone — object snaps to zone’s transform on release nearby.

  • Fixture convention: Pickable objects in group xr_twist_fixture are constrained fixtures. They remain frozen at their authored origin and rotate around their local grip axis while held instead of being translated or thrown.

Release/Throw Mode (visible_if: {interaction_mode: "Release/Throw"})

  • velocity_source (Enum, default "Tracker"): Tracker (current frame velocity), History (averaged over last N frames)

  • throw_multiplier (Float, default 1.0): Scale factor on release velocity.

Generated UI Mockup — showing expanded properties
XR Interaction
-
x
Name:
Label this brick...
Mode:
Grab
Delay:
0.0
v
Grab
Snap
Precision
Max Weight
10.0
v
Max Dist
0.2
v
Velocity
Tracker
Throw Mult
1.0
v
Finger
Index
Depth (m)
0.01
v
Source
Right Hand
Event
Left Click
Operation
Create
Name
v
Lock Check
Snap Zone

Properties

Property

Type

Default

Notes

Mode

option

Grab

Interaction type

Grab

option

Snap

Snap: instant reparent. Physics Joint: 6DOF joint

Precision

bool

True

Maintain offset between hand and object

Max Weight

float

10.0

Objects heavier than this are rejected

Max Dist

float

0.2

Maximum hand-to-object distance to initiate

Lock Check

bool

True

Prevent dual-hand conflicts on same object

Snap Zone

bool

False

Target is a snap zone (object snaps on release nearby)

Velocity

option

Tracker

Current frame or averaged over N frames

Throw Mult

float

1.0

Scale factor on release velocity

Delay

float

0.0

Seconds to wait before applying velocity

Finger

option

Index

Finger for poke interaction

Depth (m)

float

0.01

Activation penetration depth

Source

option

Right Hand

Controller for UI ray

Event

option

Left Click

Input event to inject

Operation

option

Create

Anchor lifecycle operation

Name

string

Anchor identifier