xxxxxxxxxx
let palettes = [
{
name: "CUPCAKE",
colors: ['#996DD9','#6DD6D6','#575757','#CBCBCB'],
},
{
name: "PUEBLO",
colors: ['#EAA388','#FF7878','#575757','#CBCBCB'],
},
{
name: "SPOOKY",
colors: ['#414141','#7755BB','#996DD9','#AA99C9'],
},
{
name: "RACE DAY",
colors: ['#D12D35','#3478BC','#F8D86E','#575757'],
},
{
name: "MAGMA",
colors: ['#D12D35','#CFAFB1','#F8D86E','#CFC8AF'],
},
{
name: "SIXTY FEET UNDER",
colors: ['#444DA0','#449FA0','#7755BB','#CBCBCB'],
},
{
name: "DREARY RACE",
colors: ['#CFAFB1','#AFBFCF','#CFC8AF','#AEAEAE'],
}
];
let w,h,a,x,y,z, rPos, rCol,startX, startY, cubeStX, cubeStY, cubeSz, colors, flip;
let paletteName,pos,colScheme;
function setup() {
w = 600; h = 600;
createCanvas(w,h);
colorSetup();
background('#D2D2D2');
cubeSz = int(random(w/25,w/10));
let rPos=int(random([1,2,3,4,5]));
if(rPos==1){
pos = "whole";
x = int(random(2,6));
y=x; z=y;
}
else if(rPos==2){
pos = "face";
x = 15; y = 30; z = 30;
}
else if(rPos==3){
pos = "side";
x = 30; y = 30; z = 15;
}
else if(rPos==4){
pos = "top";
x = 30; y = 15; z = 30;
}
else { //rPos==5
pos = "corner";
x = 15; y=x; z=y;
}
rCol = random(0,10);
startX = 250;
startY = startX;
cubeStX = startX;
cubeStY = cubeStX;
for(let i=0;i<y;i++){
row();
startX = startX+cubeSz*(x*1.25);
startY = startY-cubeSz*(x*.75);
startY = startY-cubeSz*1.25;
cubeStX = startX;
cubeStY = startY;
}
console.log("Palette name : "+ paletteName);
console.log("Position : "+ pos);
console.log("Cube size : "+ cubeSz);
console.log("Color scheme : "+ colScheme);
}
function colorSetup(){
a = int(random(0,palettes.length));
paletteName = palettes[a].name;
colors = shuffle(palettes[a].colors);
}
function cubing(){
strokeWeight(.25);
if(rCol>1){
colScheme = 'Cubed';
fill(colors[random([0,1,2,3])]);
}
if(rCol<=1){
colScheme = 'Mixed';
fill(colors[random([0,1,2,3])]);
}
quad(cubeStX,cubeStY,
cubeStX,cubeStY+cubeSz,
cubeStX+cubeSz,cubeStY+cubeSz*1.5,
cubeStX+cubeSz,cubeStY+cubeSz*.5);
//left
if(rCol<=1){fill(colors[random([0,1,2,3])]); }
quad(cubeStX+cubeSz,cubeStY+cubeSz*1.5,
cubeStX+cubeSz,cubeStY+cubeSz*.5,
cubeStX+cubeSz*2,cubeStY,
cubeStX+cubeSz*2,cubeStY+cubeSz);
//right
if(rCol<=1){fill(colors[random([0,1,2,3])]); }
quad(cubeStX,cubeStY,
cubeStX+cubeSz,cubeStY+cubeSz*.5,
cubeStX+cubeSz*2,cubeStY,
cubeStX+cubeSz,cubeStY-cubeSz/2);
//top
}
function row (){
for(let i=0;i<x;i++){
for(let i=0;i<z;i++){
cubing();
cubeStX=cubeStX+cubeSz*1.25;
cubeStY=cubeStY+cubeSz*.75;
}
cubeStX=startX-cubeSz*1.25;
cubeStY=startY+cubeSz*.75;
startX=cubeStX;
startY=cubeStY;
}
}