How to Make Bots Work for You and Your Team
Discussions about conversational UI and bot codes of conduct, specifically bot personality traits as tools.

Unlocking VR’s Potential by Focusing on UX
My initial experience and learnings in VR development.

What a Good Developer Challenge Looks Like live site
Wrote about how I came up with a developer challenge to fit into a hiring process.

Building the Digital Shoreditch 2015 Open House Guide source code live site
Post-mortem about building the Digital Shoreditch 2015 Open House Guide app from concept to deployment in just 4 days.

Road signs
An undergraduate experiment in computer vision: trying to detect text in road signs.


Mud-fudge source code
MarkDown-Force Directed Graph (MDFDG or mud-fudge): a tool to visualize hierarchical cycling links and notes.

A slackbot to interact with music channel messages and the office Sonos unit.

gpxMapFactor source code
Create / decimate waypoints from a GPX source file for use within the MapFactor offline navigation app; useful for long distance bike rides.

Translucify source code
Makes an image's background pixels transparent. Replaces img with canvas.

Crimper source code
Climb tracking app for personal use, track via interactive infographics. Ability export to CSV.

Travelling Salesman Solver Demo source code
A demo of some simple travelling salesman optimizations.

GRE Flash Cards
Flash cards app for a friend studying the GRE English Vocabulary section.

Google Map Browser source code
Cache Google Maps tiles by browsing the location of interest.


CelCom - Celestial Combat video source code
Celestial Combat is an expanded port of a Windows 3.1 era space game: Gravity Well. I wrote it to experiment with vector graphics and make use of PixiJS. Supports bluetooth gamepads and has its own game assets packing / loading system.

Odessa Catacombs vectorized map
Re-imagined a subsection of the world's largest catacomb network in Odessa, Ukraine as a VR-compatible 3D environment. Player only hears their own foot-steps and sees within the reach of their flashlight. The level was vectorized from a set of amateur maps, which were converted into an explorable virtual space using Blender and Unity3D.

Microarmy source code
An idle game: 2D AI vs AI war simulator.

Fisch video screenshot source code
Gamedev Weekend 3: Fishing Game Jam. Eat plankton, avoid the hooks.

Kulami source code
Gamedev Weekend 2: Trying to simulate the social interaction of a 2 player board game digitally. Includes aggressively taunting AI player and works on modern mobile browsers!

Wrenchy source code
Gamedev Weekend 1: My first 48 hour collaborative gamedev: a post-mortem.

Canvas Raycasting
Wrote a little canvas toy to learn about raycasting. The same rendering technique as in Wolfenstein, but without textured surfaces.

Textured tunnel source code
An old demoscene 3D tunnel rendering trick.

Game of Life source code
HTML5 rendition of Conway's Game of Life. See the ASCII version

JS C&C source code
Barebones JS Command and Conquer engine in DOM, written during a hot summer week.


Particle Tracks source code video
A procedural art widget drawing inspiration from bubble / cloud chambers used to study particle trajectories.

Random Cellular Automata Universe source code
Generates and runs a random 2D celluar automata ruleset and a randomly generated world with each click event.

Pewpew.js source code gif
A bookmarklet that turns (almost) any web page into a shooting gallery. Bot
Bot for a game posted to /r/WebGames

NYE 2014 Maze source code
Maze generator remixed! New years message written for friends for 2014.

DOM Maze source code
DOM based recursive-backtracking maze generator.