Use WASD to move, arrow keys to look around. Use turbo mode (shift+green flag) and forkphorus: https://forkphorus.github.io/app.html?id=408759501&turbo
...And more spheres 90% of the shadow code was already implemented. Not sure if @SpinningCube was just having trouble with it? Either way, pretty sure it works now :) Also, I couldn't figure out why, but any sphere that goes above y15 gets clipped for some reason. I thought it had something to do with the plane, but I tested around and came back with nothing.