This project implements a software rasterizer that renders points, lines, and triangles. It performs color interpolation within the specified primitives. It has multiple geometric tests such as the half-plane test. It also checks the winding order of the inputted vertices and differently highlights the primitives that have been drawn in clockwise or counter-clockwise order.