Creative Coding

Guinea Pig Guinea Pig

Guinea Pig Guinea Pig

Guinea Pig Guinea Pig is an HTML5 game made for the 2013 Global Game Jam. You play a (further) miniaturized, super-powered, Guinea Pig. Your job is to weaken (with your eye-lasers, of course) and collect the germs infecting the patient's arteries, while contending with the rhythmic blood flow.

Made with Brian Bogovich and Lara Schenk. Soundtrack "Bang That Accordian" by Bonnie Bogovich.

Play it now!

Dance Ave

Dance Ave

Dance Ave is a physical game where players try to reach all of several stations positioned around an area. Players may only move between stations by dancing with passers-by. The telephony back-end comes in at the stations, where players dial a special code with their cell phone. Doing so gives the player credit for reaching that station, tells them how many stations they have left to visit, and then plays the song for that station. Players use that song to groove over to the next station.

Related blog posts


Monkey Labeling

EepEepMotion is a tool for opportunistic stop motion; given a set of photographs with some common object (e.g., a stuffed monkey) in them, it lets the user create an animation using individual photos as animation frames. To achieve this, the user labels where the target object is in each photo using EepEepMotion, creates an animation with a place-holder object using the standard Blender tools, exports the animation using an included Blender plugin, and uses EepEepMotion again to render the animation.

This tool was developed to create the Travels of Code Monkey video. With a little work it could be generalized and made more user-friendly.


Piranha Tank (work in progress)

Piranha Tank

Piranha Tank is a tablet/smart-phone toy in which a swarm of hungry piranhas pursues and munches on the user's finger. I'm building it with Haxe and NME, allowing it to be deployed across many platforms.

Current builds:



Creator Snake

Creator was made in 48 hours for the 2012 Global Game Jam, tying for second place. I was involved in the game design and implementation. This included creating a custom audio manager to handle synchronized and spatially positioned musical loops.

Part music mix box, part Nibbler, and part 'just a fun tech toy'. Devour your own tail to create new planets. Planets grow and evolve and can be consumed again. Each planet grows musically, and all planets combined make a lush soundtrack. Make your own universe, losing part of yourself every time and devour planets to get your tail back to start the cycle anew.


Doc Brown mind-reading helmet

Sleeptalkers helmet

I helped create a replica of Doc Brown's mind-reading helmet, originally for a group Halloween costume. I designed and integrated the pulsing LED system, (with pulse rate controllable by a potentiometer), using an Arduino.


Security research software

XMHF, TrustVisor, TEE-SDK, TEE-Cred

My recent academic work uses trusted computing and virtualization to create isolated, trustworthy execution environments. While trusted computing is often perceived as restricting what the user can do (e.g., DRM), our work focuses on restricting what malware can do (e.g., protecting a password database from malware in TEE-Cred), or on restricting what remote servers can do (e.g., forcing the server to prove that it doesn't store or leak your plaintext password).

I contributed heavily to the TrustVisor hypervisor. I also created the TEE-SDK---development tools for using Trusted Execution Environments---and TEE-Cred---a password manager that protects its database from malware.



TaintCheck is a plugin for Valgrind that performs dataflow analysis (taint analysis) to track how untrusted data is propagated and used in a running program binary. This technique has a number of applications, including detecting many types of control-flow-hijacking exploits.

The source code is available on request. However, it is no longer maintained, and does not work with recent versions of Valgrind. You might be interested in TEMU instead, which performs whole-system taint analysis in QEMU.



Vine is a tool for static analysis of x86 assembly. I was involved in its design and implementation.



Polygraph is a set of tools for generating signatures from a few examples of exploits or worms in a network trace. In particular, it was designed to work for polymorphic worms, which use code obfuscation and encryption to make such signature generation difficult.



Travels of Code Monkey

Code monkey

I created this video using my tool EeeEepMotion.



FriendStat was an entry and audience-choice award winner in the 2011 Pittsburgh 48 Hour Film Festival. I was on the writing team, and played 'Gas mask in black'.

Re: Firm Adness

Re: Firm Adness

Re: Firm Adness was an entry and audience-choice award winner in the 2012 Pittsburgh 48 Hour Film Festival. I was on the writing team, and played 'wholesome Dad'.

I Feel Fantastic

I Feel Fantastic

This is a music video created for Jonathan Coulton's song I Feel Fantastic. I starred and co-directed.