This page demonstates that ambientLight() and directionalLight()
for Processing JS work correctly on a box.
// Demo written by Andor Salga void setup() { size(400, 400, OPENGL); } float yRot = 0; float xRot = 0; float zRot = 0; float frames = 0; void draw() { frames++; background(0); camera(); noStroke(); directionalLight(128, 0, 0, 0, 1, 0); directionalLight(0, 0, 128, 0, -1, 0); directionalLight(0, 64, 0, 0, 0, -1); directionalLight(64, 64, 64, -1, 0, 0); directionalLight(64, 0, 128, 1, 0, 0); fill(255); pushMatrix(); translate(width/2, height/2, 220); translate(0, sin(frames/30)* 40, 0); rotateY(yRot+=0.01); rotateX(xRot+=0.005); rotateZ(zRot+=0.025); box(35); popMatrix(); }