PlotDevice is a Macintosh application used for computational graphic design. It provides an interactive Python environment where you can create two-dimensional graphics and output them in a variety of vector, bitmap, and animation formats. It is meant both as a sketch environment for exploring generative design and as a general purpose graphics library for use in external Python programs.
PlotDevice scripts can create images from simple geometric primitives, text, and external vector or bitmap images. Drawing commands provide a thin abstraction over Mac OS X's Quartz graphics engine, providing high-quality 2D rendering and powerful compositing operations.
As a child I whiled away countless hours lost in Choose Your Own Adventure books. At the time they just felt different from the other books I'd read. In retrospect it's clear that the difference was that these were an early form of what we'd now call ‘interactive’ entertainment; albeit embodied in technology that had been around since Gutenberg.
This project examines the choices made by those trying to build this kind of proto-game while having only pages, ink, and cross references to work with.
I heard my first horror story about dealing with bedbugs from an acquaintance in Park Slope in 2008. By 2010 I knew closer to a dozen. When they finally came for me I began to wonder exactly how prevalent these pests are in New York (and whether the growth was as explosive as it seemed).
I've never been a fan of horoscopes or other forms of divination that provide concrete predictions of the future. However, the use of the I Ching for similar purposes has always intrigued me.
By formulating a question and then reading a random chapter (selected by flipping coins or counting yarrow stalks), one's concerns are ‘answered’, but not in the form of a “you will find love” reassurance. Instead the chapters describe universal situations of conflict into which one can project the current worries and consider the parallels.
In a number of projects I've made use of force-directed layout algorithms when dealing with tree-like structures. It's an elegant approach to positioning that uses a physics simulation to find the most ‘relaxed’ configuration of nodes and edges based on their connectivity.
After reinventing the wheel in Java, Python, and Actionscript I decided to build a more general framework for this kind of visualization that would run in modern browsers. The result is arbor.js, an ’HTML5’-friendly open source graph-rendering library.
Despite my relative hopelessness when confronted with a musical instrument, I've been fascinated by music theory since middle school. The geometric relationships between tones, intervals, and the structure of waves made analytical sense to me, even if it didn't seem to apply very readily to 13 Songs or Loveless.
In college I was blindsided by J.S. Bach whose work perfectly embodies this ‘music is math’ approach to composition. His fugues are both beautiful and dauntingly complex as they layer motif upon motif, building up to emergent juxtapositions you would never predict from the melody line alone. These sketches examine BWV 578: The ‘Little’ Fugue.
Birdsong is a popular research topic in neuroscience, primarily because it tells us so much about how human brains deal with language. In collaboration with colleagues at the UCSF Keck Center, I created visualizations of the syntax networks seen in the zebra finch.
The data broke a bird's song down into a finite alphabet of syllables sequenced over time. We could then examine the probability that e.g., syllable D would be followed by C vs by E. The diagram above shows the relative likelihoods of different syllable-to-syllable transitions seen in a particular finch's song.
Every web page (including this one) is made up of HTML tags. These tags are nested inside of each other like russian dolls with parent tags containing child tags, grandchild tags, etc. This structure is colloquially called the ‘DOM tree’ by web developers.
These animations take the tree suggestion literally and plot the edits over time to one HTML page in terms of branches growing, flowering, and being discarded.
This portfolio website for the artists and architects at Diller, Scofidio + Renfro was designed in collaboration with Takaaki Okada & Lisa Strausfeld at Pentagram and developed by me in Actionscript.
The spatially organized, sortable user interface tries to ride the line between unconventional and usable while pulling the viewer into the world of the images with 3D animations.