JSFiddle - React, Tailwind, and code Playground
JavaScript
const cvs = document.createElement("canvas");
document.body.appendChild(cvs);
cvs.width = document.documentElement.clientWidth;
cvs.height = document.documentElement.clientHeight;
const ctx = cvs.getContext("2d");
const scale = 1;
var a = [];
var b = [];
var len = 1;
a[0] = 1;
for (var i = 0; i < cvs.height; i++) {
len += 2;
for (var j = 0; j < len; j++) {
const e = [a[j-2] || 0, a[j-1] || 0, a[j] || 0];
b[j] = (e[0] + e[1] + e[2] + e[1] * e[2]) % 2
if (b[j]) {
ctx.fillRect(j, i, 1, 1);
}
}
a = b;
b = []
}