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();
}