Name: Syed Iqbal The assignment was a lot of fun. Much learning ensued. I r8 8/8 Obligatory citations (varying degrees of usefulness): http://learningthreejs.com/blog/2011/08/15/lets-do-a-sky/ https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/refract.xhtml https://github.com/MattLoftus/threejs-space-simulations/tree/master/images https://mattloftus.github.io/2016/01/23/threejs-p1/ https://mattloftus.github.io/2016/02/03/threejs-p2/ http://www.horde3d.org/wiki/index.php5?title=Shading_Technique_-_Fresnel https://github.com/sohamkamani/three.js/blob/master/examples/textures/cube/MilkyWay https://threejs.org/docs/api/materials/MeshPhongMaterial.html Comments on and explanations about additional features: Changed the environment cube map that surrounded the scene (still using the original one for the spheres). Added a sphere (leftmost one) that uses both reflection and refraction to generate the images on the sphere surface. This sphere is rotating about the vertical axis, and this produces distortions which are hard to see unless the camera is moved closer to the sphere. The refraction is done using a fixed refractive index. Added a sphere (rightmost one) that uses both reflection and refraction to generate the images on the sphere surface. The refraction is done using a refractive index that constantly changes over time. This change is smooth to produce a more aesthetically pleasing result rather than producing visually jarring results. This smoothness was not trivial, and I had to implement it personally. Finally, I added the Earth and Moon, with the Moon orbiting the Earth. The Earth has texture, bump, ands specular maps which make it very detailed. I also added a cloud texture map just above the Earth's surface to make it appear more realistic. Additionally, the moon also looks very realistic because of the texture and bump maps used. Also, as can be seen when starting the program, the Moon orbits the Earth (this orbit changes the coordinates of the moon in all three dimensions). The Moon, Earth, and clouds also rotate about the vertical axis, although this effect is more subtle and harder to see. You will have to zoom into the objects to be able to observe this. Finally, the cloud texture map's opacity also changes constantly over time. I did this to reflect how the Earth's appearance from space actually changes over time. This change is smooth to produce a more aesthetically pleasing result rather than producing visually jarring results. This smoothness was not trivial, and I had to implement it personally.