I've written the game in TypeScript, using matter.js as the physics engine and my own 2D renderer that renders to HTML5 <canvas>. I'm still working on the map generation, but it works well enough for the project to be shown to the public.
Source code is available here: https://github.com/mat-sz/inkball