Quaternions and 3d rotation, explained interactively