m2 = {
const rt = new observable.Runtime;
const m = rt.module();
const ctx = canvas2.getContext('2d');
ctx.fillStyle = '#fff';
ctx.fillRect(0,0,Lx2*boxw2,Ly2*boxh2);
for (let y=0; y<Ly2; y++) {
for (let x=0; x<Lx2; x++) {
const tag = `[${x},${y}]`;
const init = 0;
m.variable().define('mutable '+tag, ["Mutable"], (M) => new M(init));
m.variable(gridObserver2(ctx, x, y)).define(tag, ["mutable "+tag], _ => _.generator);
m.variable(noObs).define('topple '+tag, gridInputs2(x,y, +object.size), gridDefine2(x,y, +object.size));
}
}
m.variable(noObs).define("trigger", () => null);
return m;
}