Cubular

to generate a new and unique variation

Source Code

Every variart piece is a small program. This is the one that drew what you're looking at.

var palettes = [
  ['#036883', '#bfdae3'],
  ['#581839', '#e3c9d5'],
  ['#3f5e2e', '#d6e2c3'],
  ['#8c3b12', '#f0d8c4'],
  ['#2f3a56', '#c8cede'],
  ['#6b5a1e', '#e6e0cc']
];

var palette = palettes[getRandomInt(0, palettes.length - 1)];
var color = palette[0];
var lightColor = palette[1];

var size = intVariable('Size', 30, 90);
var scramble = intVariable('Scramble', 0, 100);

var k = size / 60;
var faces = [color, 'white', lightColor];

for (var y = -75 * k, xi = 0; y <= height + 75 * k; y += 55 * k, xi += 1) {
  var xOffset = (xi % 2 == 0) ? -60 * k : -30 * k;

  for (var x = xOffset; x <= width + 60 * k; x += 60 * k) {
    var turn = (getRandomInt(1, 100) <= scramble) ? getRandomInt(0, 2) : 0;

    var left = s.polygon(0, 20, 0, 55, 30, 36).attr({fill: faces[turn]});
    var top = s.polygon(0, 20, 30, 0, 59, 19, 30, 36).attr({fill: faces[(turn + 1) % 3]});
    var bottom = s.polygon(0, 55, 58, 20, 59, 56, 30, 75).attr({fill: faces[(turn + 2) % 3]});

    var g = s.g(left, top, bottom);

    g.transform(Snap.format('t{x},{y}s{k},{k},0,0', {x: x, y: y, k: k}));
  }
}