I'm the author of the above-mentioned punchdrunk, by the way. There were three reasons that I decided to do the port by hand: 1) I wanted to preserve mobile support by falling back to 2d-canvas when necessary. 2) I wanted to really cut my teeth on some graphics programming because I'd never really had the chance before. 3) I just couldn't get the damn thing to compile with emscripten (which I why I'd be very interested in your process).
We are considering emscripten for other modules like love.physics: https://github.com/TannerRogalsky/punchdrunk/issues/38