year: 2024/04
paper: https://openreview.net/pdf?id=7PNJzAxkij
website:
code: https://github.com/gengala/egnca
connections: E(n) equivariance, graph, NCA, Learning Graph Cellular Automata, Daniele Grattarola


https://claude.ai/chat/642e86a0-c890-471d-b6a6-f38693db47cf

  Boid i sees neighbors j₁, j₂, ..., jₙ
  For each neighbor jₖ:
      mₖ = EdgeMLP([hᵢ, hⱼₖ, ||xᵢ - xⱼₖ||²])     [message computation]
      αₖ = σ(Linear(mₖ))                        [weight ∈ [0,1]]
      mₖ' = αₖ · mₖ                             [weighted message]
  Aggregate:
      M = Σₖ mₖ'                                [sum of weighted messages]
  Update:
      hᵢ' = NodeMLP([hᵢ, M])                   [new features]
      vᵢ' = VelMLP(hᵢ, ||vᵢ||) · vᵢ + CoordMLP(M) · Σₖ(xᵢ - xⱼₖ)  [new velocity]
      xᵢ' = xᵢ + vᵢ'                            [new position]