All posts in Development



Waterlogue is a photo app inspired by Moleskine watercolor journals, urban sketching, artist’s journals and en plain air painting.

The technology developed for Waterlogue transforms your photos into spontaneous, unique, and brilliant watercolor sketches that look like real paintings.

Waterlogue distills your environment down to its essence—just the way an artist would—and turns even an on-the-fly snapshot into something luminous and sublime.

Continue Reading →

Sun Shader

This is an experiment using SpriteKit; it is a single OpenGL shader running on one sprite.

This is not intended to be a realistic sun (with magnetic field lines, etc.) but rather, a sun with expressive flames or filaments. There are a large number of parameters that affect all sorts of elements, such as filament size, chaos amount, etc. Video captured from iPod touch 5G.

Plants by Tinybop

Forest in Summer (credit: Plants press kit by Tinybop)

Forest in Summer (credit: Plants press kit by Tinybop)

At Tinybop, I helped code Plants, an interactive kid’s app that explores the diversity of life in a collection of ever-changing biomes.
Continue Reading →

Clouds, Animated

This is an animated version of a Processing 1.0 sketch I made a few years ago:

The simple shapes of the clouds are inspired by early 20th century pen & ink illustrations of puffy cumulus clouds. The animation is a byproduct of how the clouds are created.


Treble—introduced in version 2.0; Hero shot

Percolator combines unique visual effects processing with a beautiful, retro, coffee-themed user interface (UI) and refined user experience (UX) design. The mosaic technology used in Percolator is based on a proprietary circle packing algorithm.

Continue Reading →


Inktensity—introduced in version 2.2

Inktensity—introduced in version 2.2

Released six months after the 1.0 release, Popsicolor 2.0 is a significant update to my illustration-inspired photo app. The app is currently at version 2.2.

Continue Reading →

Timeline Software

I created a cross-platform timeline component for BlackBack Technologies Mac and iOS forensic analysis tool, BlackLight.

Continue Reading →

Popsicolor 1.0

Currently an App Store “New & Noteworthy” selection for iPhone and iPad storefronts.

Continue Reading →

Noise Reduction & Simplification

I developed a two-pass noise reduction and shape simplification algorithm for my forthcoming iOS app.

Real-time Comic Book Rendering

I developed a sophisticated comics video filter that runs on the iPhone in real-time. To give the app a test run, I shot some footage at lunch one day and edited it in iMovie on an iPhone. The Magical Apple-esque Music is courtesy of iMovie. This work is currently ongoing.

Patent Pending

Natural Page Shading

I’ve made a few visual improvements to the Leaves framework while putting together a friend’s book app. Leaves will let you add book-like functionality to your apps, letting you load in a PDF and get page turning interactivity. It’s not as advanced as iBooks — the pages remain axis aligned when turned, and double page spreads are not supported, but it’s open source and works pretty well out of the box.

YouTube Preview Image

Continue Reading →

Sketch: Multi-Column Layout Algorithm

This iPad app is the proof-of-concept for an algorithm I designed to present large numbers of items in a compact layout. The concept uses a variable, multi-column format to give readers a feeling of variety on long pages.

The layout code was designed to find an optimal article layout—defined generally as the column configuration that contains the least dead space—using multiple column formats. In this test app, dead space is marked with diagonal lines; in a final app, the article heights would adjust to fill the column.

Continue Reading →

Experimental iOS App: Pixel Art Meets Global Illumination Rendering

This experimental iOS Graphics app is ½ old-school 2D pixel editor and ½ 3D global illumination renderer. I developed a ray casting algorithm that uses low- resolution depth and color maps to produce a high resolution rendering with subtle lighting and shading.

From left to right: depth map (user created), color map (user created), depth + color (used for final render), global illumination rendering.

Continue Reading →

Henri Icon

Icon, logotype and concept for a BW iOS photo app.

Photoshop and Cinema 4D.

Sketch: iPad Photo Map

I pursued this internal AP project in order to learn iOS development. The project experimented with end-to-end technology: A server-side OS X application accessing the AP photo feed and delivering it to an iOS client app with a custom map component.

Continue Reading →

Double Across for iPad

I designed the graphics and interface skins for an iPad game designed and developed by Sol Robots.

Double Across is a crossword-style puzzle board game that lets you play with up to five other people, or with “famous author” AIs.

Continue Reading →

TableToTree 1.1

TableToTree is a simple tool designed to solve a common data workflow problem: you have a spreadsheet of data that need to convert to an XML file as a data tree, i.e., for use in web programming.

