{
var cols = 18;
var rows = 18;
var amount = cols * rows;
var canvas = document.createElement('canvas')
canvas.width = 1024;
canvas.height = 1024;
canvas.style.background = '#ccc';
canvas.style.width = width + 'px';
canvas.style.height = width + 'px';
var ctx = canvas.getContext('2d');
var two = new Two({
type: Two.Types.canvas,
width: width / cols,
height: width / rows,
ratio: 1
});
two.scene.translation.set(two.width / 2, two.height / 2);
for (var i = 0; i < amount; i++) {
var pct = i / (amount - 1);
var col = i % cols;
var row = Math.floor(i / cols);
var x = canvas.width * col / cols;
var y = canvas.height * row / rows;
generate(pct);
ctx.drawImage(two.renderer.domElement, x, y);
}
function generate(elapsed) {
var circle = two.scene.children[0];
if (!circle) {
circle = two.makeCircle(0, 0, two.width / 3);
circle.stroke = '#fff';
circle.fill = '#fff';
two.update();
}
circle.scale = new Two.Vector(1, Math.sin(elapsed * Math.PI));
two.update();
}
return canvas;
}