Umeboshi is a drum machine written in Haskell and built from a Roland 808 sound bank. The drum machine is designed to facilitate poly-rhythmic percussion in non-standard time signatures. It relies heavily on Unboxed Vector types and the Data.WAVE library.

Accompanying are two player pianos. The left scroll is procedurally generating a rule 90 cellular automata, mostly in the bass region. The right scroll is procedurally generated by considering the Möbius function on the divisors of numbers counting from 1 to infinity. It occupies the treble with melodic staccato accents.

PlasmaPaperMy professional research is in collaboration with physicists at LANL, Lockheed-Martin and the University of Michigan; where we study and develop models of vorticity deposition in high-energy-density plasmas. Presently, I am developing software such as this ray tracer for better understanding data resulting from experiments.

SantaFeInstituteWith the Santa Fe Institute, I was responsible for maintaining the website and collaborated with researchers to facilitate the computation and visualization of mathematical models. I developed interactive explorables to help make a few complicated ideas in complexity theory more tangible and intuitive.

Library of Congress LCCN predictor
: This work in progress utilizes Django, the Python framework, to catalog books in a mysql database. A user enters the title of a book and a web crawler data mines the library of congress website for various pieces of data: author, true lccn, isbn, and publishing year. This information is then used to train a neural net which is quickly getting better at guessing LCCN numbers from titles alone.

With Jackrabbit Systems, I was responsible for writing generalized web crawlers for data mining hotel rates and availability for thousands of individual hotels and chains. These rates are then displayed by major search engines and aggregator sites like the one above. Additionally, I developed and maintained a large Rails bidding application where destination marketing organizations then bid for placement on various search engines such as Google and Trip Advisor. Most recently, I researched and proposed machine learning enhancements to the business scope and services by drawing from JRS historical records on an Amazon Redshift database.

Built infrastructure for an installation piece intended for the Currents New Media festival: ’live’ weather data drives generative algorithms which modify an image of a landscape. Meanwhile AI ‘foragers’ with distinct metrics and search algorithms comb for resources, altering the landscape in their paths.

I am currently working on a tournament pairings algorithm for the Santa Fe Go club. The pairings software is based on the Havel-Hakimi algorithm and is here coded in Haskell. Graph spectra and other matrix characteristics are computed to distinguish and classify the various graphs.


Collaborator Zeke Ricci and I built a multi-threaded fractal renderer in Ruby Processing. The renderer is capable of making very large and quality images. Many fractal sets were explored: Mandelbrot, Fibonacci and Collatz to name a few.

I enjoy building analogue synthesizers as well as writing digital generative musical algorithms. This track features a singing bowl, a stove top espresso maker, an aperiodic lfo ‘wind generator’ that traces solutions to the discrete logistic equation and a player piano whose scroll is a 1-dimensional cellular automata.