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 = []
}