forked from: 3D rotation 01

