Box2D with Revolute Joints and Motors and HTML5 Canvas

Read matching blog post for explanation

Black dot is the position of the object, the yellow dot is the center of mass.