let r; let bumpSlider; function setup() { createCanvas(700, 700, WEBGL); angleMode(DEGREES); stroke(255); strokeWeight(2); noFill(); r = width; bumpSlider = createSlider(0.2, 1.5, 0.2, 0.1); bumpSlider.position(20, 20); } function draw() { clear(); background(000000); orbitControl(3, 3); beginShape(POINTS); for (let theta = 0; theta < 180; theta += 2) { for (let phy = 0; phy < 360; phy += 2) { let bump = bumpSlider.value() * sin(6 * theta) * sin(5 * phy); let sharpness = 1.5; let x = r * bump * pow(abs(sin(theta)), sharpness) * cos(phy); let y = r * bump * pow(abs(sin(theta)), sharpness) * sin(phy); let z = r * bump * pow(abs(cos(theta)), sharpness); vertex(x, y, z); } } endShape(); }