Use shifts rather than floor
Add touch interaction: pinch zoom and rotation