In this p5.js code, please add a dial to the top right of the screen which will adjust the color of the background: let sidesSlider;
let sizeSlider;
let spiralSlider;
let reflectionSlider;
let gradientSlider;
let randomMovementSlider; // New slider for random movement intensity
let dragging = false;
let shapeCenter;
let sliderArea;

function setup() {
  createCanvas(600, 800);
  sidesSlider = createSlider(3, 20, 3);
  sidesSlider.position(30, 40);

  sizeSlider = createSlider(50, min(width, height) / 2, min(width, height) / 4);
  sizeSlider.position(30, 70);

  spiralSlider = createSlider(0, 50, 0);
  spiralSlider.position(30, 100);

  reflectionSlider = createSlider(0, 3, 0);
  reflectionSlider.position(30, 130);

  gradientSlider = createSlider(0, 255, 128);
  gradientSlider.position(30, 160);

  randomMovementSlider = createSlider(0, 50, 5); // Initialize the new slider
  randomMovementSlider.position(30, 190);

  textAlign(CENTER, CENTER);
  shapeCenter = createVector(width / 2, height / 2);

  sliderArea = {
    x: 20,
    y: 20,
    width: 140,
    height: 220, // Updated height to include new slider
  };

  colorMode(HSB, 255);
}

function draw() {
  background(240);

  // Draw slider area rectangle
  fill(255);
  stroke(200);
  rect(sliderArea.x, sliderArea.y, sliderArea.width, sliderArea.height);

  // Update shape position when dragging
  if (dragging) {
    shapeCenter.x = mouseX;
    shapeCenter.y = mouseY;
  }

  let sides = sidesSlider.value();
  let size = sizeSlider.value();
  let spiralCount = spiralSlider.value();
  let reflection = reflectionSlider.value();
  let gradient = gradientSlider.value();
  let randomMovement = randomMovementSlider.value(); // Get value of new slider

  translate(shapeCenter.x, shapeCenter.y);

  drawSpirals(sides, size, spiralCount, gradient, randomMovement);

  // Render reflections
  switch (reflection) {
    case 1:
      scale(-1, 1);
      drawSpirals(sides, size, spiralCount, gradient, randomMovement);
      break;
    case 2:
      scale(1, -1);
      drawSpirals(sides, size, spiralCount, gradient, randomMovement);
      break;
    case 3:
      scale(-1, 1);
      drawSpirals(sides, size, spiralCount, gradient, randomMovement);
      scale(1, -1);
      drawSpirals(sides, size, spiralCount, gradient, randomMovement);
      break;
  }

  checkForDrag();
}

function drawSpirals(sides, size, spiralCount, gradient, randomMovement) {
  for (let i = 0; i < spiralCount; i++) {
    push();
    rotate((TWO_PI / spiralCount) * i);
    translate((size * i) / spiralCount, 0);
    strokeWeight(4);
    stroke(gradient, 255, 255);
    noFill();
    drawShape(sides, size, randomMovement);
    pop();
  }
}

function drawShape(sides, radius, randomMovement) {
  let angle = TWO_PI / sides;
  let offset = randomMovement; // Use randomMovement for offset
  beginShape();
  for (let i = 0; i < sides; i++) {
    let x = (radius + random(-offset, offset)) * cos(angle * i);
    let y = (radius + random(-offset, offset)) * sin(angle * i);
    vertex(x, y);
  }
  endShape(CLOSE);
}

function checkForDrag() {
  const minDist = sizeSlider.value() * spiralSlider.value() / 2;
  if (
    mouseX > sliderArea.x &&
    mouseX < sliderArea.x + sliderArea.width &&
    mouseY > sliderArea.y &&
    mouseY < sliderArea.y + sliderArea.height
  ) {
    dragging = false;
    cursor('default');
  } else if (dist(mouseX, mouseY, shapeCenter.x, shapeCenter.y) < minDist) {
    cursor('grab');
    if (mouseIsPressed) {
      dragging = true;
      cursor('grabbing');
    }
  } else {
    dragging = false;
    cursor('default');
  }
}

function mouseReleased() {
  dragging = false;
  cursor('default');
}