RasterCore
Ready to execute

Hardware Heritage

The "Doom Fire" effect is a classic example of cellular automata in computer graphics. First popularized by the PlayStation port of DOOM, it uses a simple set of propagation rules to simulate the organic, flickering motion of flames using a low-resolution buffer and a palette-indexed heat map.

PC Origin

Famously used in the PSX port of DOOM, this algorithm relied on a 2D array of heat values. Each frame, values were averaged from the pixel below and decayed, creating the upward lick of flames.

Amiga Blitter

While CPU-heavy on the 68000, Amiga coders often used the Blitter to "smear" bitplanes upward with a 50% mask, simulating fire-like trails with hardware acceleration.

Modern Noise

This implementation uses FBM (Fractional Brownian Motion) and domain warping in the fragment shader to procedurally generate the flame motion without per-frame CPU loops.

Doom Fire

The defining heat of the 90s FPS era.

Legacy C (PSX Doom)

void SpreadFire(int src) {
    int pixel = firePixels[src];
    int rand = (random() & 3);
    int dst = src - rand + 1;
    firePixels[dst - WIDTH] = pixel - (rand & 1);
}

Modern GLSL

float n = fbm(uv * 4.0 - vec2(0, iTime * 2.0));
float c = n * (1.0 - uv.y) * 1.5;
col = mix(vec3(0), vec3(0.5, 0, 0), smoothstep(0.0, 0.3, c));