Every particle is born on a base disc, rises on temperature-driven buoyancy, gets stirred
by the emitted field.glsl() as its living turbulence (the field's own
churn time-evolution — no extra noise source), is pinched toward the axis into a
flame silhouette, cools, dies, respawns — all on the GPU. Rendered as short velocity streaklets
through a black-body-ish ramp (white-hot core → orange → deep red → soot), with a sparse
population of long-lived sparks. Drag to orbit, scroll to zoom.