Quantised vortex windings realise U(1) holonomies; SU(2) matrix toy shows how non-Abelian factors could be composed (full SM not claimed).
Provide a reviewer-auditable **toy** linking quantised vortex windings to U(1) holonomy phases and showing how non-Abelian factors could be composed — without claiming the full Standard Model gauge group from 2D GPE alone.
On a four-vortex (+1,+1,−1,−1) cell, circular loops yield integer windings matching the enclosed vortex charge; the discrete holonomy phase ΣΔφ matches 2πQ to numerical tolerance; a standalone SU(2) product of Pauli exponentials is unitary with det = 1 to machine precision.
Addresses the 'where is SU(3)×SU(2)×U(1)?' criticism at the level of a **numerical existence proof** for holonomy arithmetic; extending to three generations and anomaly cancellation remains open (see Open issues).
Interactive visualization
SVT predictionQuantised vortex windings realise U(1) holonomies; SU(2) matrix toy shows how non-Abelian factors could be composed (full SM not claimed).
Plots


stdout tail
enc +1 at (6,-2): Q_exp=1 wind=1 ΣΔφ=6.2832 wind_PASS=True holo_PASS=True enc both lower +1: Q_exp=2 wind=2 ΣΔφ=12.5664 wind_PASS=True holo_PASS=True enc global (net 0): Q_exp=0 wind=0 ΣΔφ=0.0000 wind_PASS=True holo_PASS=True SU(2) toy: unitarity max err = 2.22e-16, |det-1| = 0.00e+00 -> PASS =================== VALIDATION =================== All integer windings match : PASS U(1) holonomy phases (tolerance): PASS SU(2) composition toy : PASS Overall : PASS SVT Prediction: Quantised vortex windings realise U(1) holonomies; SU(2) matrix toy shows how non-Abelian factors could be composed (full SM not claimed). ================================================== Matches data: YES — Validated /home/kruiserx/code/SVT2.0/sim_56_braid_holonomy_gauge_toy_2026.py:151: UserWarning: FigureCanvasAgg is non-interactive, and thus cannot be shown plt.show() /home/kruiserx/code/SVT2.0/sim_56_braid_holonomy_gauge_toy_2026.py:177: UserWarning: FigureCanvasAgg is non-interactive, and thus cannot be shown plt.show()