Future Data Lab

showcasing creative design, data visualization, and coding experiments


A family of physically-based blobs. Soft body simulation using a Verlet-based mass-spring system, modeling point mass as particles with semi-rigid constraints, and rendered using metaballs.



Blob Family 2014-11 Blob simulation using a Verlet-based mass-spring system to model point mass as particles with semi-rigid constrains, simulated with a particle-based collision engine and rendered with metaballs.


Lighters 2011-11 A small experimental game featuring procedural dungeon generation, dynamic lighting and shadows, collision detection, custom tile map engine, behavioral animation, and more.


Procedural Dungeon 2011-10 Procedural content generation is a great way to generate interesting worlds. This is a Processing project that uses a variety of algorithms to produce interesting random levels and dungeons.


Catch 2010-12 A haptics-powered ball game that combines haptic feedback with a virtual 3D environment to create an engaging and viscerally realistic experience.


Dusk 2010-12 Part real-time strategy, part tower defense, this is a functional (and hopefully fun) prototype created using the Unity engine. Survive by directing a group of villagers to collect resources and build buildings during the day, and defend against an onslaught of enemies at night.


Marble Painter 2010-09 The goal was to create a simple game based on the classic puzzle game Marble Madness using the Unity engine. This is a physics-based game in part inspired by Katamari Democracy and The Blob.


Steering Behaviors 2010-07 Based on Boids by Craig Reynolds, this project was created with Processing to showcase different steering behaviors such as flocking, random wandering, and object avoidance.


Volumetric Clouds 2010-07 Volume renderer that utilizes ray casting and ray marching through a 3D voxel grid to generate puffy clouds.


Raytracer 2010-07 A scene editor where the user can create and interact with various objects, and a renderer that renders the user-created scene via raytracing.


SPH on GPU 2010-04 Implementation of the particle-based Smoothed-Particle Hydrodynamics (SPH) fluid simulation on GPU, developed in C++, OpenGL (rendering), and OpenCL (GPU integration).


QuikiTrak 2009-05 Prototype for a lightweight sensor device that can be mounted on a bicycle to enforce the "no-drafting" rule of the bicycle portion of a triathlon race. With the aid of custom software, the device can be quickly setup prior to a race.


Processing Sketches 2010–2014 Collection of interactive sketches and small programs made with Processing. These are shorter projects that test out new ideas or provide a diversion and something to write about. This is where good ideas get their start before graduating into a larger project, and bad ideas get burried.


3D Renderings 2009 Several 3D modeling project created and rendered using Maya. The goal was to model various mult-part objects to get familiar with Maya.


Sketches and Paintings 1998–2005 Old sketches and paintings from a long, long, looooong time ago.