done in OpenGL, C++, Visual Studio