Select any box in the drawing to read what it does. Arrow keys move between boxes.
One edge
Eq. 1 gives every edge a 3 by 3 block of arrows: d = (ci − cj) / r, t = (ci − c̄) × (cj − c̄) and o = d × t, where c̄ is the average position. The distance r goes to the numbers lane. Nothing reaches past one hop neighbours, which is the design choice the rest of the page depends on.
Atom 2’s numbers
The scalar channel. The paper’s invariant inputs are atomic numbers and interatomic distances, which no rotation or translation changes. In this toy it is four numbers looked up from the invented atom type.
Atom 2’s arrows
The vector channel. Before the first layer it holds the starting arrows of Eq. 2, whose length γ is faded to zero during training: what the paper calls direction noise. It is an initialisation, not a test with noisy structures. The paper gives no shape for the decay of γ, so none is drawn here. From the second layer on it holds whatever the previous layer produced.
Distance filter
η(r) = φr(χ(r) ∗ ω(r)), with χ a basis function and ω a cutoff function. The paper encodes distances “using radial basis functions” and counts edges with a radius of 5.0 Å in Table 1. The basis and cutoff drawn here are this page’s choice.
Number message
es = φs(sj) ⊙ ηs(r), where φ is a stack of perceptron layers and ⊙ multiplies element by element. stays the same
Fresh arrows
φb(β) ⊙ φd(sj) ⊙ ηd(r). φb is a vector update: one weight matrix across channels, applied identically to x, y and z. The paper: “By conducting identical operations across spatial dimensions, vector updates ensure that the equivariance property is maintained.” turns with the molecule
Carried arrows
Vj ⊙ φv(sj) ⊙ ηr(r). For this term the proof notes that “the resulting vector is equivariant since the same values are multiplied across spatial dimensions”. In this toy, with γ at zero, the first layer has nothing to carry yet. turns with the molecule
Sum over neighbours
s′i = si + Σ es and V′i = Vi + Σ ev over the neighbours of atom i (Eq. 4). A sum treats every neighbour alike and adds arrows tip to tail, so both symmetries pass through it.
Mix
The vector update V′ = W V with a learnable matrix W across channels. The same weights act on x, y and z, so mixing two arrows gives an arrow that turns with them. The paper mentions no bias here, and an added constant arrow would not turn.
Measure length
“The norm operation ‖ · ‖ applied to V is invariant, as the magnitude of the vector does not change with rotation.” This is how information held in arrows reaches predictions that must not change when the molecule turns.
Numbers update
φm(‖φvu(V)‖ ∪ s): a perceptron of the arrow lengths joined with the numbers. A second perceptron of the same input produces the gates that cross back down.
Scale
φvu(V) ⊙ φv(‖φvu(V)‖ ∪ s). In the paper’s words, “the scalar representations scale the vector representations”. One number per arrow: numbers inform arrows without bending them.
Activate by length
VA(V) = V ⊙ σ(‖V‖ + b), Eq. 3, with one bias per channel. This is the switch on the test bench, and the values in this figure follow the bench’s bias and direction noise.