Continue Reading →

Timeline Layout Algorithm

"Flowing" timeline of the decade's events.

I decided to algorithmically lay out the elements in the AP interactive, 2000-2009: Decade in Review, because of the large amount of content—over 400 events—and very limited amount of time I had to complete the layout.

Continue Reading →

Rocket Launch Demo

This project explores the Unity 3D environment.

The rocket model is a stock placeholder (Redstone missiles don’t burn solid rocket fuel), and the launch vehicle is unmanned. My main focus so far has been getting realistic particle effects for the rocket exhaust. 

Continue Reading →

Winter Olympic Medals

For the AP, I developed this section of a historical overview of the medals won at Winter Olympic Games. The chart components are placed dynamically after the data loads.

A force-directed graph was used to avoid overlapping boxes. Instead of a bounding circle around each node in the graph, I used a bounding box and computed overlap distance between pairs of boxes when relaxing the layout. This yielded a much more efficient “packing” of the items.

Continue Reading →


Painty's node-based workflow.

Painty’s node-based workflow.


  1. Of, coated with, or soiled with paint: a painty finish; painty overalls.
  2. Having a crudely or clumsily painted surface: The stage set consisted chiefly of painty scenery.

I am developing experimental, stroke-based rendering software—affectionately known as Painty. The software takes a photo, 3D rendering, or some other image as input, perceptually deconstructs it, then rebuilds a new image as a sequence of brush strokes.

Continue Reading →

Happy GO Driver!

I produced this iOS game in collaboration with illustrator Peter Hamlin. The object is to keep the traffic flowing by controlling the traffic signals. Angry drivers and wrecks will obstruct your progress.

Level 4.

Continue Reading →

HyperDither 1.3

HyperDither is an OS X image processing utility that converts color or grayscale images to 1 bit black & white using a sophisticated dithering routine. Specifically, HyperDither implements the “Atkinson” dithering filter.

Continue Reading →

Herman Miller Materials Selector Algorithm

Working with Michael McGinn Design Office (MMDO), I developed a layout algorithm for Herman Miller that organizes swatch search results by color clustering. The relative position of the swatches is maintained, regardless of the density of the results.

Continue Reading →

SuperGraphics Framework 3.0

SuperGraphics is a vector graphics code framework for REALbasic that supports multiple output options (CoreGraphics, SVG, PDF, etc.) through a single, unified, easy-to-use API. Supported effects include Bezier curves, gradient fills, transparency, etc.

Continue Reading →

Herman Miller Materials Program Automation

In April, 2009, Herman Miller launched the Herman Miller Materials Program, a collection of over 1,600 materials organized in 16 volumes. The Materials Program was developed by Michael McGinn Design Office (MMDO).

Working with MMDO over a period of several months in 2008, I created a desktop application to automate the production of the thousands of printer mechanicals and review and sign-off sheets that were used to support the efficient print production of the volumes.

Swatch layout uses Kohonen self-organizing maps (SOM).

Continue Reading →

Sketch: Artery Graphs

Map 2

These images are early tests for an algorithm that graph flow and movement across geography. It was prompted by a story the AP was writing on the displacement of Iraqis during the Iraq war. The technique is an algorithmic variation on flowlines.

Continue Reading →

GIS Tools

For the AP print and online coverage of data sets tied to US geography, I wrote several tools for working with GIS data. These tools were used to create maps for election and economy coverage.

Unemployment interactive created by the AP DC bureau.

Continue Reading →

AP Graphics Workflow and Automation Server

Stagedoor is the AP Graphics workflow and automation server software.

Watch folder configuration is done by drag-and-drop.

Continue Reading →


I revisited a project written in 2001 and completely rewrote it using Processing.

Continue Reading →


Inspired by illustrated children’s science books from the 1950s and Bruno Munari’s Drawing the Sun. Written in Processing.

Continue Reading →

Geolocation Database

I’ve developed several database tools at the AP. In this project, I built a tool to aid reporters in geolocating the hometowns of US military personal killed in action in Iraq and Afghanistan.

Continue Reading →

SuperSpriteSurface Framework 2.0

The tile surface supports intelligent redrawing of only the visible area.

SuperSpriteSurface is a free class framework for REALbasic that provides a savvy, modern alternative to REALbasic’s built-in SpriteSurface control:

  • OpenGL-based
  • Fast collision detection
  • Several sprite types (group, tile, text)
  • Reusable sprite behaviors
  • Font texture creation tool
  • Supports Mac and Windows

Continue Reading →