move projection matrix init into main()
upload geometry and color data once, instead of per-frame