Cogs

Images programmatically drawn and animated in canvas.

Uses the canvas drawing API to make the cogs, captures the result as an image which is the final object to be rotated.
I have taken this approach as image manipulation is (surely!) more performative than rotating the set of points that describe each cogs and redrawing via the API.

Teeth meshing is a (currently poor) illusion, rather than physics based.

Each cog uses a constructor object which defines the following properties:

In addition each cog uses / calulates the following: