PLL generator

by Tsskyx

HTML

<!--

LAST LAYER COLOR CODE LIST:

YELLOW = 0
BLUE = 1
ORANGE = 2
WHITE = 3
GREEN = 4
RED = 5
COLOR NEUTRAL = 6

SET THE LAST VARIABLE ON LINE 19 TO ONE OF THE VALUES ABOVE!

-->
<script src="https://cdnjs.cloudflare.com/ajax/libs/processing.js/1.6.6/processing.min.js"></script>
<script type="text/processing" data-processing-target="canvas">

int AUF, ADF, rand, PLL, LLcol = 0;
void setup() {
  size(600, 600, P3D);
  rectMode(CENTER);
  strokeWeight(5);
  AUF = floor(random(4));
  ADF = floor(random(4));
  rand = floor(random(6));
  PLL = floor(random(22));
}
void draw() {
  background(200);
  translate(300, 300, 75);
  pushMatrix();
  rotateX(PI/3);
  rotateZ(PI/4);
  drawTiles(0);
  popMatrix();
  pushMatrix();
  rotateX(-PI/6);
  rotateY(-PI/4);
  drawTiles(1);
  popMatrix();
  rotateX(-PI/6);
  rotateY(PI/4);
  drawTiles(2);
}
void drawTiles(int face) {
  color c = color(0);
  color p[] = new color[3];
  switch(face) {
  case 0:
    c = (LLcol != 6) ? id[LLcol] : id[rand];
    p[0] = c;
    p[1] = c;
    p[2] = c;
    break;
  case 1:
    c = (LLcol != 6) ? id[scheme[LLcol][ADF]] : id[scheme[rand][ADF]];
    p[0] = id[scheme[LLcol==6?rand:LLcol][pll[PLL][AUF*3]]];
    p[1] = id[scheme[LLcol==6?rand:LLcol][pll[PLL][AUF*3+1]]];
    p[2] = id[scheme[LLcol==6?rand:LLcol][pll[PLL][AUF*3+2]]];
    break;
  case 2:
    c = (LLcol != 6) ? id[scheme[LLcol][(ADF+1)%4]] : id[scheme[rand][(ADF+1)%4]];
    p[0] = id[scheme[LLcol==6?rand:LLcol][pll[PLL][(AUF*3+3)%12]]];
    p[1] = id[scheme[LLcol==6?rand:LLcol][pll[PLL][(AUF*3+4)%12]]];
    p[2] = id[scheme[LLcol==6?rand:LLcol][pll[PLL][(AUF*3+5)%12]]];
  }
  fill(c);
  translate(0, 0, 75);
  rect(-50, 0, 50, 50);
  rect(0, 0, 50, 50);
  rect(50, 0, 50, 50);
  rect(-50, 50, 50, 50);
  rect(0, 50, 50, 50);
  rect(50, 50, 50, 50);

  fill(p[0]);
  rect(-50, -50, 50, 50);
  fill(p[1]);
  rect(0, -50, 50, 50);
  fill(p[2]);
  rect(50, -50, 50, 50);
}
void mousePressed() {
  AUF = floor(random(4));
  ADF = floor(random(4));
 ...