Reciprocal Squeezing
Each square is a spin (black = up, white = down), updated by asynchronous heat bath
dynamics. Associated with each site \(i\) is an energy term built from its north, east,
and south neighbors,
\[ E_i = -J \left[ \min(s_N, s_E) + \max(s_E, s_S) \right] s_i - h\, s_i, \]
and the global Hamiltonian is \( H = \sum_i E_i \).
At \(R = 0\) each spin is selfish: it heat baths against \(E_i\) alone,
ignoring the fact that it also appears in the terms centered on its neighbors. That
asymmetry — spin \(i\) caring about \(j\) more than \(j\) cares about \(i\) — is what makes
the dynamics nonreciprocal, and there is no Hamiltonian it relaxes to.
Spin \(s_i\) actually appears in four terms of \(H\): its own, plus the terms centered on
the sites to its south, west, and north, which see it as their north, east, and south
neighbor respectively. The Reciprocity slider restores those three at strength \(R\),
\[ E_i^{\text{upd}} = E_i + R \left[ E_{S(i)} + E_{W(i)} + E_{N(i)} \right], \]
so at \(R = 1\) the update is exact heat bath dynamics for \(H\) and the model equilibrates.
Negative \(R\) overshoots past the selfish point into anti-reciprocity: rather than
merely ignoring its effect on its neighbors, each spin counts that effect with the wrong
sign, and at \(R = -1\) it works against their terms exactly as hard as it works for its own.
Try Flip Circle at low \(T\): near \(R = 1\) the droplet relaxes in place, while
near \(R = 0\) it drifts and shears along the anisotropy of the rule.