Some more revision for the graphics course. This time I created a software rasterizer using only the information and algorithms described in the lecture slides linked below. Its pretty slow.
In the slides it uses the shoelace algorithm for backface culling and z-buffer for visible surface determination. Below is a screenshot visualizing the depth values; smaller values means an object is closer.