I remember doing this in generative computer graphics class, i thought it was so neat, just dividing by the w component to get correcti projection.

Great writeup.