I'm confused, when I looked at your page big k everything looked in order.

I'm not really planning on doing anything much with it Pizentios, I was just curious to undertake the mathematics behind such a thing since I'd never quite understood how people achieved the effect. There's also some stuff in there which isn't quite right, like if it so happens that a point is located at the camera's center point the program will crash because of a division by 0 which I have to fix with a try catch routine or something. The matrix subroutines should also catch some errors, like if dimensions don't match for certain cases, and for instance if a matrix is singular (that it has no inverse), in which case changing the basis would be impossible. I'm not quite sure how that would work. I know some people place their camera at the world origin and then translate everything accordingly, but that didn't seem very realistic, since every object in the world should move independently, but that's just my own opinion. And I'm not too sure how to achieve the planar projections without performing a change of basis. Perhaps some sort of vector subtraction or addition I don't know, also programming object interactions and rotations as well as translations on the fly I'm still not so sure how to achieve. But if I do I'll post it up here rest assured.