A patch of skin, zoomed out from the single-cell view. On healthy skin, click to test a Koebner trigger (friction, a scratch, sunburn) — a real documented trigger — and see how a single isolated trigger typically stays contained. Switch to active vitiligo to watch an already-established attack keep spreading on its own, and see a JAK inhibitor visibly slow it down (or not fully stop it — that's the real, tested behavior, not a simplification).
Click the skin to trigger a Koebner event at that point. Each tile is a small cluster of melanocytes — color blends healthy skin tone → inflamed → depigmented as the local balance shifts.
The tile colors are driven by the same population model as the full console — same constants, same equations. The only thing added for this page is a spatial layer: which specific tiles change is chosen so new attack/dormancy spreads outward from tiles already affected (a simple neighbor-weighted growth rule), which is illustrative, not itself derived from a specific citation — real spatial spread involves local chemokine diffusion this project hasn't modeled at that resolution.
Core loop: IFN-γ → CXCL9/10 → CXCR3+ recruitment. Koebner trigger: documented environmental/mechanical triggers (friction/sunburn avoidance).