Over the course of my academic career, I have mostly used the statistical programming language `R`

for the analysis of my data and exploration of theory. I have developed several R packages in that time for various useful optics calculations and for data-processing.

## mlfilms

The `mlfilms`

package uses the transfer matrix method to calculate the reflection and transmission of plane polarised light from an arbitary stack of thin films.

It is the most complete R package I have created, with documentation and examples.

## thor2

The `thor2`

package provides the optical response of various thorlab components for use in R.

## disp.plot

Package for producting colourplots/heatmap plots of linearly-spaced data with arbitrary non-linear coordinate transformations.

Developed by necessity to be able to transform wavelength $(\lambda)$ and angle $(\theta)$ data to non-linearly spaced colourplots of frequency $(1/\lambda)$ and momentum $(\propto (1/\lambda) \sin{\theta})$, but also works for any linearly-spaced to nonlinear-spaced data. For example the Cartesian to polar colourplot transformation $f(x,y) \rightarrow f(r, \theta)$.

## rindex

`rindex`

allows you to browse refractive index data from http://refractiveindex.info directly in R, and to directly use the datasets or interpolated refractive index functions for a wide range of materials.

## fdtd

An example script showing how to implement a simple Finite Difference Time Domain calculation in R.

## grapheneSPP

An R implementation to calculate Surface Plasmon Polariton dispersion in Graphene, including interactions with substrate phonons.

## photonMonkey / ultrafastMonkey

Miscellaneous convenience functions for use in optics.