This project aims to recreate the functionality of the fixed-function pipeline OpenGL. It replaces the calls to the original OpenGL library to a custom-designed library (FakeGL). I implemented the library to support matrix stacks for Model-View and Projection, depth-testing, point, line and triangle rasterization, as well as matrices transformations and shading (Gouraud and Blinn-Phong).