HomeOptics & LightNon-Hermitian Skin Effect — Photonic Ring Array (2D)

Non-Hermitian Skin Effect — Photonic Ring Array (2D)

2D lattice-ring, complex-spectrum and per-site occupation view of a Hatano-Nelson photonic ring array: cut a single bond and watch every mode funnel to that edge — the non-Hermitian skin effect — with live winding number, localization length and IPR, drag-to-rotate the ring.

Optics & Light2DAdvanced60 FPS📱 Mobile-adapted⇄ 3D version
2d-physics-ext-topic-22 ↗ Open standalone

Thirty-two photonic ring resonators sit on a circle, each coupled to its neighbours with a stronger hop clockwise than counter-clockwise — a Hatano–Nelson chain, the simplest non-Hermitian lattice. As long as the ring stays closed, that asymmetry only shows up as a topological winding number in the complex spectrum and the light stays spread evenly around the loop. Cut a single bond and the whole picture changes: every mode of the lattice, not just one, collapses exponentially onto the resonator next to the cut — the non-Hermitian skin effect. This 2D build lays the same physics across three linked panels: a rotatable lattice ring you can drag to inspect, a live complex-energy-plane plot of E(k) with an animated marker tracing the winding number's sign, and a per-site occupation bar chart that makes the exponential pile-up at the cut explicit. Tune the non-reciprocity, coupling and ring size, toggle the boundary condition, and read off the winding number, localization (skin) length and inverse participation ratio as you go.

⚙ Under the hood

2D lattice-ring, complex-spectrum and per-site occupation view of a Hatano-Nelson photonic ring array: cut a single bond and watch every mode funnel to that edge — the non-Hermitian skin effect — with live winding number, localization length and IPR, drag-to-rotate the ring.

non-Hermitiantopological photonicsring resonatorskin effectwinding numberphotonic lattice

2D · HTML5 Canvas 2D · 60 FPS target · runs fully client-side, no install

What did you find?

Add reproduction steps (optional)