The classic demoscene fire: a heat field that cools in chunky random quanta as it rises, carving the flames into ragged tongues. Click to lob a fireball, space to flare the burner, a to snuff it.
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.
fire-gfx
The Doom fire algorithm on 2×2 pixel blocks: every cell scatters its heat to a randomly jittered spot one row up — the collisions and holes are what keep the tongues coherent. Alpha follows the heat, so the flames burn straight over your terminal background.
fire
The same heat field at half-cell resolution, rendered as an ember-to-blaze glyph ramp (· : ~ * # @) through a four-stop palette — c swaps fire for blue gas, toxic green, or violet plasma.
| Key | Action |
|---|---|
| space | flare the burner |
| mouse click | fireball at the pointer |
| a | snuff / relight |
| c | cycle colour scheme |
| + / - | flame height |
| q / Esc | quit |
Tuning env vars use the FIRE_* prefix — e.g. FIRE_MAXDIM=1024 for sharper frames, FIRE_CELLS=1 to force cell rendering even on kitty terminals. See the overview for the full tuning table.