The classic demoscene plasma: interfering sine fields that breathe and shift colour. Press c to cycle palettes, click to move the wave centre.
Both captures below are real iTerm2 sessions running the demo — the same binary renders at pixel resolution where the terminal speaks the kitty graphics protocol, and as ASCII cells everywhere else.
plasma-gfx
Every pixel sums four sine waves — one of them radial, around a centre you can drag with the mouse — and looks the result up in an Inigo Quilez cosine palette that drifts over time, so smooth colour bands roll across the frame.
plasma
The same field sampled per cell, each character chosen from a brightness ramp (·:+*x#%@) and tinted with the palette colour.
| Key | Action |
|---|---|
| space | reseed the wave centre |
| mouse click | set centre at the pointer |
| a | freeze the animation |
| c | cycle palette |
| + / - | speed |
| q / Esc | quit |
Tuning env vars use the PLASMA_* prefix — e.g. PLASMA_MAXDIM=1024 for sharper frames, PLASMA_CELLS=1 to force cell rendering even on kitty terminals. See the overview for the full tuning table.