A render with parallel rays going into three Luneburg lenses with different profiles then into three circles with different indices of refraction.

2D Ray Tracing in Python with Continuous Refraction

This was the final project for a Computational Optics seminar completed in collaboration with Claire Paré. Made in a jupyter notebook with numpy and matplotlib, the first aim of this project was to create a simplified version of this 2D ray-optics simulator. The initial goal was to show the paths of light rays through transparent spheres with various indices of refraction and accurately model Fresnel effects to showcase how the amount of reflected and refracted light depends on the index of refraction and incoming ray angle....

June 7, 2023 · 2 min

Ray Tracing Realistic Cameras

This project was part of an independent study where I, along with a few other students, were extending a pre-existing ray tracer made by a PhD student, Kelly Jiang. What follows is the report I submitted for the project that runs through the different camera systems I implemented with a brief explainer and example results of each. Introduction Ray tracing has the unique advantage of easily simulating many different types of cameras....

June 7, 2023 · 14 min
The result of ray tracing the 'Complex' scene. This scene showcases all the aspects of this ray tracer with several shapes that have been scaled, rotated, and translated to various positions,  different types of materials including a transparent glass sphere, recursive reflections, and soft shadows from multiple light sources.

Ray Tracing With WebGL

This was the second project I completed for my intermediate graphics class and my introduction to ray tracing. The goal of this project was to create a simple ray tracer with implicitly defined shapes such as spheres, cubes, and cylinders with various types of materials that are illuminated using the Phong reflection model. The ray tracer also features recursive reflections, soft shadows, transparency, and shape tranformations such translation, rotation, and scaling along any given axis....

March 13, 2023 · 2 min