HomeResearchSoftware & CodeExposition
Art, Research, & Miscellaneous

In addition to the projects presented here, code written in support of Computer Science research is available on the Research page, and a number of tools and self-contained algorithm implementations that I have used for artistic purposes and as components of other projects are available on Bitbucket or as Gists.

Absentminded Crypto Kit

The Absentminded Crypto Kit is an extensible general purpose cryptographic toolkit for multiparty secure computation, built atop Obliv-C. At present it supports big-integer math, fast oblivious RAM, Breadth-first Search, Binary Search, Gale-Shapley, PBKDF2, scrypt, and a suite of hash functions, all implemented obliviously and with a comprehensive set of tests.

The eventual goal of the project is to provide a comprehensive set of cryptographic algorithms and primitives for use in research and production software.


A camera app for iOS inspired by classic mechanical rangefinder cameras.

It is said that really talented street photographers can focus, frame, and fire their Leicas by touch alone, without ever looking through the viewfinder or raising the cameras above their waists. Modern smartphone cameras are ubiquitous and high quality, and as such, they open up an immense opportunity. The software that drives them, however, has remained fiddly, slow, and inaccurate; it often prioritizes toy features over usability, and prefers to look like a traditional camera over behaving like one. No cellphone camera yet has ever come close to the elegance of a classic Leica: to be useable with eyes shut. With Camerosity, I attempt to close the gap.

By removing unnecessary features such as postprocessing and autofocus, and radically simplifying the typical cellphone camera interface, I have created an elegant and functional photography tool, instantly familiar to anyone who is comfortable with mechanical rangefinders and SLRs. All parameters (focus, ISO, shutter speed, white balance) are instantly available, requiring no more than a single gesture to view or adjust, and adjustments take advantage of the full display area of a typical iPhone, allowing the photographer fine-grained manual control. Camerosity supports fully automatic, aperture and ISO priority, and needle-match manual exposure modes. Focus peaking and a live histogram allow for quick and accurate manual control. Capture rate is limited only by the rate at which the user can press the shutter button. In addition, it supports modeless video recording, with no reduction in the above functionality.


Winner of the Partners Connected Health Innovation Challenge 2016.

Note: Neurovis requires Chrome with ES6 extensions.
Follow these instructions before attempting to load it.

Neurovis is a real time web-based medical monitoring system, developed for the Columbia University Department of Neurocritical Care, as part of a project undertaken by Columbia, Cornell, Massachussetts General Hospital, IBM, and Draper Labs to build a real time ICU monitoring and data analysis system. This system is intended not only to provide a comprehensive view of complex clinical data, but also allow for the depiction of temporal trends and relationships between physiological variables. Richer patient-specific information and analysis available at the bedside should help optimize the dozens of vital, moment-to-moment clinical decisions required in the management of the critically-ill neurological patient.

During the development of Neurovis, it became necessary to generate a large number of perceptually uniform colors, differentiated by hue. Such colors can easily be chosen in the CIELCHab colorspace (the polar coordinate transform of CIELab), which has the useful properties of being both perceptually uniform and manipulable in a natural way. The Chroma and Luminance channels correspond approximately to what we think of as Saturation and Lightness.

Having written a library for the manipulation of CIELCHab colors in Neurovis, I developed a standalone tool to allow me to work in this colorspace myself. It is a fully modular color manipulation system, designed so that new tools could be added as they become useful to me. I am currently working on the integration of 3D colorspace display, gamut mapping, and CIECAM02 chromatic adaptation.