var hSize, vSize, gridResolution;
var arrayLocations, shuffledArrayLocations;
createCanvas(screenSize, screenSize);
gB = createGraphics(gBRes, gBRes);
gridResolution = 2 + ~~(32 * random() * random());
for (var i = 0; i < gridResolution * gridResolution; i += 1) {
shuffledArrayLocations = shuffle(arrayLocations, true);
for (var i = 0; i <= 1; i += hSize) {
var xPos = map(i, 0, 1, 0, gB.width);
gB.line(0, 0, 0, height);
image(gB, width * 0.5, height * 0.5, width, height);
var sectorSize = width / gridResolution * 1;
for (var i = 0; i < gridResolution; i += 1) {
for (var j = 0; j < gridResolution; j += 1) {
var xPos = map(i, 0, gridResolution, 0, width);
var yPos = map(j, 0, gridResolution, 0, height);
var sectorI = ~~(map(noise(i * 10), 0, 1, 0, gridResolution));
var sectorJ = ~~(map(noise(j * 10), 0, 1, 0, gridResolution));
var arrayIndex = gridResolution * i + j;
var sectorPosition = shuffledArrayLocations[arrayIndex];
sectorI = floor(sectorPosition / gridResolution);
sectorJ = fract(sectorPosition / gridResolution) * gridResolution;
var sectorPositionX = map(sectorI, 0, gridResolution, 0, gBRes);
var sectorPositionY = map(sectorJ, 0, gridResolution, 0, gBRes);
var sectorPositionSize = gBRes / gridResolution;
image(gB, sectorSize * 0.5, sectorSize * 0.5, sectorSize, sectorSize, sectorPositionX, sectorPositionY, sectorPositionSize, sectorPositionSize);
screenSize = min(windowWidth, windowHeight);
function windowResized() {
resizeCanvas(screenSize, screenSize);
function mouseClicked() {