I write code, make music, work at Hacker School and live in New York City.

Email, Twitter, GitHub

Blog, Tumblr

Photo of Mary Rose Cook


A livecoding interface and programming language for young children. The code is on GitHub.

Empty Black

A 2D puzzle platform shooter. Throw crates, set off bombs, fire missiles, stab with your sword. Featured in Kill Screen, PC Gamer and others.



A micro framework for JavaScript games. Handles collisions, the update loop, canvas rendering and input.

Annotated code

Short, heavily annotated JavaScript programs. So far: Space Invaders, circles bouncing off lines.



My latest record on Spotify. Recorded on my phone in my kitchen in Berlin. My band website.

Little Lisp

A Lisp interpreter in JavaScript. Supports if, let, lambdas and closures. I explained the code in this article and this screencast.



A library for composing fragments of behaviour. Put multiple mixins onto an object. Let them communicate with events. I used Andro to define the behaviour of the entities in all my games.

Pistol Slut

A 2D platform shooter. Guns, grenades, parallax scrolling, particle effects. The enemies work in teams. The code is on GitHub. I wrote an article about the collision detection. I talked about the game at JSConf.



A library for building behaviour trees to control game entities. A behaviour tree is a type of state machine that is hierarchical and easier to reason about. I used Machine for the AI in Pistol Slut.