My take on Jamis Buck's (@jamis) awesome ray tracer challenge in ScalaJS.
I added a simple lighting mechanism based on Phong's reflection model.
In chapter 5 I implemented the first actual ray tracing to draw the silhouette of a sphere.
In chapters 3 and 4 I extended my vector implementation to a more full-blown linear algebra library. It now supports matrix-multiplication-based geometric transformations like translation, scaling and rotation. The image shows a simple clock face generated with these operations.
In chapters 1 and 2 I developed a basic implementation of vectors. Image shows the trajectory of a flying projectile in an environment with gravity and wind.