xxxxxxxxxx
116
let angle = 89;
let angle2 = 0;
function setup() {
let r = random(0,255)
let g = random(0,255)
let b = random(0,255)
createCanvas(500, 500, WEBGL);
background(r,g,b);
}
function draw() {
// Rotate the cube around the Y-axis and X-axis
rotateY(angle);
rotateX(angle2);
// Draw the outer cube
drawCube(200);
// Increment the angle for continuous rotation
angle += 0.001;
angle2 += 0.002;
}
function drawCube(size) {
let r = random(0,255)
let g = random(0,255)
let b = random(0,255)
push();
noFill()
let s = second();
// Top
if (s % 0) {
fill(random(r,g,b))
}
beginShape();
vertex(-size/2, -size/2, -size/2);
vertex(size/2, -size/2, -size/2);
vertex(size/2, -size/2, size/2);
vertex(-size/2, -size/2, size/2);
endShape(CLOSE);
noFill()
// Bottom
if (s % 0) {
fill(random(r,g,b))
}
beginShape();
vertex(-size/2, size/2, -size/2);
vertex(size/2, size/2, -size/2);
vertex(size/2, size/2, size/2);
vertex(-size/2, size/2, size/2);
endShape(CLOSE);
noFill()
// Left
if (s % 5 == 0) {
fill(random(r,g,b))
}
beginShape();
vertex(-size/2, -size/2, -size/2);
vertex(-size/2, -size/2, size/2);
vertex(-size/2, size/2, size/2);
vertex(-size/2, size/2, -size/2);
endShape(CLOSE);
noFill()
// Right
if (s % 5 == 0) {
fill(random(r,g,b))
}
beginShape();
vertex(size/2, -size/2, -size/2);
vertex(size/2, -size/2, size/2);
vertex(size/2, size/2, size/2);
vertex(size/2, size/2, -size/2);
endShape(CLOSE);
noFill()
// Front
if (s % 5 == 0) {
fill(random(r,g,b))
}
beginShape();
vertex(-size/2, -size/2, size/2);
vertex(size/2, -size/2, size/2);
vertex(size/2, size/2, size/2);
vertex(-size/2, size/2, size/2);
endShape(CLOSE);
noFill()
// Back
if (s % 5 == 0) {
fill(random(r,g,b))
}
beginShape();
vertex(-size/2, -size/2, -size/2);
vertex(size/2, -size/2, -size/2);
vertex(size/2, size/2, -size/2);
vertex(-size/2, size/2, -size/2);
endShape(CLOSE);
noFill()
// Draw the inner recursive cube
if (size > 100) { // Limit the recursion
push();
scale(0.9);
drawCube(size * 0.9);
pop();
}
pop();
}