See raw JS.
// Cloned by AC on 15 Oct 2020 from World "One Cube World (P5)" by Starter user // Please leave this clone trail here. const objectwidth = 200; // size of object const objectheight = 100; const objectdepth = 50; const anglechange = 0.001; // how much the rotate angle changes each step var angle = 0; // rotate angle starts at 0 var img; // make an array of random (x,y,z) positions const noboxes = 30; // how many boxes to have var a = new Array(noboxes); // array of the box positions for ( var i=0; i < noboxes; i++ ) // set up the array { a[i] = [ AB.randomIntAtoB(-500,500), AB.randomIntAtoB(-500,500), AB.randomIntAtoB(-500,500) ]; } const MUSICFILE = '/uploads/starter/SuspenseStrings.mp3'; AB.backgroundMusic ( MUSICFILE ); function preload() { img = loadImage("uploads/ac2021/thiscatdoesnotexist.com.jpg") } function setup() // "setup" is called once at start of run { createCanvas ( ABWorld.fullwidth(), ABWorld.fullheight(), WEBGL ); } function draw() // "draw" is called every timestep during run { background("orange"); // background color // fill("grey"); // paint box with this color texture(img); rotateX(angle); // set each dimension rotation angle to "angle" rotateY(angle); rotateZ(angle); for ( var i=0; i < noboxes; i++ ) { translate ( a[i][0], a[i][1], a[i][2] ); // get box position i box(objectwidth); } //translate(-500,0,0) //box(objectwidth, objectheight, objectdepth); // draw a cube of this size //translate(500,0,0); //box(objectwidth); angle = angle + anglechange * 10; // change angle each step to get rotate movement }