Although the work on these pages is entirely my own creation, it has also been a stubborn exercise in reinventing what I knew must have been done before and likely done much better. I had challenged myself to see if I could figure out ray-tracing from the ground up without "outside help" and these pages are the result of that challenge. Working in this way, from scratch, has certainly been at the cost of creating something better, but I have no regrets since I thoroughly enjoyed the challenge and the journey.
Even so, there are a couple of resources that contributed to my efforts, and I would be remiss not to mention them:
Prior to attending this intensive web development course, I had only the briefest knowledge of simple HTML. In the three months of the course I gained the JavaScript skills needed to build this site, as well a number front-end and back-end development skills not used here.
Ray Tracing in One Weekend
Early in this project I stumbled upon Ray Tracing in One Weekend by Peter Shirley, Trevor David Black, and Steve Hollasch - a site which explores ray-tracing in C++ and does so much more thoroughly than I have done. Mostly I chose not to "cheat" by reviewing the site while working on my own project, but I did take inspiration from one aspect - the authors' approach of using randomly generated rays to simulate depth of field, a much more efficient approach than what I had originally planned to do. Also, ultimately, I plan to follow the authors' example and introduce the PPM graphics format in this site.
After completing this site, I returned to the Ray Tracing in One Weekend site and was impressed by how well-organized, thorough, and readable it is. The site is only the first in a series of sites (and corresponding books) on the topic of ray tracing, and I encourage taking a look at all three sites: