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]