added keyboard support

There is still a really nasty normals bug I am trying to figure out how
to render the normals but its turning into a giant pain in the ass :(