The main part seems to be saving the projection matrix, setting the pick matrix to a very small window, and then resetting the projection matrix.

If I have a very simply scene - maybe 10 objects - this all seems unnecessary. I thought I could just pick with the same view that I am displaying on the screen. I tried to do a very much simpler version: