Select any box in the drawing to read what it does, what goes in and out, and what the paper leaves unsaid.
Node i and its neighbours
N(i) Section III-B; Section IV, p. 1719
Everything the descriptor needs sits inside one node’s own neighbourhood: j, k and p are all drawn from the neighbours of i. The paper calls this an efficient one-hop message passing scheme
.
- In
- positions of node i and its neighbours
- Out
- distances stays put, directions turns
- Toy
Not in the paper: the cutoff radius that decides who is a neighbour. The toy joins all six points.
Tie filter
Distance masking, D(i) Section IV-B, Eq. 1, p. 1719
Its goal is to filter out nodes that are equidistant from the reference node i, which could lead to ambiguities in node selection
. Any pair of neighbours whose distances differ by less than a threshold is excluded: both members, not just one.
- In
- distances from i to each neighbour
- Out
- the neighbours without a near-tie stays put
- Toy
Not in the paper: the threshold it finally chose. Table II lists the values searched, 1e-3 to 5e-3.
In-line filter
Non-collinear node selection, L(i, j) Section IV-C, Eq. 2 and 3, p. 1719
Linear alignment of nodes leads to degenerate cases where the QOS becomes ill-defined.
A candidate k is rejected when the cosine of the angle between the directions to j and to k is within a small tolerance of 1, in either direction.
- In
- directions from i to j and to each candidate
- Out
- candidates that are off the line stays put
- Toy
Not in the paper: the tolerance it finally chose. Table II lists 1e-5 to 1e-4.
Flat filter
Non-Degenerate Quadruplet Set, Q(i, j, k) Section IV-D, Eq. 6, pp. 1719 to 1720
It excludes nodes that form near-parallel planes with the plane of i, j, and k
. The paper’s sentence says a twist near zero or near π is near-planar; the toy follows that sentence.
- In
- the twist each candidate p would give
- Out
- candidates that lift the second plane off the first stays put
- Toy
Not in the paper: what a node receives when no candidate is left. Equation 6 as printed tests only the lower bound.
Choosing j, k and p
Equations 7, 8 and 9 Section IV-E, p. 1720
j is the nearest neighbour that survives the tie filter. k is the nearest survivor that is not in line with i and j. p is the nearest survivor that is not in line with j and k and does not leave the two planes nearly flat. The paper calls it a multi-stage filtering approach
.
- In
- the three filtered sets
- Out
- three node labels stays put
- Toy
Not in the paper: what happens to a node with fewer than three usable neighbours.
Twist of four nodes
Quadruplet Orientation Signature (QOS) Section IV-D, Eq. 4 and 5
The paper builds the normal of each plane with a cross product and takes a signed angle from two products of those normals: a measure of the dihedral angle between the planes (i, j, k) and (j, k, p)
. It is unchanged by turning and shifting, and under reflection transformations, the QOS undergoes a sign change
.
- In
- positions of i, j, k and p
- Out
- one signed angle; only its sign is used
- Toy
Not in the paper: a derivation of the sign change, which is stated in prose. The toy measures the twist about the shared edge and shows its sign only.
The sign token
Equation 10 Section IV-E, p. 1720 flips in the mirror
Each node gets one of two tokens, and the token becomes a learned set of numbers: ψ denotes the embedding function that maps the QOS signs to latent representations
. Of the plain numbers that enter the network, this is the only one a mirror changes (this page’s reading of Equations 11 to 15); the arrows are simply mirrored along with the graph.
- In
- the sign of the twist
- Out
- a token, plus or minus
- Toy
Not in the paper: the form of ψ. The toy uses two fixed numbers, and zero for a node without a valid quadruplet.
Node numbers
Scalar representations, s Section III-B; Section V stays put
Every node carries plain numbers next to its arrows. Theorem 1 says they are unchanged by any turn and any shift of the graph.
- In
- the sending node, here node 2
- Out
- its numbers, C of them in the paper, one in the toy
- Toy
Not in the paper: how the first numbers are made from the input. The toy starts from three made-up node types.
The sign joins the numbers
Equation 11 Section V-A, p. 1720
The token is added to the sending node’s numbers and the result is widened from C numbers to 3C: The scalar feature of the source node, sj, is enhanced by the QOS embedding
. After this box the sign is part of ordinary numbers.
- In
- numbers of node 2, token of node 2
- Out
- three sets of numbers, h stays put
- Toy
Not in the paper: the depth and activation of the two perceptron stacks. The toy uses a tanh of three fixed multiples.
Distance, basis and cutoff
χ and ω in Equation 12 Section V-A stays put
The distance between the two nodes passes through the basis and cutoff functions, respectively
, and another perceptron stack. A distance does not change under any rigid motion, so neither does anything made from it.
- In
- distance from node 1 to node 2
- Out
- three weights, one per message
- Toy
Not in the paper: which basis, which cutoff function, and the cutoff radius. The toy uses three bumps and a cosine cutoff.
Three messages
ms, mv, md, Equation 12 Section V-A stays put
The three sets of numbers are multiplied by the three distance weights. One message is for the numbers, one for the neighbour’s own arrows and one for the direction between the two nodes. All three are plain numbers.
- In
- h and the three distance weights
- Out
- three messages of C numbers each
- Toy
Not in the paper: nothing further; the sizes are printed, the functions are not.
Add up over neighbours
Interaction layer, numbers, Equation 13 Section V-A stays put
A node’s numbers become its old numbers plus the first message from every neighbour. The proof: the scalar update depends entirely on the invariant message function
.
- In
- first message from each neighbour
- Out
- numbers of node 1, before the update
- Toy
Not in the paper: any normalisation of the sum.
Start arrow
Direction to Nearest Neighbor (DNN) Section IV-A.1, p. 1719 turns
each node's vector is initialized based on the direction to its nearest neighbor
. The identity of the nearest neighbour does not depend on how the graph is held; the arrow itself turns with it.
- In
- positions of the node and its nearest neighbour
- Out
- one 3D arrow per node
- Toy
Not in the paper: whether the arrow is normalised, how it fills C channels, and what happens on a tie for nearest. The toy uses a unit arrow.
Direction from i to j
dij in Equation 13 Proof, p. 1721 turns
The proof defines it as the position of j minus the position of i, and shows that turning the graph turns it the same way. It is the only place where raw geometry enters the arrows of a layer.
- In
- positions of node 1 and node 2
- Out
- one 3D arrow
- Toy
Not in the paper: whether d is normalised inside the layer. The toy uses it as the proof defines it.
Scale and add
Interaction layer, arrows, Equation 13 Section V-A; proof, p. 1721 turns
For each neighbour, the direction towards it is scaled by one message and the neighbour’s own arrows by another, and the results are added to the node’s arrows. A number times an arrow is still an arrow that turns with the graph: two arrows never combine into a new kind of object.
- In
- two messages, the direction, the neighbour’s arrows
- Out
- arrows of node 1, before the update
- Toy
Not in the paper: the shape of the vector features. It prints the sizes C, 2C and 3C for numbers only.
Arrow length
The norm in Equation 14 Section V-A; proof, pp. 1721 to 1722
The one crossing from the arrows to the numbers. the L2 norm of the vector representation is invariant under SE(3) transformations and acts as a scalar
, so it can join the numbers without breaking anything.
- In
- an arrow turns
- Out
- its length stays put
- Toy
Not in the paper: nothing further about this step.
Update the numbers
Update layer, Equation 14 Section V-A, pp. 1720 to 1721 stays put
Arrow lengths and numbers are mixed by perceptron layers into a new number and a multiplier for the arrow. The paper describes this as bidirectional communication between the scalar and vector representations
, and adds a residual connection.
- In
- numbers and arrow lengths of node 1
- Out
- new numbers, and a multiplier
- Toy
Not in the paper: the depth of the perceptron stack.
Gate the arrows
Equation 15 Section V-A; proof, p. 1722 turns
The arrow is scaled by the multiplier from the numbers and by a second gate made from its own length. The use of consistent weights across spatial dimensions ensures that the update respects the SE(3) equivariance of the network.
- In
- an arrow and two numbers
- Out
- new arrows of node 1
- Toy
Not in the paper: which activation σ is. The toy uses a sigmoid.
One layer, repeated
Number of layers Table II, p. 1723
The hyperparameter search space lists 4 layers for the N-body data and 4 or 6 for Molecule3D. After the first layer the numbers of every node already carry the signs of its neighbours.
- In
- new numbers and new arrows
- Out
- the next layer’s inputs
- Toy
Not in the paper: which values were finally chosen. Only the search space is printed.
Decoder
Section V-B p. 1721
When predicting invariant targets, the scalar representations are directly passed to the prediction head. In contrast, for equivariant tasks, both scalar and vector representations are used.
Energies are of the first kind, future positions and the dipole vector of the second.
- In
- numbers, and arrows when the answer must turn
- Out
- the prediction
- Toy
Not in the paper: how node outputs are pooled and the exact form of the equivariant head. The toy reads out a plain sum.