3D raycasting by griffpatch | ScratchStats