All the elements on this page, with the exception of the canvas, are defined in plain HTML, and then physics-enabled through a class library which implements simple mass-spring physics.
The physics engine is completely separated from the presentation layer. All the moving of elements and turning them into obstacles is handled by the DOMRenderer class. The canvas is handled by the CanvasRenderer class, and so on. This makes the engine very flexible.
Made by Andreas Blixt <email@example.com>