Rewrite one filled cell (1) as nine characters with only the center as a hole (0), repeated each generation — the remaining area shrinks by 8/9 each time, and getImageData counts it for real

gen 0 · area 100% fillRect · getImageData