I work as a clinical engineer and write software in my spare time. In 2006 I started working on the problem of simulating a kaleidoscope entirely in software.