Strict mode.
Convert left/right/up/down strings to integer multiplicands of pi/2.
Fix broken slam function from last night.
Fix undo to handle 0-valued rotation targets. Unlock spin earlier after slam for better feeling.
Refactor canvas/device/model position handling. Mouse and touch events are now passed in as normalized device coordinates; gestures still raw.
Don't expose raw events to input handlers for gestures, but device-space coordinates and delta times.