This uses THREE.js's built in lights - which means for understanding the poorly documented uniform variables. There is little help for this other than reading the source code.