#Optical Ray Tracer
A 3 dimensional optical ray tracer built using Python. Can be used to analyse optical setups.
Project includes modules with optical element classes such as a biconvex lens and a water droplet.
Analysis module covers the optimisation of a singlet biconvex lens by altering its curvatures in order to minimise the root mean square deviation of the rays at the focal point.
Rainbow module is used to investigate the formation of rainbows in water droplets.
Requires NumPy and matplotlib libraries.